无法在上下文上使用cuDNN无:无法使用cuDNN进行编译:致命错误:cudnn.h:没有此类文件或目录

时间:2019-07-16 19:08:14

标签: linux python-3.x theano theano.scan

我将theano配置为连接到GPU,并安装了所有必需的库。

我使用了文档中的以下代码来检查GPU是否正常工作:

THEANO_FLAGS='floatX=float32,device=cuda0,gpuarray.preallocate=1' python GPU.py

代码:

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 xrange(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')
# End gpu_test.py

但是我得到了这个错误:

Can not use cuDNN on context None: cannot compile with cuDNN. We got this error:
b'/tmp/try_flags_47onlbh0.c:4:19: fatal error: cudnn.h: No such file or directory\ncompilation terminated.\n'
Preallocating 7554/7952 Mb (0.950000) on cuda0
Mapped name None to device cuda0: GeForce RTX 2080 (0000:17:00.0)
[GpuElemwise{exp,no_inplace}(<GpuArrayType<None>(float32, vector)>), HostFromGpu(gpuarray)(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.245761 seconds
Result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
  1.62323296]
Used the cpu

对这个问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

错误告诉您缺少的内容:fatal error: cudnn.h: No such file or directory\ncompilation terminated。这意味着您的cuda没有得到cudnn.h文件。

我遇到了同样的问题,并按照documentation中提到的以下步骤解决了该问题。奏效了!

  

以下步骤描述了如何构建cuDNN依赖程序。   在以下各节中,以CUDA v9.0为例:

     

您的CUDA目录路径称为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

     

将下载的cuDNN的以下文件复制到CUDA Toolkit目录中。

     
      
  • yourinstallpath\cuda\bin\cudnn64_7.dll复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
  •   
  • yourinstallpath\cuda\ include\cudnn.h复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
  •   
  • yourinstallpath\cuda\lib\x64\cudnn.lib复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
  •   
     

设置以下环境变量以指向cuDNN所在的位置   位于。要访问CUDA_PATH环境变量的值,   执行以下步骤:

     

从“开始”菜单中打开命令提示符。键入运行,然后按Enter。   发出控制sysdm.cpl命令。选择位于的高级选项卡   窗口顶部。单击环境变量底部的   窗口。确保设置以下值:变量名称:   CUDA_PATH变量值:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

     

在您的Visual Studio项目中包括cudnn.lib。打开视觉   Studio项目,然后右键单击项目名称。点击链接器>   输入>其他依赖关系。添加cudnn.lib,然后单击确定。