はじめに
執筆時点での一番簡単なインストール方法を記したつもりです。
間違い等ありましたらコメントしていただけるとありがたいです。
以下のような方を想定して書いています。
- EC2インスタンスは建てたことがある(そこまで詳しくある必要は無い)
- Chainerを使ってみた、あるいは初めて使ってみるがどうせならGPUを使いたい
- 簡単にやりたい 1
手順の概要
- NVIDIAが公開しているCUDA及びGPUドライバインストール済みのAMIを使用してインスタンスを作成
- Chainerが必要とする依存ライブラリ郡をインストール
- Chainerをインストール
下準備
GPUをフル活用するためにはNVIDIAのライブラリを使う必要があります。
NVIDIAのライブラリはフリーですが、使うには事前に登録する必要があるので先にしましょう(Registeringに多少時間がかかります)。
詳しい手順は明記しませんが、 Register
の ボタンから登録を済ませ、確認用メールにて本登録処理をしておいてください。
手順1. EC2インスタンスの作成
最も一般的と思われるインスタンスの作成はAmazon Linuxを選択して作成する方法だと思いますが、今回はAmazonマーケットプレイスに公開されているNVIDIAのAMIを使います。
この画面左のタブからAWS Marketplaceを選択して
検索窓で「NVIDIA」と入力して以下のイメージを探します。
次へ進むと 2xlarge
と 8xlarge
が選択できるようになっていますが、 2xlarge
しか使ったことがないのでどれほどの性能差があるかはわかりません。
このままあとはいつもどおり作成しましょう。
手順2. Chainer依存ライブラリ群のインストール
###cuDNN
NVIDIA公式AMIを使うとCUDAの状態は
- install directory:
/opt/nvidia/cuda
- version: 6.5
なので(執筆時)、CUDAに依存するパッケージであるcuDNNもこれに対応してインストールします。
下準備で登録したメールアドレスに Congratulations, you are now a member of the Accelerated Computing Developer Program
のような内容が届いていれば本登録済みなので次に進みましょう。来てない場合は先に進まずにコーヒーでも淹れるのが吉です(Chainerは 本体より先に 依存ライブラリを入れておくことが推奨されている)。
公式からDownloadをクリック。
CUDA6.5に対応するcuDNNは v2
なので、下の Archived cuDNN Releases
クリックして cuDNN v2 Library for Linux
をダウンロードし、インスタンスのサーバーにアップロードして展開しておきましょう。2
あとは展開したディレクトリへ移動し、
$ sudo cp lib* /opt/nvidia/cuda/lib64
$ sudo cp cudnn.h /opt/nvidia/cuda/include/
これでおっけーです。3
hdf5
Chainer1.5から依存パッケージに h5py 2.5.0
が仲間入りしました。
これはPythonのライブラリですが hdf5
を前提にされているため、こいつだけ手動でいれてあげましょう。
$ sudo yum-config-manager --enable epel
$ sudo yum install -y hdf5-devel
依存パッケージはこれにて終了です。
Chainerのインストール
1行です。4
$ sudo CUDA_PATH=/opt/nvidia/cuda pip install chainer
一応確認しておきましょう。
$ python
>>> import chainer
エラーが出なければ問題ないでしょう。
お疲れ様でした。
おわりに
長々と書きましたがだいたいは公式に書いてあるとおりやっただけです。
ただ、hdf5の依存でハマったりcuDNNのインストールでハマったり(テキトーに最新版入れとけ→あぼーん)したので、参考になれば幸いです。
以下、参考にさせていただきました。
Amazon EC2のGPUインスタンスにChainer v1.5を3行で入れる
AWS EC2のg2.2xlargeをスポットインスタンスで立てて、chainerを動かしてみる