CUDA
ディープラーニング
iMac
Chainer

iMacでgpuモードのchainerを動かしてみた

More than 3 years have passed since last update.


iMac(late 2012)にてchainerをgpuモードで動かす

先日セミナーにてchainerを知り自分でも動かしてみたくチャレンジしてみました。

自宅のiMacはNVIDIAのグラボを載せていたのでどうせならgpuモードで

動かしたかったのですがなかなか成功せず苦労しました。。。

なんとかmnistをgpuモードで動かすことに成功したので、記録として記述します。

以下の内容は2016/3時点の内容です。


環境

マシン : iMac(late 2012)

CPU : Core i7 3.4GHz

メモリ : 24GB

GPU : GForce GTX 680MX

OS : 10.11.4(El Capitan)


pythonのインストール


  • pyenvをインストールしてver 2.7.11をインストール

  • pyenv-virtualenvをインストールしchainer用の環境を作成

  • .bash_profileに以下を記述


.bash_profile

#pyenv

export PATH="\$HOME/.pyenv/bin:\$PATH"
eval "\$(pyenv init -)"
eval "\$(pyenv virtualenv-init -)"


chainerのインストール(cpuモード)

pyenv_virtualenvで作成した環境をdefaultにした前提で

pip install chanier

以上でmnistのサンプルコードをダウンロードしてgpu=-1で実行したところ成功

cpuモードは超簡単!


cudaのインストール

gpuモードで動かすためにcudaをインストールした


  • NVIDIAのサイトからMacOS用をダウンロード(Ver 7.5)

    https://developer.nvidia.com/cuda-downloads


  • 以下のページからcudnnをダウンロード(登録の必要あり)

    https://developer.nvidia.com/cudnn


  • cudaのインストーラを起動してインストール


  • cudnnのファイルを解凍しファイルをコピー

    include -> /Developer/NVIDIA/CUDA-7.5/include

    lib -> /Developer/NVIDIA/CUDA-7.5/lib


  • .bash_profileに以下を記述



.bash_profile

## cuda 7.5

export PATH=/Developer/NVIDIA/CUDA-7.5/bin:/Developer/NVIDIA/CUDA-7.5/bin/nvcc:$PATH
export DYLD_LIBRARY_PATH=/Developer/NVIDIA/CUDA-7.5/lib:$DYLD_LIBRARY_PATH


  • chainerを再インストール

pip uninstall chanier

pip install chanier


  • mnistのサンプルコードをgpu=0で実行

     ->失敗(import cupyでエラー)


  • 調べてみたところEl CaptitanではDYLD_LIBRARY_PATHの上書きが有効にならないとの記事をみつけたので、試しにcudaのライブラリを/usr/local/cuda/libにリンクを貼ってみた


-s /usr/local/cuda/lib/* /usr/local/lib

-s /Developer/NVIDIA/CUDA-7.5/lib/* /usr/local/lib[^1]

[^1] /usr/local/cudaと/Developer/NVIDIA/CUDA-7.5のlibをそれぞれリンクしているのは、libフォルダだけ別のファイルが入っているため


  • 再度chainerを再インストールしてコードを実行
      >失敗(xcode7.3 のcommand line toolsのバージョンが対応していないっていうエラーっぽい)

"nvcc fatal : The version ('70300') of the host compiler ('Apple clang') is not supported".


XCodeの設定変更


  • Command Line Toolsをダウングレードしたいので、以下のページからxcode ver 6.4をダウンロード

    https://developer.apple.com/downloads/


  • xcode.app(6.4)のパッケージの中のXcodeDefault.xctoolchainフォルダをXcode640.xctoolchainにリネームしてxcode(使ってる新しいやつ)の同じ場所にコピー


xcode64.jpg


  • xcodeを起動して"preferences"-"Locations"の中の"Command Line Tools"のプルダウンを"Xcode 6.4"に変更


  • 再度chainerを再インストールしてgpu=0でコードを実行

     -> 成功!!



まとめ

NVIDIAのGPUを載せたMacならchainerをGPUモードで動かせることが確認できた。

ディープラーニングによく使われるGPUに比べたら非力なGPUだが、それでもCPUよりは高速に学習していて感動でした。

やっと環境が構築できたので、これから中身を触っていこうと思います。