当我尝试导入 theano 库时,我收到此错误:
>>> import theano
ERROR (theano.sandbox.cuda): ERROR: Not using GPU. Initialisation of device gpu failed:
initCnmem: cnmemInit call failed! Reason=CNMEM_STATUS_OUT_OF_MEMORY. numdev=1
.theanorc 的内容:
[global]
floatX = float32
device = gpu
optimizer = fast_run
[lib]
cnmem = 0.9
[nvcc]
fastmath = True
[blas]
ldflags = -llapack -lblas
[cmodule]
mac_framework_link=True
我也尝试使用theano标志运行python环境,但仍然存在同样的问题:
$ THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32,lib.cnmem=0.9 python3
他们还在Theano Github页面上提到类似的问题:Initialisation of device gpu failed!,但他们正在讨论float
对int
的{{1}}值,我认为我已正确设置为CNMeM
(由于没有特殊原因,我实际上尝试了0.9
,1.0
,0.95
和其他一些值,结果相同。)
首先,我没有意识到0.5
的值是总内存的百分比,因为我使用的是带有两个显示器的gpu,实际上我没有太多内存无论如何,我已经尝试CNMeM
并且它有效。
禁用cuDNN的第二个问题我通过将此行添加到theano配置解决了这个问题:
0.1
有关详情,请参阅此页:sandbox/cuda/dnn
答案 0 :(得分:0)
首先,我没有意识到CNMeM
的值是总内存的%,并且因为我将gpu与两个监视器一起使用,所以实际上我没有多少内存可用于备用,无论如何,我都尝试过0.1
,它仍然有效。
禁用cuDNN的第二个问题是通过将以下行添加到theano配置中解决的:
optimizer_including = cudnn
有关详情,请参见此页面:sandbox/cuda/dnn