2017-02-19 40 views
24

Note : this question was initially asked on github , but it was asked to be here insteadtensorflow对GPU:没有已知的设备,尽管CUDA的DEVICEQUERY返回“PASS”的结果

我有运行在GPU上tensorflow麻烦,并且它不似乎是平常CUDA的配置问题,因为一切似乎表明cuda已正确设置。

主要症状:运行张量流时,未检测到我的GPU(the code being runits output)。

与常见问题有什么不同之处在于,cuda似乎已正确安装,并且从cuda样本成功运行./deviceQueryoutput)。

我有两个图形卡:

  • 老GTX 650用于我的显示器(我不希望使用一个与tensorflow)
  • 一个GTX 1060,我想献给tensorflow

我用:

我已经试过:

  • 加入/usr/local/cuda/bin/$PATH
  • 迫使GPU放置在tensorflow小号CRIPT使用with tf.device('/gpu:1'):(和with tf.device('/gpu:0'):当它失败了,好措施)
  • 白名单我想与CUDA_VISIBLE_DEVICES使用GPU,万一我老不支持卡的存在也导致问题
  • 运行使用sudo的脚本(因为为什么不)

这里是nvidia-sminvidia-debugdump -l的输出,以防万一它有用。

在这一点上,我觉得我跟着所有的面包屑,不知道我可以尝试别的。我甚至不确定是否正在考虑错误或配置问题。任何意见关于如何调试这将不胜感激。谢谢!

更新:与雅罗斯拉夫GitHub上的帮助,我聚集了通过提高日志级别调试信息,但它似乎并没有说太多关于该设备的选择:https://gist.github.com/oelmekki/760a37ca50bf58d4f03f46d104b798bb

更新2:使用theano检测gpu是否正确,但有趣的是,它抱怨cuDNN太近了,然后回退到cpu(code ranoutput)。也许这可能是tensorflow的问题呢?

+1

作为另一个合理性检查,你可以尝试另一个框架(如Theano)与GPU来查看它是否工作,也许你的GPU设置不知何故被deviceQuery检测不到 –

+0

好主意,谢谢。我会尝试并在问题主体中报告。 –

+0

输出可疑小,这是我看到当我运行VLOG = 1时 - http://pastebin.com/LQF0j3Ri –

回答

24

从日志输出中,它看起来像运行TensorFlow(PyPI:tensorflow)的CPU版本,而不是GPU版本(PyPI:tensorflow-gpu)。运行GPU版本将记录有关CUDA库的信息,或者如果未能加载它们或打开驱动程序,则会出现错误。

如果您运行下面的命令,你应该能够使用GPU在随后的运行中:

$ pip uninstall tensorflow 
$ pip install tensorflow-gpu 
+0

哦,的确如此。我遵循这个文档[1],而tensorflow已经安装,我不知道它需要另一个包。谢谢! - [1] https://www.tensorflow.org/tutorials/using_gpu –

+2

每当我安装tensorflow-gpu时,它将重新安装tensorflow。这是否应该发生?我无法检测到我的设备 –

+1

我有同样的问题,我按照你的步骤,“卸载tensorlow”和“安装tensorflow-gpu”我得到这个错误: AttributeError:'模块'对象没有属性'会话' –

4

在我的情况:

pip3 uninstall tensorflow 

是不够的。因为当重新安装时:

pip3 install tensorflow-gpu 

它仍然重新安装tensorflow与cpu不gpu。 所以,在安装tensorfow-pgu之前,我试图删除site-packages中所有相关的tensor文件夹,卸载protobuf,并且它工作正常!

对于结论:

pip3 uninstall tensorflow 

删除〜各张文件夹\ Python35 \ LIB \站点包

pip3 uninstall protobuf 
pip3 install tensorflow-gpu 
+1

错别字建议:我建议你使用'pip3'无处不在,在你的帖子里。 在我的情况下,我从dist-packages中移除了tensorboard和ten​​sorflow-1.3.0.dist-info,并解除了这个问题。 – piercus

+1

嗯由于某些原因仍然安装tensorflow ... – dter

1

没有其他的答案,我在这里工作。一点修修补补后,我发现这个固定我的问题时,处理Tensorflow二进制建:


步骤0:卸载的Protobuf

pip uninstall protobuf 

第1步:卸载tensorflow

pip uninstall tensorflow 
pip uninstall tensorflow-gpu 

步骤2:强制重新安装带有GP的Tensorflow u支持

pip install --upgrade --force-reinstall tensorflow-gpu 

步骤3:如果你有没有准备好,设置CUDA_VISIBLE_DEVICES

所以对我来说有2个GPU这将是

export CUDA_VISIBLE_DEVICES=0,1