はじめに
多くの新しいアルゴリズムがCaffeをベースにしているが、発表の時期により要求されるCUDAとcuDNNのバージョンの組み合わせが異なることが多いため、nVidia Dockerを使用することで、バージョンの違いを吸収できるようにした。最初にオリジナルのBVLC/Caffeをビルドした。
Dockerfileの入手
BVLC/CaffeのDockerfileはここから入手できるビルドした時点では、
CUDA 8.0
cuDNN 6.0
ubuntu 16.04
をベースとしている。
取得しているCaffeは、Dockerfile内の CLONE_TAG で 1.0 と指定されている (5/29 追記)
そのままコピーし、Docker buildを行ったが、予想以上に時間(ざっくり1時間以上かかる)がかかった。
ビルド中 CUDA のアーキテクチャを指定しないため、多数の警告が表示される
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
再度ビルドするときは、時間短縮を含めて、CUDAのバージョン指定が必要か思われる。
ビルドした結果は、
/opt/caffe/build
に格納される。
テスト
正しくビルドできたかは、make runtest -j4 を実行し、PASSEDが表示されれば、問題ない。[----------] Global test environment tear-down
[==========] 2101 tests from 277 test cases ran. (343557 ms total)
[ PASSED ] 2101 tests.
メモ
nccl のソースを所得しビルドしているが、ncclは分散環境の協調の基盤であるため、個人には不要と思われるので削除したほうがよいかもnccl: Optimized primitives for collective multi-GPU communication
注意点
Caffeの依存環境しているライブラリをインストールする最後の行で、rm -rf /var/lib/apt/lists/*
が実行されている。
Dockerimageのサイズを小さくするためと思われれが、これにより、ライブラリ取得用のデータがすべて削除される。
この後、
apt install -y upzip などのインストールを試みると、
Unable to locate package unzip
のようなエラーとなり困ることとなる。
0 件のコメント:
コメントを投稿