Windows上にChainer v1.5+CUDA+cuDNNを一番簡単に入れれる方法

  • 76
    Like
  • 2
    Comment
More than 1 year has passed since last update.

Chainerは、1.5からCython、h5pyへ依存するようになりました。Windowsへのインストール方法は2日目の記事(Chainer1.5.0をWindowsにインストールする)で書かれているのですが、皆様がもっと簡単にWindows上でまともにChainerを使えるようにいくつか補足を加えたいと思います。

この内容には間違いが含まれている可能性があります。気付き次第更新します。動作報告歓迎です。コメントによろしくお願いします

注意:2015/12/10日現在、Chainer(v1.5.1)は公式にはWindowsをサポートしていません。 git cloneしてnosetestを実行すると、いろいろな機能が実は動いていないという現実を知ることができるかと思います・・・。

全体の流れ

  • Windowsの準備
    • 64bit Windows環境と新しめのNVIDIAのGPUを用意する(オプション:CUDAを使いたい場合)
  • Pythonの準備
  • コンパイラの準備
  • CUDAの準備(オプション)
    • CUDA Toolkitをインストールする(本記事では7.5が入っているものとする)
    • cuDNNをインストールする(オプション)
  • Chainerの準備
    • pip install chainerする
  • 確認方法
    • python -c "import chainer" Chainerのテスト
    • python -c "import cupy" CUDAのテスト(オプション)
    • python -c "import cupy.cudnn" cuDNNのテスト(オプション)

どんなPython環境を選べばいいか?

まず、CUDAは7.0から64bitのみのサポートとなっています。Chainer+CUDA環境としたい場合は、Pythonは64bit版を使ってください。CPUのみの場合はどちらでもいいです。Chainer1.5から依存パッケージとなったh5pyは64bit Python上でのインストールが少々面倒です。その他いろいろな事情を考慮すると、AnacondaのPython2.7の64bit版を使うのがベストとなります。Python2.7、3.4はどちらも使えるので好みで選んで頂ければと思います(3.5は筆者は未確認)。

標準のPythonを使いたい場合はこちらで配布されているパッケージを使うなどの方法があるようです。特に、64bitかつ非Anaconda環境の場合はChaierインストール前にh5pyを必ずインストールをしておいてください。

cygwin上でのChainer動作は現在のところ確認できていないです・・・・。

コンパイラの準備

コンパイラの準備で楽をしたい人はPython2系を使うとちょっと幸せになれます・・・。

Python2.7を使いたい場合

Python2.7の場合はMicrosoft Visual C++ Compiler for Python 2.7をインストールしてください。Pythonはレジストリからこのコンパイラを見つけるので、環境変数等の設定は不要です

Python3.4を使いたい場合

Python3系はバージョンによって必要なVisual Studioのバージョンが異なります。ですが、新しいVisual Studioがインストールされていれば、環境変数の設定でこの仕様を回避できます。ここでは、CUDAインストール時の手間を考えて同じものを用意します。両方で利用可能なコンパイラはVisual Studio Community 2013です。Microsoftのサイトは時々アドレスが変わるので、リンクが切れている場合は探してください(もしくは適切なコンパイラを用意してください)。

VS2013 Communityを入れた場合は環境変数の設定が必要です。pip installの前にset VS100COMNTOOLS=%VS120COMNTOOLS%を毎回実行するか、環境変数を設定してください。

Python3.5を使いたい場合(未確認手順)

Visual Studio Community 2015がです。インストールするだけで使えるようになります。

CUDAを使いたい場合(オプション)

Visual Studioのコンパイラが必要です。新しすぎるとCUDAのコンパイラnvccがちゃんと動いてれないのでマニュアルを見て適切なバージョンを使ってください。この記事ではCUDA7.5を使っているものとして話を進めます。

Python3.4と同じくVisual Studio Community 2013をインストールしてください。
環境変数PATHにC:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\binを追加してください。

CUDAのインストール(オプション)

Chainerを使うからにはCUDAを使わないともったいないです。NVIDIAのサイトからCUDA Toolkitをダウンロードしてインストールしてください。

cuDNN(オプション)

cuDNNはNNに必要な計算を高速かつ省メモリでこなしてくれるライブラリです。ぜひインストールしましょう。cuDNNでユーザー登録を行って数日するとダウンロードできるようになります。今すぐChainerを使いたい人はこの手順を飛ばしてください。cuDNNをインストール後にはChainerの再インストールが必要となります、注意してください(pip unisntall chainer後にpip install chainer)。

cuDNNを無事ダウンロードできた人は、展開したファイルをC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5に上書きしてください。cuDNNv3の場合、cudnn64_70.dllCUDA\v7.5\binフォルダに、cudnn.hCUDA\v7.5\includeフォルダにcudnn.libCUDA\v7.5\lib\x64に入っていれば大丈夫です。

CUDAの確認

コマンドラインを立ち上げて、nvccコマンドが使えるか確認してください。

Chainerのインストール

では、Chainerをインストールしましょう。
pip install chainer
インストールできない場合や、各種モジュールが正しくインストールできなかった場合は下のコマンドを利用してください。
pip install -U chainer -vvvv

また、cython、pip、setuptoolsが古い場合は無限ループが発生するなどの現象が確認されています。それらのライブラリを最新のバージョンにして試してみてください。

確認方法

以下のコマンドを実行してエラーが発生せずにimportができるかを確認してください。
- python -c "import chainer" Chainerのテスト
- python -c "import cupy" CUDAのテスト(オプション)
- python -c "import cupy.cudnn" cuDNNのテスト(オプション)

cupyのインポートに失敗する場合は、以下のテストをもう一度してみてください。
- nvcc nvccが実行できるかのテスト

インストールが正しく出来ているかを確認したい場合は、pip uninstall chainer をchainerが無くなるまで複数回実行後、
pip install --no-cache -vvvv chainer でキャッシュの無効化とデバッグ表示を有効にしてインストールを行ってください。
インストールに問題がある場合は、エラーログが表示されるはずです。

その他注意事項

chainer-cuda-depsは現在不要です。インストールしないでください。

参考文献