labs.beatcraft.com Chainer1.5の導入 †本文書はChainer1.5の導入で躓いた点などについてまとめています。 構成 †以下の構成の機器に、これまでは1.3.0からアップデートの都度、1.4.2まで更新を行い試用を続けていました。 ハードウェア構成 ・CPU : Corei7 3770 ・Memory : 32GB ・GPU1(表示用) : NVIDIA GeForce GT730 ・GPU2(CUDA用) : NVIDIA Tesla K20c ソフトウェア構成 ・OS : Ubuntu 14.04.1 LTS ・Python : 2.7 ・CUDA : 6.5 導入 † 当初1.5.0リリース後にsudo pip install --upgrade chainerでアップグレードしようとした際にはMemoryError等で失敗していましたが、 参考:Chainer Install Guide : http://docs.chainer.org/en/stable/install.html 1) chainer-cuda-depsのアンインストール †本来1.4系でCuPYを利用するようになった段階で不要な物でしたが、入れたままになっていたので念のためアンインストールを行います。 pip uninstall chainer-cuda-deps 2) pipのアップグレード †同様にchainerのアンインストールを行おうとしたところ、pipがchainerを発見出来ない現象が起きたため、pipをアップグレードしました。 pip install --upgrade pip 3) chainerのアンインストール †インストールフォルダを見ると複数バージョンのパッケージが残っていたため、以下のアンインストール手順を二度繰り返しました。 pip uninstall chainer 4) libhdf5のインストール † インストールガイドではgccと一緒にインストールしていますが、本環境では最新のg++導入済みだったため今回はlibhdf5のみ apt-get install libhdf5-dev 5) chainerのインストール † ここで改めてchainerをインストールします。3)でアンインストールしている(クリーンインストールとなる) ため、 pip install chainer ベンチマーク †以上でChainer 1.5.1のインストールに成功したので、MNISTサンプルの学習にかかる時間を time -pで計測し、簡易的なベンチマークを time -p pythone train_mnist.py -g 0 ※-g 0 はGPU使用オプションです。 こちらの結果は real 65.34 user 61.02 sys 2.66 となりました。以前1.4.2で計測した際はreal 88秒、user 85秒程度かかっていたため、20秒ほど速くなっています。 cuDNNの有効化 †ひとまずこれで完了なのですが、上記実行時にcuDNNが有効化されていない旨の警告が表示されています。cuDNNはNVDIAが無償公開している cuDNNはNVIDIAの開発者サイト(https://developer.nvidia.com/cudnn)で入手出来ますが、同サイトへの登録と承認が必要です。 登録時と同じようなアンケートに回答すると、いくつかのバージョンから選択式でcuDNNをダウンロード出来るようになっています。 cuDNNにはインストーラなどは付属しておらず、ヘッダファイルとライブラリがそのまま入っています。今回ダウンロードしたLinux版 v2 $ tar zxvf cudnn-6.5-linux-x64-v2.tgz cudnn-6.5-linux-x64-v2/ cudnn-6.5-linux-x64-v2/INSTALL.txt cudnn-6.5-linux-x64-v2/CUDNN_License.pdf cudnn-6.5-linux-x64-v2/cudnn.h cudnn-6.5-linux-x64-v2/libcudnn_static.a cudnn-6.5-linux-x64-v2/libcudnn.so.6.5 cudnn-6.5-linux-x64-v2/libcudnn.so.6.5.48 cudnn-6.5-linux-x64-v2/libcudnn.so これらをCUDAインストールフォルダにコピーします。今回の環境では/usr/local/cudaにCUDAがセットアップされているため、以下の cp cudnn.h /usr/local/cuda/include/ cp lib* /usr/local/cuda/lib64/ 以上でcuDNNのインストールは完了です。 ChainerでcuDNNを有効にするには再インストールが必要になるため、手順3)、5)を再度実行しクリーンインストールを行います。 pip uninstall chainer pip install chainer これでcuDNNを有効化したChainer1.5.1がセットアップ出来ました。再度ベンチマークをとってみると、今度は先の警告は表示されず、結果は real 64.97 user 60.91 sys 2.65 となりました。若干の向上は見られますが、測定誤差の範囲です。もう少し規模の大きなデータで試すと有意な差があらわれるのかもしれません。 |