2015-12-17 8 views
6

ओएस: उबंटू 14.04LTS
भाषा: अजगर एनाकोंडा 2.7 (keras, थेनो)
GPU: GTX980Ti CUDA: CUDA 7,5Ipython नोटबुक पर मैं अपने जीपीयू का उपयोग कैसे कर सकता हूं?

मैं keras मेरी GPU (GTX980Ti) का उपयोग करके IPython नोटबुक पर अजगर कोड चलाने करना चाहते हैं
लेकिन मुझे यह नहीं मिल रहा है।

मैं नीचे दिए गए कोड का परीक्षण करना चाहते। जब मैं 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 


कोड को चलाने और यह अच्छी तरह से चलाता है।

लेकिन जब मैं पिचर्म (पायथन आईडीई) या पर कोड चलाता हूं, जब मैं इसे आईपीथॉन नोटबुक पर चलाता हूं, तो यह gpu का उपयोग नहीं करता है। यह केवल सीपीयू

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') 

इसे हल करने के लिए, मैं (सम्मिलित दो myscript.py के बारे में अधिक लाइनों)

import theano.sandbox.cuda 
theano.sandbox.cuda.use("gpu0") 

नीचे के रूप में कोड उपयोग GPU के लिए मजबूर तो ऐसा लगता है कि त्रुटि उत्पन्न

नीचे
ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc installation and try again. 

इसे कैसे करना ??? मैं दो दिन बिताए ..
और मैं निश्चित रूप से घर निर्देशिका में '.theanorc' फ़ाइल का उपयोग कर के माध्यम से किया था।

+1

क्या आपने डबल-चेक किया है कि 'nvcc' '/ usr/local/cuda/bin' में रहता है? स्थापना के दौरान एक अलग स्थान चुना जा सकता है। जब आप पाइथन के भीतर से 'पथ' प्रिंट करते हैं, तो क्या इसमें 'nvcc' का पथ होता है? यह उस स्थान की तुलना में पर्यावरण परिवर्तनीय 'पथ' का एक अलग उदाहरण उठा सकता है जिसे आपने 'nvcc' स्थान जोड़ा था। – njuffa

+0

@talomies उत्तर देने के लिए धन्यवाद! – user3704652

+0

@talomies लेकिन मैं दोबारा जांच करता हूं कि/usr/local/cuda/bin में nvcc है .... और /usr/local/cuda-7.5/bin में भी nvcc है .. क्या इसमें कोई समस्या है ?! – user3704652

उत्तर

2

मैं एक IPython अपने सिस्टम के GPU का इस्तेमाल कर रही नोटबुक पर थेनो उपयोग कर रहा हूँ। यह विन्यास अपने सिस्टम पर ठीक से काम करने लगता है (मैकबुक GTX 750M के साथ प्रो)

मेरे ~/.theanorc फ़ाइल:।

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

विभिन्न वातावरण चर (मैं एक आभासी पर्यावरण (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: 

मैं कैसे नोटबुक IPython चलाने (मेरे लिए, डिवाइस gpu0 है):

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

outpu $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 

अपनी पोस्ट से, शायद आप $ पथ चर गलत निर्धारित किया है।

संबंधित मुद्दे