一旦我尝试导入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 页面上提到了类似的问题:设备 gpu 的初始化失败!,但是他们在谈论float
vsint
的值CNMeM
,我想我已经正确设置了0.9
(没有特殊原因,我实际上尝试了1.0
,0.95
和0.5
其他一些值,结果相同)。
我的设置:
- Mac OS X 10.11.4
- Xcode 7.2(我不得不从 7.3 降级)
- 库达 7.5.19
- Python 3.5.1
解决方案:
首先,我没有意识到 % 的值CNMeM
是总内存的百分比,并且因为我使用的是带有两个显示器的 gpu,所以我实际上没有太多的内存可用,无论如何我已经尝试过0.1
并且它可以工作。
禁用 cuDNN 的第二个问题我通过将此行添加到 theano 配置来解决:
optimizer_including = cudnn
有关详细信息,请参阅此页面:sandbox/cuda/dnn