OS : Ubuntu 14.04LTS
言語 : Python Anaconda 2.7 (keras, theano)
GPU : GTX980Ti CUDA : CUDA 7.5
GPU (GTX980Ti) を使用して IPython Notebook で keras python コードを実行したいの
ですが、見つかりません。
以下のコードをテストしたい。Ubuntu端末で実行する場合は、以下のようにコマンドを実行します(GPUをうまく使用しています。問題はありません)
まず、以下のようにパスを設定します
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
次に、以下のようにコードを実行します
THEANO_FLAGS='floatX=float32,device=gpu0,nvcc.fastmath=True' python myscript.py
そして、それはうまくいきます。
しかし、pycharm(python IDE)でコードを実行するとき、またはIpython Notebookで実行すると、gpuは使用されません。CPUしか使わない
myscript.py コードは以下の通りです。
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen = 10 * 30 * 768 # 10 x #cores x # threads per core
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 %f seconds" % (iters, t1 - t0))
print("Result is %s" % (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')
それを解決するために、以下のようにコードで強制的に gpu を使用します (myscript.py にさらに 2 行挿入します)。
import theano.sandbox.cuda
theano.sandbox.cuda.use("gpu0")
次に、以下のようなエラーを生成します
ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc installation and try again.
どうやってするの???2日間かけて..
確かにホームディレクトリにある「.theanorc」ファイルを使う方法をやってみました。