2016-05-29 18 views
1

私は、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. 

このエラーを修正するにはどうすればよいですか?

+0

これをどのユーザーで実行していますか? 'whoami'を実行します。結果は 'user'ですか? –

+0

sudoなしでコマンドを実行すると、結果は "user"になります。 – zumma

答えて

1

が、これはあなたのPythonスクリプトがアクセスすることはできませんフォルダのパーミッションを変更します

chown -R user /home/user/.theano 
chmod -R 775 /home/user/.theano 

を実行してみてください。最初のフォルダはフォルダをユーザーに属し、2番目のフォルダはユーザーが読み取り、書き込み、実行可能にするためにアクセス許可を変更します。のみ、このエラーについて

0

:あなたが以下のように行い、そこにそれを見ることができれば、あなたのNVCCがインストールされている場所を確認することができ

は、デフォルトのパスは、「は/ usr/local/CUDA/binに」です:

$ export PATH="/usr/local/cuda/bin:$PATH" 
$ source .bashrc 

これは私にとってはうまくいきましたが、今はNVCCを使用することができ、もはや欠落していません。

関連する問題