如何使tensorflow在具备2.x能力的GPU上运行?

38

我已经在Linux Ubuntu 16.04上成功安装了tensorflow(GPU版本),并进行了一些小的更改以使其与新的Ubuntu LTS版本兼容。

然而,我曾认为(谁知道为什么)我的GPU符合大于3.5的计算能力最低要求。但事实并非如此,因为我的GeForce 820M 的计算能力只有2.1。是否有办法使tensorflow GPU版本能够在我的GPU上运行?

我提出这个问题是因为显然在Ubuntu 16.04上无法使tensorflow GPU版本工作,但通过搜索互联网,我发现这不是事实,并且我几乎使它工作了,除了这个不满足的要求。现在我想知道GPU计算能力的问题是否也可以解决。


我查了一下那个GPU,它看起来非常弱。如果我是你,我会使用CPU tensorflow,因为我认为性能差别不大。甚至可能更快。 - chasep255
@chasep255 我能够在GPU上使用mxnet(Python)。它运行得有点快。是的,差别不是很大,但是当运行很多个时期时,即使是一个小差别也可以帮助。如果将该软件包适应我的机器不需要太多的努力,我想我可以尝试一下。 - mickkk
@mickkk 我注意到 TensorFlow 也支持 OpenCL... 不确定是否可以作为替代方案使用。现在打算尝试这样构建它。如果正常工作,我会回报的。 - Ru Hasha
3个回答

30

最近的TensorFlow GPU版本需要计算能力3.5或更高(并使用cuDNN来访问GPU)。

cuDNN也需要cc3.0或更高的GPU:

cuDNN支持具有Pascal、Kepler、Maxwell、Tegra K1或Tegra X1 GPU的Windows、Linux和MacOS系统。

  • Kepler = cc3.x
  • Maxwell = cc5.x
  • Pascal = cc6.x
  • TK1 = cc3.2
  • TX1 = cc5.3

cuDNN不支持Fermi GPU(cc2.0、cc2.1)。

旧的GPU(例如,计算能力为1.x的GPU)也不受cuDNN支持。

请注意,cuDNN的任何版本或TF的任何版本都从未正式支持过NVIDIA低于cc3.0的GPU。最初版本的cuDNN需要cc3.0 GPU,而最初版本的TF也需要cc3.0 GPU。


现在我想知道为什么我能够使用cuDNN在GPU上运行mxnet,虽然原则上你甚至不能在最新的Ubuntu LTS上安装tensorflow GPU. - mickkk
3
cuDNN无法在cc2.1 GPU上运行。或许mxnet有一条启用GPU但不需要cuDNN的路径。看起来是这种情况在这里。请注意,声称支持GPU的版本为cc2.0及更高版本,但使用"CUDNN加速GPU计算"。 - Robert Crovella
@RobertCrovella 警告:前两个链接是 404。 - JarsOfJam-Scheduler

11
2017年9月更新:没有办法解决这个问题而不会遇到问题和痛苦。我尝试了所有的方法,甚至使用以下技巧来强制运行,但最终我不得不放弃。如果你对Tensorflow很认真,那就直接购买 3.0 计算能力的 GPU 吧。 下面是一个在2.0计算能力GPU上强制运行tensorflow的技巧(非官方):
  1. 找到位于Lib/site-packages/tensorflow/python/_pywrap_tensorflow_internal.pyd(或Lib/site-packages/tensorflow/python/_pywrap_tensorflow.pyd)中的文件。
  2. 使用Notepad++或类似软件打开它。

  3. 使用正则表达式查找第一次出现的 3\.5.*5\.2
  4. 您将看到3.5 * 5.2之前的3.0,将其更改为2.0。
我按上述步骤进行了更改,并可以使用GPU进行简单计算,但在尝试实际项目时遇到了奇怪和未知的问题(使用 3.0 计算能力的 GPU 可以运行这些项目)。

10
我强烈建议不要这样做。在我的装有GeForce 800M的笔记本电脑上尝试这个技巧后,结果是不正确的。 - Marcin Tarka
2
是的,发现这一点确实令人难过。我的GPU也发现在处理复杂模型时存在问题(奇怪的错误),而使用相同的模型(相同的代码),它可以在GPU 3.0上平稳运行。 - Tin Luu
2
谢谢大家反馈上面实验中的问题。这帮助我简单地放手并理解如果我想运行TF,我必须购买新的GPU。@TinLuu,请考虑编辑您的答案以反映问题,以便那些可能跳过这些评论的人不会走弯路! - mayank
谢谢您的建议!我已经更新了答案,这样大家就可以更容易地做出决定了。 - Tin Luu

0
我发现了如何在计算能力为2.1的NVIDIA GeForce 525M上安装Tensorflow-gpu,诀窍很简单,使用Tensorflow的存档版本即可,我使用的是1.9.0版本。使用PIP安装包的Python命令是 pip install tensorflow-gpu==1.9.0 cuDNN版本是7.4.1。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接