哪些TensorFlow和CUDA版本组合兼容?


145

我注意到某些较新的TensorFlow版本与较旧的CUDA和cuDNN版本不兼容。是否存在兼容版本的概述,甚至存在经过官方测试的组合的列表?我在TensorFlow文档中找不到它。


1
所有要求都随安装说明给出,该说明称为“ 使用GPU支持运行TensorFlow的NVIDIA要求 ”部分。
P-Gn '18年

10
问题在于解决兼容性和(正式)经过测试的组合,在我看来,安装说明中未提供这些组合。另外,我找不到您要参考的部分。这些观察结果使我总体上认为很难找到所需的信息,因此有理由提供对答案中张贴的链接的轻松访问。
法比奥(Fábio)'18年

您会发现您提到的页面上的CUDA和cuDNN版本与安装说明之一匹配。
P-Gn '18年

要找到安装说明,请转到上面我链接的页面,然后按照您的操作系统的链接进行操作。
P-Gn '18年

1
哦,我明白您的意思了-尝试查看哪个tensorflow版本适合特定的CUDA / cuDNN组合。您可以浏览TF的发行说明,但链接到的表确实是一个很好的总结。
P-Gn '18年

Answers:


212

通常:

检查CUDA版本:

cat /usr/local/cuda/version.txt

和cuDNN版本:

grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h

并安装如下图所示或这里的组合

以下图像和链接概述了Linux,macOS和Windows上CUDA和TensorFlow的官方支持/测试组合:

次要配置:

由于下面给出的规范在某些情况下可能太宽泛,因此这是一种有效的特定配置:

  • tensorflow-gpu==1.12.0
  • cuda==9.0
  • cuDNN==7.1.4

相应的cudnn可以在此处下载。

(数据于2020年5月20日更新)

Linux GPU

在此处输入图片说明

的Linux

在此处输入图片说明

macOS GPU

在此处输入图片说明

苹果系统

在此处输入图片说明

(图更新于2018年5月31日)

视窗

在此处输入图片说明

更新为2020年1月14日的:对于最新的信息,请参阅链接为Linux链接适用于Windows


1
我确实注意到,虽然概述中排除了<1.0的TensorFlow版本。有人知道在哪里可以找到旧版本的相同列表吗?
法比奥(Fábio)'18年

2
看起来他们没有为cuda和cudnn指定次要版本,
mrgloom

1
更新:经测试的TF-GPU 1.12,Windows 10,CUDA 9.0,CuDNN 7.3.1,Python 3.6.6
mjaniec

1
不要更新数字,请链接到文档。链接的更改次数少于表格更改次数
Trylks,

1
@Fábio:根据您的要求使用最新链接更新了您的答案。
Tensorflow支持

23

tensorflow网站上提供的兼容性表不包含cuda和cuDNN的特定次要版本。但是,如果不符合特定的版本,则在尝试使用tensorflow时会出现错误。

对于tensorflow-gpu==1.12.0cuda==9.0,兼容cuDNN版本是7.1.4,可以在注册后从此处下载。

您可以使用检查您的CUDA版本
nvcc --version

cuDNN版本使用
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

tensorflow-gpu版本使用
pip freeze | grep tensorflow-gpu

更新: 自从tensorflow 2.0发布以来,我还将为其共享兼容的cuda和cuDNN版本(对于Ubuntu 18.04)。

  • tensorflow-gpu = 2.0.0
  • cuda = 10.0
  • cuDNN = 7.6.0

1
您的回答非常有用。就像您说的那样,文档并不是很清楚地指出次要版本。我按照您的配置进行了工作!
维克拉姆

2

如果您在jupyter笔记本中进行编码,并且想要检查tf使用的是哪个cuda版本,请直接在jupyter单元中运行以下命令:

!conda list cudatoolkit

!conda list cudnn

并检查gp是否对tf可见:

tf.test.is_gpu_available(
    cuda_only=False, min_cuda_compute_capability=None
)

1

您可以对cuda 10.0使用此配置(从3/18开始10.1无效),这对我来说是有效的:

  • 张量流> = 1.12.0
  • 张量_gpu> = 1.4

安装版本tensorflow gpu:

pip install tensorflow-gpu==1.4.0

1

我错误地安装了CUDA 10.1和CUDNN 7.6。您可以使用以下配置(这对我有用-从9/10开始)。:

  • Tensorflow-gpu == 1.14.0
  • CUDA 10.1
  • CUDNN 7.6
  • Ubuntu 18.04

但是我必须创建符号链接才能使其工作,因为tensorflow最初与CUDA 10兼容。

sudo ln -s /opt/cuda/targets/x86_64-linux/lib/libcublas.so /opt/cuda/targets/x86_64-linux/lib/libcublas.so.10.0
sudo cp /usr/lib/x86_64-linux-gnu/libcublas.so.10 /usr/local/cuda-10.1/lib64/
sudo ln -s /usr/local/cuda-10.1/lib64/libcublas.so.10 /usr/local/cuda-10.1/lib64/libcublas.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusolver.so.10 /usr/local/cuda/lib64/libcusolver.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcurand.so.10 /usr/local/cuda/lib64/libcurand.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcufft.so.10 /usr/local/cuda/lib64/libcufft.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so /usr/local/cuda/lib64/libcudart.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusparse.so.10 /usr/local/cuda/lib64/libcusparse.so.10.0

并将以下内容添加到我的〜/ .bashrc中-

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/targets/x86_64-linux/lib/

0

升级到TF 2.0后,我遇到了类似的问题。TF报告的CUDA版本与Ubuntu 18.04认为我已安装的版本不匹配。它说我正在使用CUDA 7.5.0,但以为我安装了正确的版本。

我最终不得不做的是递归的grep在/usr/localCUDNN_MAJOR,我发现/usr/local/cuda-10.0/targets/x86_64-linux/include/cudnn.h确实指定版本7.5.0
/usr/local/cuda-10.1正确地/usr/local/cuda指出了这一点/usr/local/cuda-10.1,所以TF为何看待(至今)对我来说仍然是一个谜/usr/local/cuda-10.0

无论如何,我只是搬到/usr/local/cuda-10.0/usr/local/old-cuda-10.0TF ,所以再也找不到它了,然后一切都变得很吸引人。

一切都非常令人沮丧,而且我仍然觉得我只是随机进行了破解。但这有效:),也许这会帮助遇到类似问题的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.