【问题标题】:TensorFlow : failed call to cuInit: CUDA_ERROR_NO_DEVICETensorFlow:对 cuInit 的调用失败:CUDA_ERROR_NO_DEVICE
【发布时间】:2018-07-17 09:54:08
【问题描述】:

我的测试:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()`

错误:

c:\l\work\tensorflow-1.1.0\tensorflow\stream_executor\cuda\cuda_driver.cc:405]

对 cuInit 的调用失败:CUDA_ERROR_NO_DEVICE

-> 但 "/cpu:0" 工作正常

配置:

nvidia-smi:

  • CUDA 9.1 版
  • tensorflow-1.1.0
  • Windows 10
  • cudnn64_7.dll(安装在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin)
  • 我的 Conda 环境中只安装了 tensorflow-gpu

为什么 TensorFlow 检测不到我的 GPU?

【问题讨论】:

  • 如果您使用预构建二进制文件中的 Tensorflow 1.1,则需要 CUDA 8 和 cuDNN 5.1。这是你自己建造的吗?
  • 我已将 Tensorflow 更新到 v1.5。错误消息消失了,但它仍在使用我的 CPU 而不是我的 GPU。你觉得可能是什么原因?
  • 您可能是通过 pip "tensorflow" 而不是 "tensorflow-gpu" 安装的?
  • 不,tensorflow-gpu 已安装(仅)
  • 现在我在: - Tensorflow-gpu 1.6 - CUDA 9.0 - Cudnn 7.0 仍然:对 cuInit 的调用失败:CUDA_ERROR_NO_DEVICE

标签: windows tensorflow cudnn


【解决方案1】:

问题已解决on GitHub。如果您为 CUDA_VISIBLE_DEVICES 环境变量设置了无效值,则会显示此错误消息,例如当您只有一个 GPU(ID 为 0)并设置 CUDA_VISIBLE_DEVICES=1CUDA_VISIBLE_DEVICES=2 时。

【讨论】:

  • 似乎也发生在 CUDA_VISIBLE_DEVICES=-1 的情况下,它告诉它不要使用 GPU。张量流 2.4.1.
【解决方案2】:

真正的答案是添加以下代码行:

import os
os.environ['CUDA_VISIBLE_DEVICES'] = "0"

【讨论】:

  • 谢谢。有趣的是,即使明确的“CUDA_VISIBLE_DEVICES=0 python ...”不起作用,这个解决方案也有帮助。
  • 很多地方说使用“-1”来忽略 GPU,但这只会导致这些错误消息。设置为零是有道理的,它可以工作(图)
猜你喜欢
  • 2021-09-15
  • 1970-01-01
  • 2017-10-14
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 2021-10-04
  • 2021-09-04
  • 1970-01-01
相关资源
最近更新 更多