Linux CUDA, CuDNN版本的关系

每次配环境的时候都要重新搜索torch或tf的版本,要和自己电脑的CUDA、cudnn版本对应起来,但是nvidia-smi和nvcc --version查询的结果又不一致,每次到这里都需要重新查重新找,索性自己记录下来。

比如我现在使用的服务器,nvcc--version返回的结果是

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0

而nvidia-smi返回的结果是

Mon Mar 25 22:02:20 2024       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-PCI...  On   | 00000000:0C:00.0 Off |                    0 |
| N/A   30C    P0    36W / 250W |   1616MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |

而我在跑一个tensorflow代码时报错提示时

2024-03-25 21:59:28.979736: E tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:425] 
Loaded runtime CuDNN library: 8.4.1 but source was compiled with: 8.6.0.  CuDNN library 
needs to have matching major version and equal or higher minor version. If using a binary 
install, upgrade your CuDNN library.  If building from sources, make sure the library 
loaded at runtime is compatible with the version specified during compile configuration.
2024-03-25 21:59:28.986042: W tensorflow/core/framework/op_kernel.cc:1828] OP_REQUIRES 
failed at conv_ops_fused_impl.h:625 : UNIMPLEMENTED: DNN library is not found.

而我用pip  list|grep cuda输出的结果是

nvidia-cuda-cupti-cu11       11.7.101
nvidia-cuda-nvrtc-cu11       11.7.99
nvidia-cuda-runtime-cu11     11.7.99

用pip list|grep cudnn输出的结果是

nvidia-cudnn-cu11            8.5.0.96

我用pip list|grep tensorflow输出的结果是

tensorflow                   2.13.1
tensorflow-estimator         2.13.0
tensorflow-io-gcs-filesystem 0.34.0
tensorflow-probability       0.21.0

真的超级乱,烦死了。一个一个来,首先:nvcc --version和nvidia-smi有什么区别?

这篇文章具体的讲了什么区别,这篇文章这篇文章这篇文章提到选择tf或torch版本时候,要看的是nvcc --version的输出,而不是nvidia-smi的输出。所以我的cuda是11.7。

而cuda和cudnn又是什么区别?

这篇文章提到,CUDNN和CUDA是两个不同的软件库。CUDA是NVIDIA开发的通用并行计算平台和编程模型,用于GPU加速的计算。CUDNN则是NVIDIA开发的基于CUDA的深度学习加速库,为深度学习框架提供高效的GPU加速。

cuda的版本查询就是使用nvcc --version可以得到,而根据,是使用下面命令行查询:

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

但是我使用的是虚拟环境,所以用pip list|grep cudnn查询的应该才是cudnn版本。

上面报错说我的cudnn版本过低,所以我或者downgrade我的tensorflow版本,或者根据我的cuda版本upgrade我的cudnn版本。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值