Setsu Yuki

Japanese things and life.

YosemiteでDeepLearningTutorialのデモにGPUを使う

概要

iMacにせっかくGPUが載っているので、TheanoをGPU上で動かしてみたい。

環境

Mac OSX 10.10.1 Yosemite
NVIDIA GeForce GT 750M
python 2.7.9

インストール

cudaのインストールは、ソースコードを持ってくるんじゃなくパッケージ管理ソフト内でやりたい。
homebrew-caskで提供されてるのでこれを使う。
homebrew-cask/Casks at master · caskroom/homebrew-cask · GitHub
homebrew-caskはjavaのインストールの時にお世話になっている。

brew cask install caskroom/cask/cuda
export PATH=/usr/local/cuda/bin:$PATH
export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH

caskroomはjavaインストールの時に使ったphinzeと違うらしくメッセージが出たがうまいこといい感じにしてくれてるんじゃないかな。
DeepLearningTutorialのルートからcodeフォルダに入って、

THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python convolutional_mlp.py

すると下記のエラー。

ImportError: No module named nose.plugins.skip

what is nose.plugins.skip · Issue #209 · MongoEngine/mongoengine · GitHub
noseをインストールするとのこと

pip install nose

この時ルートディレクトリにcdしてからやらないとエラーが出ることがある。
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
そのあと、THEANO_FLAGSのmodeを変えたりしてコードを動かしてみる。FAST_RUNだとメモリが足りませんと怒られた。上限があるらしい。
Frequently Asked Questions — Theano 0.6 documentation

THEANO_FLAGS=mode=FAST_COMPILE,device=gpu,floatX=float32 python convolutional_mlp.py

を実行すると、順調に走っています。