2015-12-17 8 views
6

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.

+1

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

+0

@talomies Dziękuję za odpowiedź! – user3704652

+0

@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

Odpowiedz

2

Używam theano na notebooku do ipythona z wykorzystaniem procesora graficznego mojego systemu. Konfiguracja ta wydaje się działać prawidłowo w moim systemie (Macbook Pro GTX 750M)

Moja ~/.theanorc plik.

[global] 
cnmem = True 
floatX = float32 
device = gpu0 

Różne zmienne środowiskowe (używam wirtualnego środowiska (macvnev):

echo $LD_LIBRARY_PATH 
/opt/local/lib: 

echo $PATH 
/Developer/NVIDIA/CUDA-7.5/bin:/opt/local/bin:/opt/local/sbin:/Developer/NVIDIA/CUDA-7.0/bin:/Users/Ramana/projects/macvnev/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 

echo $DYLD_LIBRARY_PATH 
/Developer/NVIDIA/CUDA-7.5/lib:/Developer/NVIDIA/CUDA-7.0/lib: 

Jak uruchomić ipython notebooka (Dla mnie, urządzenie jest gpu0):

$THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 ipython notebook 

outpu t $nvcc -V:

nvcc: NVIDIA (R) Cuda compiler driver 
Copyright (c) 2005-2015 NVIDIA Corporation 
Built on Thu_Sep_24_00:26:39_CDT_2015 
Cuda compilation tools, release 7.5, V7.5.19 

Z Twojego posta, prawdopodobnie masz ustawić zmienną $ PATH źle.

Powiązane problemy