【问题标题】:Import theano with gpu fails, because "out of memory" error使用 gpu 导入 theano 失败,因为“内存不足”错误
【发布时间】: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!,但是他们在谈论 floatint 的值 CNMeM,我想我已经正确设置为 0.9(无特殊原因,我实际上尝试了1.00.950.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


【解决方案1】:

首先,我没有意识到CNMeM 的值是占总内存的百分比,而且因为我使用的是带有两个显示器的 gpu,我实际上并没有太多可用的内存,无论如何,我已经尝试过 0.1 并且它有效。

我通过将这一行添加到 theano 配置解决了禁用 cuDNN 的第二个问题:

optimizer_including = cudnn

查看此页面了解更多详情:sandbox/cuda/dnn

【讨论】:

    猜你喜欢
    • 2018-11-15
    • 2013-03-14
    • 2014-01-06
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多