深層学習用PCの発注手続きを進めているが、納品まで数ヶ月かかるという。まってられないのでなんとか手持ちの戦力でGPUディープラーニングができないかと試行錯誤した結果を記しておく。
用意したもの
Sonnet Breakaway box
thunderbolt 3で外付けGPU(eGPU)を実現する。
nvidia gtx1080ti
上述のbreakaway box では8pin+6pinまでしか対応していないので該当するモデルを探すのに少し苦労した(8pin+8pinのものが多い)。最終的に玄人志向のものを購入した。
MacBook Pro(2017)
2017年10月中旬購入。幸いにもhigh sierraが入っていなかった。後述する理由でsierraでなければ駄目。
macOS Sierra 10.12.6
間違ってもhigh sierraにしないこと。2017年10月20日時点で
CUDA Application Support:
In order to run macOS Applications that leverage the CUDA architecture of certain NVIDIA graphics cards, users will need to download and install a compatible CUDA driver. A CUDA driver which supports macOS High Sierra 10.13 will be available at a later date.
nvidia
cudaドライバがhigh sierraに対応していないので接続できても使えませんとのこと。
使いたいディープラーニングフレームワーク
tensorflow(+ Keras)
macがnvidia gpuを公式にサポートしていないのでtensorflowが対応を打ち切ってしまった。
pip install tensorflow-gpuでインストール可能な最新版はver1.1.0
接続云々
breakaway boxのマニュアルを見ながら接続、ドライバインストールを行う。
*マニュアルにしたがってセットアップを進めていくと、最新版のcuda(+cuDNN)のインストールを指示される。フレームワークが要求するバージョンを入れる必要がある。
tensorflow-gpu(v1.1.0)はCUDA8.0を要求する。現時点での最新版は9.0なので、brew cask install cudaとかすると後者がインストールされるので駄目。cuda toolkit8.0をホームページから探してきて入れる。今回は8.0.61(v5.0)をインストールした。対応するcuDNNはcuDNN-8.0 v5.0。v5.1もあるが、対応をとらないとtensorflowの実行でエラーをはく。