Tensorflow 1.12 是不是与 CUDA 10.1 兼容?

Posted

技术标签:

【中文标题】Tensorflow 1.12 是不是与 CUDA 10.1 兼容?【英文标题】:Is Tensorflow 1.12 compatible with CUDA 10.1?Tensorflow 1.12 是否与 CUDA 10.1 兼容? 【发布时间】:2019-07-22 18:54:22 【问题描述】:

我已经能够使用 nvidia-smi 418.39、驱动程序版本 418.39 和 CUDA 10.1 成功设置 Ubuntu 18.04 服务器

我现在有一个用户想要运行 TensorFlow,但坚持认为它与 CUDA 10.1 不兼容,只与 CUDA 10 兼容。在我能找到的任何地方都没有在线确认这一点的声明,也没有在任何发布补丁说明中特遣部队。因为设置这个系统有点痛苦,所以我有点犹豫是否尝试只降级一个版本。

是否有人验证过 TensorFlow 1.12 是否可以与 CUDA 10.1 一起使用?

【问题讨论】:

你需要的肯定在这里:tensorflow.org/install/gpu这也基本上是重复的:***.com/q/53591511/1531971 使用 CUDA 10.1 并不像使用 CUDA 10.0 构建那样简单,因为 CUDA 的一部分已在 10.1 中重命名或移动。在 github 中查看此问题:github.com/tensorflow/tensorflow/issues/26150 上面我的意思是说“使用 CUDA 10.1 构建...”无论如何,简短的回答是降级到 CUDA 10.0 并使用支持 CUDA 10 的 TensorFlow 1.13.1 然后到尝试使用 CUDA 10.1 从源代码编译 TensorFlow 我明白 - 这对我来说已经足够了(看到 SO 和 GH 退伍军人遇到麻烦不是我自己想要筛选的东西) - 将恢复到 CUDA 10.0 并继续使用 TF 1.13。感谢您的快速回复! 嗯,TF2.0好像还没有支持CUDA10.1呢。 【参考方案1】:

我可以确认即使 tf 1.13.1 仅适用于我的 CUDA 10.0,而不是 10.1。 不知道符号链接是否可以通过。 如果您尝试在 CUDA 10.1 上运行 tf 1.13.1,它会给您“ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory”

【讨论】:

【参考方案2】:

TensorFlow 1.12(甚至更高版本 1.13.1 和 2.0.0-alpha0)不能针对 CUDA 10.1 构建,因此可以认为是不兼容的。

我尝试从源代码构建支持 GPU 的 TensorFlow。我考虑的 TensorFlow 版本是 1.13.12.0.0-alpha0。我使用的机器运行 CentOS 7.6 和 GCC 4.8.5。我已安装 NVIDIA 驱动程序版本 418.67(发布日期为 2019.5.7 并支持 CUDA Toolkit 10.1)。

我成功地使用 CUDA 10.0cuDNN 7.6.0 + NCCL 2.4.7(针对 CUDA 10.0)构建了两个 TensorFlow 版本。 请注意,在构建支持 GPU 的 TensorFlow 时,您不需要将 GPU 连接到机器(尤其是如果您在云中使用 VM)。

但是,当我切换到 CUDA 10.1 和 cuDNN 7.6.0 + NCCL 2.4.7(对于 CUDA 10.1)时,这些 TensorFlow 版本都无法构建。除了libcublas 的位置变化之外,另一个错误来源是cuda-10.1/lib64/ 中没有libcudart.so*(虽然它们确实存在于cuda-10.0/lib64/ 中)。

【讨论】:

【参考方案3】:

我还可以确认 tf 1.13.1 不适用于 CUDA 10.1。导入tensorflow时会报如下错误

ImportError: libcublas.so.10.0: 无法打开共享对象文件:没有这样的文件或目录

运行 ldconfig -v 显示差异 libcublas.so.10.0 与 libcublas.so.10.1.0.105

【讨论】:

你也可以在github.com/tensorflow/tensorflow/issues/26150关注这个问题

以上是关于Tensorflow 1.12 是不是与 CUDA 10.1 兼容?的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu tensorflow1.1x版本安装及常见问题

安装 Tensorflow 的问题——不是 CUDA/CuDNN 问题

TensorFlow:检查显卡支持哪个版本的CUDA

tensorflow-gpu与cuda 关系

无法使用 V100 GPU 运行分布式 TensorFlow

TensorFlow各个GPU版本CUDA和cuDNN对应版本