読者です 読者をやめる 読者になる 読者になる

忘れないようにメモっとく

機械学習とかプログラミングとか。

Theanoを使ってGPU計算をする。

python theano nvcc

Deep LearningにtheanoのGPU計算のチュートリアルがあったのでやってみた。
pylearn2を使ったディープラーニングのトレーニングもGPUで高速計算できる。
Using the GPU — Theano 0.6 documentation

ちなみにCUDAが対応してないパソコンだとCPUしか使えない。(airできなかった(; _ ;))

次のコードを実行する。
check.py

from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

vlen = 10 * 30 * 768  # 10 x
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print f.maker.fgraph.toposort()
t0 = time.time()
for i in xrange(iters):
    r = f()
t1 = time.time()
print 'Looping %d times took' % iters, t1 - t0, 'seconds'
print 'Result is', r
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print 'Used the cpu'
else:
    print 'Used the gpu'

CPUで計算するときは、

THEANO_FLAGS=mode=FAST_RUN,device=cpu,floatX=float32 python check.py

GPUで計算するときは、

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


ちなみに、nvccコンパイラがないとエラーが出る。

nvcc compiler not found on $PATH. Check your nvcc installation and try again. 


nvccのダウンロード。
http://www.nvidia.com/content/cuda/cuda-downloads.html

インストールの参考サイト。
Getting Started Mac OS X :: CUDA Toolkit Documentation


インストールしたら、パスを通す。

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