Tensorflow não encontrando CUDNN

0

Olá, tudo o que eu instalei:

  • CUDA 8.0
  • cudnn-8.0-linux-x64-v5.1
  • Tensorflow (versão do gpu)

Eu instalei o cudnn copiado conforme sugerido no site do tensorflow:

rik@rik-MS-7971:~/Downloads$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
[sudo] password for rik: 
rik@rik-MS-7971:~/Downloads$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
rik@rik-MS-7971:~/Downloads$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

E esses arquivos residem na pasta /usr/local/cuda-8.0, já que essa é a versão que eu tenho, e / usr / local / cuda é um link para esta pasta.

Mas recebo o erro abaixo quando executo o sess.run (). Onde coloco os arquivos para que isso funcione corretamente? Obrigado.

I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:102] **Couldn't open CUDA library libcudnn.so. LD_LIBRARY_PATH: 
I tensorflow/stream_executor/cuda/cuda_dnn.cc:2259] Unable to load cuDNN DSO**
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties: 
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.797
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.45GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
    
por Rik 27.09.2016 / 17:29

1 resposta

1

você pode executar seu programa através de strace para ver quais arquivos ele tenta abrir, isso deve mostrar onde está tentando encontrar o arquivo.

-f significa manter o rastreamento em partes bifurcadas do programa

-e open significa apenas mostrar o 'open' syscalls, seria muito detalhado em contrário.

strace -f -e open /path/to/your/program
    
por Amias 27.09.2016 / 17:34