我使用的是ubuntu 14.04和cuda 7.5。我使用$ nvcc --version
获取cuda版本信息:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17
$ PATH和$ LD_LIBRARY_PATH如下:
$ echo $PATH
/usr/local/cuda-7.5/bin:/usr/local/cuda-7.5/bin/:/opt/ros/indigo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$ echo $LD_LIBRARY_PATH
/usr/local/cuda-7.5/lib64
我安装了theano。我用cpu而不是gpu。 This guide说
用GPU测试Theano¶ 要查看您的GPU是否正在使用,请将以下程序剪切并粘贴到文件中并运行它。
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
> range(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') The program just computes the exp() of a bunch of random numbers. Note that we use the shared function to make
> sure that the input x is stored on the graphics device.
如果我用device = cpu运行这个程序(在check1.py中),我的电脑 需要3秒多一点,而在GPU上它需要一点点 0.64秒GPU不会始终生成与CPU完全相同的浮点数。作为基准,一个调用的循环 numpy.exp(x.get_value())大约需要46秒。
$ THEANO_FLAGS = mode = FAST_RUN,device = cpu,floatX = float32 python check1.py [Elemwise {exp,no_inplace}()] 循环1000次取3.06635117531秒结果为[1.23178029 1.61879337 1.52278066 ...,2.20771813 2.29967761 1.62323284]使用了cpu
$ THEANO_FLAGS = mode = FAST_RUN,device = gpu,floatX = float32 python check1.py使用gpu设备0:GeForce GTX 580 [GpuElemwise {EXP,no_inplace}(), HostFromGpu(GpuElemwise {exp,no_inplace} .0)]循环1000次 0.638810873032秒结果是[1.23178029 1.61879349 1.52278066 ...,2.20771813 2.29967761 1.62323296]使用gpu注意,Theano中的GPU操作现在需要floatX为float32(另见下文)。
我运行没有sudo的gpu版本命令,它会抛出权限被拒绝错误:
/theano/gof/cmodule.py", line 741, in refresh
files = os.listdir(root)
OSError: [Errno 13] Permission denied: '/home/user/.theano/compiledir_Linux-3.16--generic-x86_64-with-Ubuntu-14.04-trusty-x86_64-2.7.6-64/tmp077r7U'
如果我将它与sudo一起使用,编译器找不到nvcc路径。
ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc installation and try again.
如何修复此错误?
答案 0 :(得分:1)
尝试运行
chown -R user /home/user/.theano
chmod -R 775 /home/user/.theano
这将更改您的python脚本无法访问的文件夹的权限。第一个文件夹将使文件夹属于您的用户,第二个文件夹将权限更改为用户可读,可写和可执行。
答案 1 :(得分:0)
仅针对此错误:
您可以查看NVCC的安装位置,默认路径为' / usr / local / cuda / bin',如果您可以在那里看到,请执行以下操作:
$ export PATH="/usr/local/cuda/bin:$PATH"
$ source .bashrc
这对我有用,现在我可以使用NVCC,它不再缺失。