2017-06-08 6 views
0

私は、ソース(gitバージョン)からシステムフォルダ(ユーザではない)にGPUArrayをインストールする手順に従ってきました。 GPUArrayテストはエラーなく正常に実行されます。root以外のユーザがCUDAを使用してインストールする際の問題

Theanoは、rootとして実行するとGPUでのみ動作するという問題があります。実行example to test gpu

(python35) [email protected]:~$ sudo THEANO_FLAGS=device=cuda python3 temp.py 
Can not use cuDNN on context None: cannot compile with cuDNN. We got this error: 
b'/tmp/try_flags_bg7m03hd.c:4:19: fatal error: cudnn.h: No such file or directory\ncompilation terminated.\n' 
Mapped name None to device cuda: TITAN X (Pascal) (0000:01:00.0) 
[GpuElemwise{exp,no_inplace}(<GpuArrayType<None>(float64, vector)>), HostFromGpu(gpuarray)(GpuElemwise{exp,no_inplace}.0)] 
Looping 1000 times took 0.390976 seconds 
Result is [ 1.23178032 1.61879341 1.52278065 ..., 2.20771815 2.29967753 
    1.62323285] 
Used the gpu 

はこれに2タイタンXをがあります。まだcuDNNは多分デバイスを識別することができないに関連するエラーがあるものの、それが動作するルートとして実行した場合

(python35) [email protected]:~$ THEANO_FLAGS=device=cuda python temp.py 
ERROR (theano.gpuarray): Could not initialize pygpu, support disabled 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.5/dist-packages/theano/gpuarray/__init__.py", line 179, in <module> 
    use(config.device) 
    File "/usr/local/lib/python3.5/dist-packages/theano/gpuarray/__init__.py", line 166, in use 
    init_dev(device, preallocate=preallocate) 
    File "/usr/local/lib/python3.5/dist-packages/theano/gpuarray/__init__.py", line 73, in init_dev 
    context.cudnn_handle = dnn._make_handle(context) 
    File "/usr/local/lib/python3.5/dist-packages/theano/gpuarray/dnn.py", line 83, in _make_handle 
    cudnn = _dnn_lib() 
    File "/usr/local/lib/python3.5/dist-packages/theano/gpuarray/dnn.py", line 70, in _dnn_lib 
    raise RuntimeError('Could not find cudnn library (looked for v5* or v6*)') 
RuntimeError: Could not find cudnn library (looked for v5* or v6*) 
[Elemwise{exp,no_inplace}(<TensorType(float64, vector)>)] 
Looping 1000 times took 3.201078 seconds 
Result is [ 1.23178032 1.61879341 1.52278065 ..., 2.20771815 2.29967753 
    1.62323285] 
Used the cpu 

機械。 Tensorflowでうまく動作します。私は.theanorcファイルを使用していないが、私は両方を設定している:

(python35) [email protected]:~$ echo $LD_LIBRARY_PATH 
/usr/local/cuda-8.0/lib64 
(python35) [email protected]:~$ echo $CUDA_ROOT 
/usr/local/cuda-8.0/ 

私は指示に従ってすべてをした、といくつかの警告にもかかわらず、エラーがなかったです。

私は.theanoディレクトリをchownコマンド場合の動作は同じであるので、それは、コンパイルディレクトリ.theanoのパーミッションエラーではないと思います。

どうすればこの問題を解決できますか?

答えて

2

私はついにこの問題を発見しました。あなたがLIBRARY_PATHが設定されているかどうかを検証し、それにcudaライブラリを追加する必要があるというTheanoをインストールするための指示には欠けている側面があります(LD_LIBRARY_PATHではないことに注意してください)。

設定されていない場合はエクスポートしてください。だから、一時的な修正のために:

export LIBRARY_PATH=/usr/local/cuda-8.0/lib64 

が、それはシステムに依存してもよい持続することが、一般的に、あなたが行を追加し、/etc/environmentに追加することができます。これは、メッセージを固定

LIBRARY_PATH=/usr/local/cuda-8.0/lib64 

とき根、および通常のユーザーのための固定されたcuda。

関連する問題