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

哪些TensorFlow和CUDA版本组合兼容?,tensorflow,cuda,version,compatibility,cudnn,Tensorflow,Cuda,Version,Compatibility,Cudnn,我注意到一些较新的TensorFlow版本与较旧的CUDA和cuDNN版本不兼容。是否有兼容版本的概述,甚至是官方测试的组合列表?我在TensorFlow文档中找不到它 TL;DR)见下表: 一般来说: 检查CUDA版本: cat /usr/local/cuda/version.txt 和cuDNN版本: grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h 并安装一个组合,如下图或中所示 以下图片和链接概述了Linux、macOS和Wi

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

TL;DR)见下表:

一般来说: 检查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

测试生成配置 有关最新的兼容性图表(适用于官方TF车轮),请参阅

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

Linux GPU

Linux CPU

macOS GPU

macOS CPU

Windows GPU

Windows CPU


自2020年12月5日起更新:有关更新信息,请参阅和。

中给出的兼容性表不包含cuda和cuDNN的特定次要版本。但是,如果不满足特定版本,则在尝试使用tensorflow时会出现错误

对于
tensorflow gpu==1.12.0
cuda==9.0
,兼容的
cuDNN
版本为
7.1.4
,注册后可从下载

您可以使用
nvcc--版本

cuDNN版本使用
cat/usr/include/cudnn.h| grep cudnn|u专业-a2

tensorflow gpu版本使用
pip冻结| grep tensorflow gpu

更新: 自从tensorflow 2.0发布以来,我将为它分享兼容的cuda和cuDNN版本(适用于Ubuntu 18.04)

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

您可以将此配置用于cuda 10.0(10.1从2018年3月起不起作用),此配置适用于我:

  • tensorflow>=1.12.0
  • TensorFlowGPU>=1.4
安装tensorflow gpu版本:

pip install tensorflow-gpu==1.4.0

我错误地安装了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/

如果您正在jupyter notebook中编码,并且希望检查tf使用的cuda版本,请直接在jupyter单元格中运行以下命令:

!conda list cudatoolkit

!conda list cudnn
并检查tf是否可以看到gpu:

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

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

我最终不得不在
/usr/local
中为
CUDNN_MAJOR
递归地执行grep操作,我发现
/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.0
,这样TF就再也找不到了,一切都很顺利


这一切都非常令人沮丧,我仍然觉得我只是做了一个随机的黑客。但是它起了作用:)也许这会对有类似问题的人有所帮助。

我确实注意到,TensorFlow版本<1.0已被排除在概述之外。有人知道在哪里可以找到旧版本的相同列表吗?看起来他们没有指定cuda和cudnn的次要版本,更新:测试过的TF-GPU 1.12、Windows 10、cuda 9.0、cudnn 7.3.1、Python 3.6.6不要更新这些数字,链接到文档。链接的更改频率低于tables@Fábio:根据您的要求,用最新的链接更新了您的答案。问题在于兼容性和(官方)测试的组合,在我看来,安装说明中没有提供这些组合。另外,我找不到您所指的部分。这些观察结果表明,我的总体观点是,请求的信息很难找到,因此有理由轻松访问答案中发布的链接。您会发现您提到的页面上的CUDA和cuDNN版本与安装说明中的一个相匹配。要查找安装说明,转到我上面链接的页面,然后按照您操作系统的链接进行操作。您所指的部分只是为我提供了CUDA和cuDNN的兼容版本——有一次——我发现了我想要的TensorFlow版本。在已安装CUDA和cuDNN但未安装TF的常见情况下(例如在.edu实验室环境中),显然需要进行概述。我的说法是,它非常隐蔽,很难找到(我不是苹果公司通过谷歌搜索找到的)。哦,我明白你的意思了——试着看看哪个tensorflow版本适合特定的CUDA/cuDNN组合。你可以浏览TF的发行说明,但是你链接到的表格确实是一个很好的总结。你的回答非常有用。就像你说的,文档不太清楚,无法调用次要版本。我遵循了你的配置,它成功了!是否可以在CU上训练TF1.4模型