【发布时间】:2016-04-20 22:16:19
【问题描述】:
当我尝试导入 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 的值 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 并且它有效。
我通过将这一行添加到 theano 配置解决了禁用 cuDNN 的第二个问题:
optimizer_including = cudnn
查看此页面了解更多详情:sandbox/cuda/dnn
【问题讨论】:
-
所以我尝试在禁用 CNMeM (
cnmem=0) 的情况下运行它,这不会引发错误,但也无法解决该问题。但是,在导入 theano 后,我收到一条消息, cuDNN 不可用。Using gpu device 0: GeForce GT 750M (CNMeM is disabled, cuDNN not available)这也很奇怪,因为我很确定我已经在 CUDA 文件夹中准备好了所有东西。显然这个问题比我想象的更深。 -
它也适用于 GT 940M。谢谢!恕我直言,您应该作为答案发布
标签: python theano theano-cuda