我注意到一些较新的TensorFlow版本与较旧的CUDA和cuDNN版本不兼容。是否存在兼容版本的概述,甚至官方测试的组合列表?我在TensorFlow文档中找不到它。
博士TL;)参见此表:https://www.tensorflow.org/install/source#gpu
查看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
相应的cudn可以下载在这里。
请参考https://www.tensorflow.org/install/source#gpu获得最新的兼容性图表(官方TF轮)。
(数据于2020年5月20日更新)
截至2020年12月5日:更新信息请参考Linux链接和Windows链接。
张量流点中给出的兼容性表不包含cuda和cuDNN的特定次要版本。但是,如果不满足特定的版本,在尝试使用tensorflow时会出现错误。
对于tensorflow-gpu==1.12.0和cuda==9.0,兼容的cuDNN版本是7.1.4,注册后可以从在这里下载。
cuDNN
7.1.4
nvcc --version
cuDNN版本使用 cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2 < / p >
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
tensorflow-gpu版本使用 pip freeze | grep tensorflow-gpu < / p >
pip freeze | grep tensorflow-gpu
< >强更新: 由于tensorflow 2.0已经发布,我将分享它兼容的cuda和cuDNN版本(适用于Ubuntu 18.04)
你可以在cuda 10.0上使用这个配置(10.1在3月18日不能工作),这为我运行:
安装tensorflow版本:
pip install tensorflow-gpu==1.4.0
我错误地安装了CUDA 10.1和cudn7.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/
如果你在jupyter笔记本上编码,并且想要检查tf使用的cuda版本,直接在jupyter单元中运行以下命令:
!conda list cudatoolkit !conda list cudnn
检查gpu对tf是否可见:
tf.test.is_gpu_available( cuda_only=False, min_cuda_compute_capability=None )
在升级到TF 2.0后,我遇到了类似的问题。TF报告的CUDA版本与Ubuntu 18.04认为我已经安装的版本不匹配。它说我使用的是CUDA 7.5.0,但apt认为我安装的版本是正确的。
/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.0
不管怎样,我只是把/usr/local/cuda-10.0移动到/usr/local/old-cuda-10.0,所以TF再也找不到它了,然后一切都像魔法一样工作。
/usr/local/old-cuda-10.0
这一切都很令人沮丧,我仍然觉得我只是做了一次随机入侵。但它起作用了:)也许这将帮助那些有类似问题的人。
谢谢你的第一个回答。
关于向后兼容性。
我可以成功地安装tensorflow-2.4.0与cuda-11.1和cudnn 8.0.5。
tensorflow-2.4.0
cuda-11.1
cudnn 8.0.5
来源:https://www.tensorflow.org/install/source#gpu