私は、ubuntu 14.04とcuda 7.5を使用しています。nvccコンパイラが見つからない - theano
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インストール私は$ nvcc --version
を使ってCUDAのバージョン情報を取得します。私は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.
私は、デバイス= CPUを搭載した(check1.pyで)このプログラムを実行する場合は、GPU上で、それはわずか 0.64秒を要するのに対し、私のコンピュータ は、3秒かけて少しかかります。 GPUは常にCPUと同じ浮動小数点数を生成するとは限りません。ベンチマークとして、 numpy.exp(x.get_value())を呼び出すループは約46秒かかります。 1000倍のループ
$ THEANO_FLAGS =モード= FAST_RUN、デバイス= CPU、floatX =のfloat32のpython check1.py [Elemwise {EXP、no_inplace}()] は3.06635117531秒を要した結果[1.23178029 1.61879337 1.52278066です... GeForce GTX 580 [GpuElemwise {EXP、no_inplace}()、2.20771813 2.29967761 1.62323284]は
$ THEANO_FLAGS =モード= FAST_RUN、デバイス= GPU、floatX =のfloat32パイソン check1.py GPUデバイス0を使用してCPUを使用し、 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 versionコマンドを実行し、それが許可拒否エラーがスローされます。
/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.
このエラーを修正するにはどうすればよいですか?
これをどのユーザーで実行していますか? 'whoami'を実行します。結果は 'user'ですか? –
sudoなしでコマンドを実行すると、結果は "user"になります。 – zumma