【问题标题】:Is it possible to build TensorFlow for GTX 1070?是否可以为 GTX 1070 构建 TensorFlow?
【发布时间】:2016-12-29 00:29:38
【问题描述】:

我有一个 Ubuntu 14.04 LTS 64 位和一个 Nvidia 视频卡 - GTX 1070(第 10 代)。我正在尝试构建 TensorFlow。

我尝试使用 CUDA 7.5 和 CuDNN 5 构建它,但结果证明我安装的 CUDA 7.5 需要 352.63.0 视频驱动程序,而我从 Nvidia 下载的 GTX 1070 视频驱动程序是 367.35 - 一个更新的版本。

TensorFlow 设法构建,但是当我运行示例时,运行时出现问题:

boyko@boyko-pc:~/Desktop/tensorflow/tensorflow/models/image/mnist$ LD_LIBRARY_PATH=/usr/local/cuda-7.5/targets/x86_64-linux/lib python3 convolutional.py

由于驱动不匹配,找不到CUDA:

E tensorflow/stream_executor/cuda/cuda_driver.cc:491] 调用 cuInit 失败:CUDA_ERROR_NO_DEVICE
E tensorflow/stream_executor/cuda/cuda_diagnostics.cc:296] 内核版本 367.35.0 与 DSO 版本 352.63.0 不匹配 -- 在此配置中找不到工作设备

完整日志 - http://pastebin.com/xiYtNsHk

CUDA 7.5 需要驱动 352.63 视频驱动,但 GTX 1070 需要 367.35。问题是 TensorFlow 官方只支持 CUDA 7.5。所以要求有点矛盾。

我需要做什么?是否可以在 GTX 1070 上使用 352.63 驱动程序,它是否会运行,即使它启用了有限的功能集?或者是否有针对此驱动程序构建的 CUDA 7.5 版本,或者有没有办法针对 CUDA 8.0 构建 TensorFlow?

这是我发现的一个相关问题 - Tensorflow Bazel 0.3.0 build CUDA 8.0 GTX 1070 fails

【问题讨论】:

  • GTX 1070 是需要 CUDA 8.0 的帕斯卡卡(TF + CUDA 7.5 + 帕斯卡会给出意想不到的结果/NaN)。 CUDA 8 不受官方支持,但如果您从源代码构建似乎可以工作

标签: ubuntu machine-learning tensorflow


【解决方案1】:

您需要立即加入NVIDIA developer program 才能获得 CUDA 8.0 候选版本,因为正式版本尚未发布。你应该可以在你的 1070 上安装它(我让它在 1080 上工作)。较旧的驱动程序和 CUDA 版本甚至不支持 Pascal 架构,因此您必须走这条路。

然后你需要从 source 构建 tensorflow,这一次它应该可以工作。

【讨论】:

    【解决方案2】:

    我需要做什么?是否可以在 GTX 1070 上使用 352.63 驱动程序,它是否会运行,即使它启用了有限的功能集?或者是否有针对此驱动程序构建的 CUDA 7.5 版本,或者有没有办法针对 CUDA 8.0 构建 TensorFlow?

    您可以针对 CUDA 8.0 构建它。我已经使用 GTX 1070 成功地做到了这一点。具体来说,我能够从源代码构建和安装张量流:NVIDIA 驱动程序 367.35、CUDA 8.0 RC、cuDNN 5.1,在 Ubuntu 14.04 上。这将使用 Pascal GPU 和 CUDA 8.0 提供的所有功能构建具有最大功能的 TensorFlow。

    【讨论】:

      【解决方案3】:

      我设法构建了 tensorflow,它似乎工作正常。 正如其他答案所暗示的那样,正确与 GTX 10xx 一起工作的最低版本是 cuDNN 5 和 CUDA 8.0,但 不是 CUDA 8.0 附带的视频驱动程序。 以下是我使用的步骤:

      配置设置

      • 安装 Ubuntu 14.04 LTS
      • 安装 CUDA 8.0 RC(“是”以“更新”视频驱动程序 - 361.77,使用 .run 文件,进入 /usr/local/cuda-8.0)。
      • 安装支持 Pascal GPU 的视频驱动程序(我使用的是 367.35)
      • 安装 cuDNN 5(到 /usr/local/cuda)
      • 安装 Bazel(此处未记录详细信息)

      构建张量流

      • 如果 /usr/local/cuda 是符号链接,我建议删除它。
      • 从 master 分支下载 tensorflow 源代码(提交时间约为 22/8/2016)
      • 编辑 tensorflow/third_party/gpus/crosstool/CROSSTOL 并添加: cxx_builtin_include_directory: "/usr/local/cuda-8.0" (注意:符号链接不起作用,使用实际路径link (Bazel 无法打开 CUDA 包含)
      • ./配置
      • bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
      • cd bazel-bin
      • tensorflow/tools/pip-package/build_pip_package [outfilename]
      • pip 或 pip3 安装 [outfilename]

      测试张量流

      • 导出 LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:LD_LIBRARY_PATH"
      • [python 或 python3] [python-libs-path]/tensorflow/models/image/mnist/convolutional.py
      • 测试误差:0.7%。

      *如果测试误差很大,可能需要升级cuDNN。

      *可以安装带有 cuDNN 4、CUDA 7.5 和最新视频驱动程序的 tensorflow 二进制版本,而不是构建 tensorflow。在 10xx GPU 下,像 matmul 这样的东西会起作用,而像 conv2d 这样的东西则不会。目前,tensorflow 的二进制版本不支持这种硬件,但我相信这会改变。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-05
        • 2023-03-04
        • 1970-01-01
        • 2019-02-15
        • 2019-09-03
        • 1970-01-01
        • 1970-01-01
        • 2020-03-11
        相关资源
        最近更新 更多