ओएस: उबंटू 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' फ़ाइल का उपयोग कर के माध्यम से किया था।
क्या आपने डबल-चेक किया है कि 'nvcc' '/ usr/local/cuda/bin' में रहता है? स्थापना के दौरान एक अलग स्थान चुना जा सकता है। जब आप पाइथन के भीतर से 'पथ' प्रिंट करते हैं, तो क्या इसमें 'nvcc' का पथ होता है? यह उस स्थान की तुलना में पर्यावरण परिवर्तनीय 'पथ' का एक अलग उदाहरण उठा सकता है जिसे आपने 'nvcc' स्थान जोड़ा था। – njuffa
@talomies उत्तर देने के लिए धन्यवाद! – user3704652
@talomies लेकिन मैं दोबारा जांच करता हूं कि/usr/local/cuda/bin में nvcc है .... और /usr/local/cuda-7.5/bin में भी nvcc है .. क्या इसमें कोई समस्या है ?! – user3704652