我注意到一些较新的TensorFlow版本与较旧的CUDA和cuDNN版本不兼容。是否存在兼容版本的概述,甚至是官方测试组合的列表?我在TensorFlow文档中找不到它。
答案 0 :(得分:81)
检查CUDA版本:
cat /usr/local/cuda/version.txt
和cuDNN版本:
grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h
并在图片或here中安装如下所示的组合。
以下图片和链接概述了Linux,macOS和Windows上CUDA和TensorFlow的官方支持/测试组合:
由于以下某些情况下给定的规范可能过于宽泛,因此以下是一个有效的配置:
tensorflow-gpu==1.12.0
cuda==9.0
cuDNN==7.1.4
可以下载相应的cudnn here。
(2018年2月16日更新的数据)
(图更新于2018年5月31日)
答案 1 :(得分:11)
https://www.tensorflow.org/install/source#tested_build_configurations中给出的兼容性表不包含cuda和cuDNN的特定次要版本。通常只将其列出为cuda = 9和cuDNN = 7。但是,如果不符合特定的版本,则会出现错误。
对于tensorflow-gpu==1.12.0
和cuda==9.0
,兼容的cuDNN
版本是7.1.4
,可以在注册后从here下载。
您可以使用
检查cuda版本
nvcc --version
cuDNN版本使用
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
tensorflow-gpu版本使用
pip freeze | grep tensorflow-gpu
答案 2 :(得分:3)
工作:tensorflow 1.13.1,CUDA 10,CUDNN 7.4.2,python 3.6(不适用于3.7 .. 3.7有很多错误) 对于Windows 10
答案 3 :(得分:3)
如果您在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
)
答案 4 :(得分:2)
您可以将此配置用于cuda 10.0(从3/18开始10.1无效),
安装版本tensorflow gpu:
pip install tensorflow-gpu==1.4.0
答案 5 :(得分:2)
我错误地安装了CUDA 10.1和CUDNN 7.6。您可以使用以下配置(这对我有用-从9/10开始)。 :
但是我必须创建符号链接才能使其工作,因为tensorflow最初可用于CUDA10。
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/
答案 6 :(得分:-2)
升级到TF 2.0后,我遇到了类似的问题。 TF报告的CUDA版本与Ubuntu 18.04认为我已安装的版本不匹配。它说我正在使用CUDA 7.5.0,但以为我安装了正确的版本。
我最终要做的是在/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再也找不到了,所以一切都像个魅力。
一切都非常令人沮丧,我仍然觉得我只是在随机进行黑客入侵。但这有效了:),也许这会对遇到类似问题的人有所帮助。