【ncclのインストール】機械学習でGPUによる並列化をしたい方向け

AIの環境構築
この記事は約2分で読めます。
スポンサードリンク

ncclとは何か?

ncclは、nvidia社が提供する複数GPUを用いる場合に便利なライブラリです。
機械学習においては、学習を高速化するために一枚のGPUだけでなく、複数のGPUで並列に学習のための処理をすることが一般的によくなされます。
このとき、複数のGPUを効率よくハンドリングしたり、各GPU間での通信(処理データの共有およびメモリ間でデータの受け渡し)などを効率化することが重要です。
ncclは、このように複数のGPUを使うケースにおいて必要な機能を提供してくれるライブラリです。

それでは、早速ncclをダウンロードしていきましょう。

ncclをダウンロードしてくる

NVIDIA社が提供しているncclプロジェクトからコードをダウンロードして設置していきます。

git clone https://github.com/NVIDIA/nccl.git
cd nccl
make CUDA_HOME=/usr/local/cuda-8.0
sudo mkdir /usr/local/nccl
sudo make PREFIX=/usr/local/nccl install
cd
rm -rf nccl
vi .bashrc # 以下の4行を追加

パスなどを通す

export NCCL_ROOT="/usr/local/nccl"
export CPATH="$NCCL_ROOT/include:$CPATH"
export LD_LIBRARY_PATH="$NCCL_ROOT/lib/:$LD_LIBRARY_PATH"
export LIBRARY_PATH="$NCCL_ROOT/lib/:$LIBRARY_PATH"

cupyをインストール

nccl, cudnnのインストールが完了したあとcupyをインストールします。

pip install cupy

nccl, cudnnのインストール、設定が完了する前にcupyをインストールするとちゃんとビルドされないので、
cupyがすでに入ってる場合は一応cupyをアンインストールしてnccl, cudnnを整えてから再度インストールしてください。
このときcacheなしでインストールすることをおすすめします↓。

pip install cupy --no-cache-dir

動作確認

そして、最後にpythonを開いて、こちらがエラーなく実行できればOKです。

ipython
from cupy.cuda import nccl

参考

AWSのGPUインスタンスでChainerMNを動かす環境構築 - Qiita
ChainerMNを試してみようと思い、AWS上に環境構築をしてみたので、その作業記録を残しておきます。 AWSのp2インスタンスはそれなりの値段がするので、環境構築は素早く終わらせたいですよね。 # 構成 - AWS p2.8...
タイトルとURLをコピーしました