2017年5月27日土曜日

GPU版 BVLC/Caffe を Docker 上でビルドした。(Installation of cuDNN Caffe on NVIDIA Docker)

はじめに

多くの新しいアルゴリズムが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 件のコメント:

コメントを投稿