지침에 따라 소스 (git 버전)의 GPUArray를 시스템 폴더 (사용자가 아님)에 설치했습니다. GPUArray 테스트는 오류없이 잘 실행됩니다.
문제는 Theano가 루트로 실행하는 경우에만 GPU에서 작동한다는 것입니다. 예제를 실행하여 gpu 테스트 :
(python35) rll@ip-30-92:~$ 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
루트로 실행하면 작동하지만 장치를 식별 할 수없는 cuDNN과 관련된 오류는 여전히 다음과 같습니다.
(python35) rll@ip-30-92:~$ 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 개의 Titan X가 있습니다. Tensorflow에서 잘 작동합니다. .theanorc 파일을 사용하지 않지만 둘 다 설정했습니다.
(python35) rll@ip-30-92:~$ echo $LD_LIBRARY_PATH
/usr/local/cuda-8.0/lib64
(python35) rll@ip-30-92:~$ echo $CUDA_ROOT
/usr/local/cuda-8.0/
지침에 따라 모든 작업을 수행했으며 일부 경고에도 불구하고 오류가 없었습니다.
내가 dir을 .theano
chown .theano
하면 동작이 동일 하기 때문에 컴파일 dir에 대한 권한 오류라고 생각하지 않습니다 .
이 문제를 어떻게 해결할 수 있습니까?
마침내 문제를 발견했습니다. Theano를 설치하기위한 지침에 누락 된 부분이 있는데, LIBRARY_PATH
이 설정이 설정 되어 있는지 확인 하고 여기에 cuda 라이브러리를 추가해야한다는 것입니다 (가 아닙니다 LD_LIBRARY_PATH
).
설정되어 있지 않으면 내보내기 만하면됩니다. 따라서 임시 수정 :
export LIBRARY_PATH=/usr/local/cuda-8.0/lib64
유지하려면 시스템에 따라 다를 수 있지만 일반적으로 /etc/environment
에 추가하여 줄을 추가 할 수 있습니다 .
LIBRARY_PATH=/usr/local/cuda-8.0/lib64
이것은 루트 때 메시지를 수정하고 일반 사용자의 경우 cuda를 수정했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다