我将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
对这个问题有任何想法吗?
答案 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
,然后单击确定。