我注意到某些较新的TensorFlow版本与较旧的CUDA和cuDNN版本不兼容。是否存在兼容版本的概述,甚至存在经过官方测试的组合的列表?我在TensorFlow文档中找不到它。
我注意到某些较新的TensorFlow版本与较旧的CUDA和cuDNN版本不兼容。是否存在兼容版本的概述,甚至存在经过官方测试的组合的列表?我在TensorFlow文档中找不到它。
Answers:
检查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日更新)
(图更新于2018年5月31日)
更新为2020年1月14日的:对于最新的信息,请参阅链接为Linux和链接适用于Windows。
tensorflow网站上提供的兼容性表不包含cuda和cuDNN的特定次要版本。但是,如果不符合特定的版本,则在尝试使用tensorflow时会出现错误。
对于tensorflow-gpu==1.12.0
和cuda==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.0cuda
= 10.0cuDNN
= 7.6.0您可以对cuda 10.0使用此配置(从3/18开始10.1无效),这对我来说是有效的:
安装版本tensorflow gpu:
pip install tensorflow-gpu==1.4.0
我错误地安装了CUDA 10.1和CUDNN 7.6。您可以使用以下配置(这对我有用-从9/10开始)。:
但是我必须创建符号链接才能使其工作,因为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/
升级到TF 2.0后,我遇到了类似的问题。TF报告的CUDA版本与Ubuntu 18.04认为我已安装的版本不匹配。它说我正在使用CUDA 7.5.0,但以为我安装了正确的版本。
我最终不得不做的是递归的grep在/usr/local
了CUDNN_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.0
TF ,所以再也找不到它了,然后一切都变得很吸引人。
一切都非常令人沮丧,而且我仍然觉得我只是随机进行了破解。但这有效:),也许这会帮助遇到类似问题的人。