OS: Ubuntu 14.04LTS
Język: Anaconda Python 2.7 (Keras, Theano)
GPU: GTX980Ti CUDA: CUDA 7.5Jak używać GPU w Notatniku Ipython?
Chcę biec Keras kodu Pythona na ipython Notebook za pomocą mojego GPU (GTX980Ti)
Ale nie mogę go znaleźć.
Chcę przetestować poniższy kod. Gdy uruchomię go na terminalu Ubuntu, rozkazuję jak poniżej (wykorzystuje GPU dobrze. To nie ma żadnego problemu)
Najpierw ustawić ścieżkę jak poniżej
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
drugi uruchomić kod jak poniżej
THEANO_FLAGS='floatX=float32,device=gpu0,nvcc.fastmath=True' python myscript.py
i działa dobrze.
Ale po uruchomieniu kodu na pycharm (python IDE) lub Po uruchomieniu go na notebooku Ipython, nie korzysta z gpu. Używa tylko procesora
kod myscript.py wygląda jak poniżej.
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')
Aby go rozwiązać, to wymusić użycie kodu GPU jak poniżej (wstawić dwie linie bardziej na myscript.py)
import theano.sandbox.cuda
theano.sandbox.cuda.use("gpu0")
Następnie generować ten błąd jak poniżej
ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc installation and try again.
jak to zrobić ??? Spędziłem dwa dni ...
I na pewno zrobiłem sposób użycia pliku ".theanorc" w katalogu domowym.
Czy dwukrotnie sprawdziłeś, czy 'nvcc' znajduje się w'/usr/local/cuda/bin'? Inna lokalizacja mogła zostać wybrana podczas instalacji. Kiedy drukujesz 'PATH' z poziomu Pythona, czy zawiera on ścieżkę do' nvcc'? Może to być pobranie innej instancji zmiennej środowiskowej 'PATH' niż tej, do której dodano lokalizację' nvcc'. – njuffa
@talomies Dziękuję za odpowiedź! – user3704652
@talomies Ale ja podwójnie sprawdzam, czy istnieje nvcc w/usr/local/cuda/bin .... I /usr/local/cuda-7.5/bin również ma nvcc .. Czy jest z tym jakiś problem ?! – user3704652