概要
ChainerXがすごいと聞いたので、Chainerの最新版をMacOS(10.13.6)にインストールしてみたときの試行錯誤を記録します。
環境
- High Sierra 10.13.6
- 外付けGPUあり(GTX1080ti)
前提
Cuda等のインストールはすでに済ませているものとします。(参考)
Chainer、Cupyのレポジトリをそれぞれクローンしてきます
# chainer
git clone https://github.com/chainer/chainer
# cupy
git clone https://github.com/cupy/cupy
- chainerはpipでもインストールできますが、chainerxもインストールする場合は、現在はソースからインストールする必要があります。 オフィシャルのドキュメントはこちらです。
# chainerのインストールのための環境変数設定
# chainerxはcuda付きでビルドします
# 以下のCUDNN_ROOT_DIRは私の場合です。findコマンドなりで探してください。
export CHAINER_BUILD_CHAINERX=1
export CHAINERX_BUILD_CUDA=1
export CUDNN_ROOT_DIR=/usr/local/cuda/lib
export MAKEFLAGS=-j8
- オフィシャルとは違いますが、クローンしてきたレポジトリでセットアップします。
cd [cupyのディレクトリ]
pip install .
cd [chainerのディレクトリ]
pip install .
失敗例
- Command Line Toolsのバージョンが9だとchainerのビルドができませんでしたが、10(Apple LLVM version 10.0.0 (clang-1000.10.44.2) )にアップグレードして実行したところ成功しました。
- matplotlibがインストールされていないと怒られましたが、pip install matplotlibで解決しました。
- インストール後、Mnistのサンプルコードを回したところ、matplotlibのbackendがどうのこうのだと怒られましたが、こんなふうにbackendをmacosxからTkaggに変更したところ解決しました。
失敗かわからないが気にしたこと
- Cupyのインストールが先のほうが良いかもしれない。
スピードチェック
上記サンプルコードは2019.1.17時点のmasterはChainerXを使うようになっています。ChainerXを使っていないv5ブランチのものと比較しました。
- GPUあり + ChainerXあり
real 1m4.834s
user 1m8.003s
sys 0m2.527s
- GPUあり + ChainerXなし
real 1m0.672s
user 1m3.361s
sys 0m2.715s
- GPUなし + ChainerXあり
real 7m1.731s
user 12m16.100s
sys 1m23.104s
- GPUなし + ChainerXなし
real 6m52.470s
user 11m58.722s
sys 1m31.324s
まとめ(られていない)
- 速さに誤差しかないのはこれのせい?それともhost-heavy workloadsではないから?