【问题标题】:Support for Nvidia CUDA Toolkit 9.2支持 Nvidia CUDA Toolkit 9.2
【发布时间】:2018-11-09 08:49:56
【问题描述】:

Tensorflow-gpu 绑定到特定版本的 Nvidia CUDA Toolkit 的原因是什么?当前版本似乎专门寻找 9.0,并且不适用于更高版本。例如,我安装了最新的 Toolkit 9.2 并将其添加到路径中,但 Tensorflow-gpu 无法使用它并抱怨它正在寻找 9.0。

我可以看到不支持主要版本更新而是次要版本?

【问题讨论】:

    标签: tensorflow nvidia


    【解决方案1】:

    这是个好问题。根据NVidia's website

    CUDA 驱动程序向后兼容,这意味着针对特定版本的 CUDA 编译的应用程序将继续在后续(以后的)驱动程序版本中运行。

    所以从技术上讲,支持 CUDA 驱动程序的后续迭代应该不是问题。在实践中,您会在[1][2] 上找到具有更高版本的 CUDA 和 CuDNN 的非官方预构建二进制文件。更容易安装,从 conda 安装的 tensorflow-gpu 软件包目前与 CUDA 9.2 捆绑在一起。

    当被问及该主题时,开发人员answered

    原因的答案是 9.1 所需的驱动程序问题,cuda 9.1 中我们需要的新功能并不多,还有一些小问题。

    所以原因看起来相当模糊——他可能意味着 CUDA 9.1(和 9.2)需要的显卡驱动程序可能有点太新了,不太方便,但这是一个没有根据的猜测。

    如果 NVidia 在二进制兼容性方面是正确的,您可以尝试简单地将您的 CUDA 9.2 库重命名或链接为 CUDA 9.0 库,它应该可以工作。但我会在尝试之前保存我所有的工作......而且人们甚至重新编译 tensorflow 以支持更高的 CUDA 版本这一事实可能暗示了这将如何结束。

    【讨论】:

      【解决方案2】:

      下载 TF 时,会下载一个预构建的二进制文件。 在构建过程中,TF 被硬链接到特定版本的 Cuda,因此您不能将它与不同的 cuda 版本一起使用。

      如果您想使用新的(或有时较旧的)版本的 cuda,您需要从源代码 (check how here) 安装 TF 或者,如果您真的不想自己构建,请查看这些 repos,还有其他发布特定 TF 二进制文件的示例:

      为方便起见,我在此处添加了每个预构建的 Tensorflow 版本所需的 CUDA + cuDNN 版本:

      (我在这里只写我使用的 TF 版本,也许旧的 TF 版本也使用旧版本的 CUDA)

      • TF v1.5 cuda 8.0 和 cuDNN 6 之前
      • 从 1.5 开始 - 现在针对 CUDA 9 和 cuDNN 7 构建预构建的二进制文件。

      【讨论】:

      • 如果有人可以在 TF 团队的预构建原始版本中为所有 TF - CUDA - CuDNN 组合添加(或编辑帖子),那将是非常有益的,(其他然后写的在帖子中)
      • 我刚刚安装了 Ubuntu 18.04 LTS。 NVDA 网站似乎没有为此提供的 CUDA 9.2 版本。下载为17.10构建的安装程序版本可以吗?
      【解决方案3】:

      问题不在于 NVIDIA 驱动程序,而在于 Tensorflow 本身。我花了一个小时试图让它工作,最后意识到如果你从 googleapi.com 下载预构建的二进制文件,加载 libcudart.so.9.0 是硬编码!如果您同时安装了 cuda 9.0 和 9.2,则 tensorflow 将工作(但它实际上是从 9.0 加载动态库)。 (顺便说一句,我使用 anaconda 安装了 TF。)

      更简洁的方法是从源代码构建 TF。这不是太复杂。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        • 2012-01-15
        • 1970-01-01
        • 2011-09-06
        • 2011-10-21
        • 1970-01-01
        • 2014-03-29
        相关资源
        最近更新 更多