はじめに
インストールのハマりどころ
- python 2.7系でも python 3.5系でもインストールは楽だった
- しかし、Chainerの最新版では gcc 4.8 以上が必要とされているが、CentOS6.7のでは 4.4 どまりである
- ちなみに、GPGPU (CUDA)を使わない場合は4.4でも問題ないが
python train_mnist.py -g 0をすると死ぬ- core がない、などのエラーがでる
- あれ自分の環境は?と思った人は、とりあえず
python -c 'import cupy'をして何もエラーがなければ問題は無い
- Chainerをインストール(コンパイル)するときだけgcc-4.8が使えれば良く、実行時には必要とされないようだ
インストール手順のメモ
gcc 4.8を使えるようにする
wgetを使う方法がやたらと見つかるが、ここではyumからSCL (Software Collection; devtools-3) を使う方法で試してみる。
$ sudo yum install centos-release-scl-rh
$ sudo yum install devtoolset-3-gcc-c++
1行目でリポジトリが追加される。なお、鍵はない模様。/etc/repos.d/を眺めておくと良い。
2行目でscl-utils、devtoolset-3-gccやdevtoolset-3-binutilsあたりもインストールされる。
なお、gccなどがインストールされる先は/opt/rh/devtoolset-3/以下であり、既存のgccが上書きされたりパスを自動で通すことはない。
今回は一時的に新しいgccとg++が使いたいのだが、他のSCLコレクションとは違ってshellを動かす必要があるみたい。ということで、
$ scl enable devtoolset-3 bash
これで動く。バージョンを一応確認しておくと、
$ gcc -v
4.9という文字が見えるはず。
Chainerのインストール
いろいろ試行錯誤したあとにこのページを見つけていると思われるので、キャッシュ消しつつインストールする。
$ pip unistall chainer
$ pip install chainer --no-cache
終わったらちょっとだけ確認。
$ python -c 'import cupy'
何もエラーが出なければOK。
後は、mnist回してみましょう。
最後に
年のため、ログアウトしてからもう一度ログインしても、動くことをテストしておいた方が良いかもしれません。