操作系統:Ubuntu的14.04LTS
語言:Python的蟒蛇2.7(keras,theano)
GPU:GTX980Ti CUDA:CUDA 7.5如何在Ipython Notebook上使用我的GPU?
我想通過使用我的GPU(GTX980Ti) 上IPython的筆記本電腦運行keras Python代碼
但我找不到它。
我想測試下面的代碼。當我到Ubuntu終端運行它, I命令如下(它使用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)
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.
怎麼辦?我花了兩天..
我確實在家庭目錄中使用'.theanorc'文件的方式。
你是否已經仔細檢查'nvcc'駐留在'/ usr/local/cuda/bin'中?安裝過程中可能選擇了不同的位置。當你在Python中打印'PATH'時,它是否包含'nvcc'的路徑?它可能正在拾取環境變量'PATH'的另一個實例,而不是您添加'nvcc'位置的實例。 – njuffa
@talomies謝謝你回答! – user3704652
@talomies但我仔細檢查在/ usr/local/cuda/bin中是否有nvcc ....並且/usr/local/cuda-7.5/bin也有nvcc ..是否有問題? – user3704652