查看记录Linux当前系统环境下已经安装好的CUDA和cuDNN版本信息

[复制链接]
发表于 2026-10-6 13:45:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

给裸机部署深度学习环境时,最怕的就是版本对不上——开发机上跑得好好的模型,换台机器报 libcudart 找不到或是性能异常。最省事的做法是让新环境与开发机的 CUDA、cuDNN 完全一致,于是前提就是先把开发机上这两个版本查准。本文把 CUDA、cuDNN、GPU 驱动三类信息的查询方法整理齐,包括几种查不到时的替代手段。

一、查 CUDA 版本

最直接的两条命令(等价,任选其一):

nvcc --version
nvcc -V

输出里 release 那一行就是 CUDA Toolkit 的版本,形如 release 11.8。这里有个容易混淆的点:nvcc 显示的是 Toolkit 版本,而 nvidia-smi 里显示的是驱动支持的最高 CUDA 版本,两者可以不一致,实际用的是 Toolkit 那一个。

二、查 cuDNN 版本

cuDNN 没有统一的 --version 参数,得从版本头文件里抠:

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

旧版本布局里是另一个文件名:

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

如果第一个文件不存在会报 No such file or directory,别慌,换第二个命令再试。命中时输出大致是这样:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 4
#define CUDNN_PATCHLEVEL 2
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

三个宏拼起来就是版本号,上面这个例子对应 7.4.2。

三、查 GPU 与驱动信息

nvidia-smi

这张表信息量最大:右上角显示 Driver Version(驱动版本,例如 450.80.02)和 CUDA Version(驱动能支持的最高 CUDA 版本),下方是显存占用、温度、进程占用情况。显卡型号、显存总量也都能看到。

四、cuDNN 查不到时的四种替代方法

方法 1:确认安装路径

cuDNN 的头文件一般在 /usr/local/cuda/include,库文件在 /usr/local/cuda/lib64。先确认这两个目录存在且有内容:

ls -l /usr/local/cuda/include | grep -i cudnn
ls -l /usr/local/cuda/lib64 | grep -i cudnn

方法 2:用包管理器反查

如果是通过 apt 或 yum 装的 cuDNN,直接让包管理器告诉你版本:

dpkg -l | grep cudnn
rpm -qa | grep cudnn

Debian/Ubuntu 用第一条,RedHat/CentOS 用第二条。

方法 3:从库文件里抠字符串

strings /usr/local/cuda/lib64/libcudnn.so | grep CUDNN_MAJOR
ldconfig -p | grep cudnn

新建 cudnn_version.cpp:

#include <iostream>
#include <cudnn.h>

int main() {
    std::cout << "cuDNN Version: " << CUDNN_MAJOR << "." << CUDNN_MINOR << "." << CUDNN_PATCHLEVEL << std::endl;
    return 0;
}

编译运行:

nvcc -o cudnn_version cudnn_version.cpp -lcudnn
./cudnn_version

这个方法最可靠,因为它是直接让预处理器把头文件里的宏展开出来,不存在文件名对不上的问题。

五、把这套查询用在实际部署里

  • 先在新旧机器各跑一遍上面几条命令,把三组版本号列成表比对。
  • CUDA 主版本必须一致;cuDNN 建议小版本也一致,框架对它有硬性要求。
  • 驱动版本只需满足「不低于该 CUDA 要求的最低驱动」,新一点没关系。
  • 把查出来的结果记进部署文档,下次克隆环境不用重新摸索。
  • 用 docker 部署时,nvidia-container-toolkit 传进去的驱动来自宿主机,容器内只需要保证 CUDA/cuDNN 与镜像一致。

六、两个容易搞混的点

第一,nvcc -V 显示的是你装的 Toolkit,nvidia-smi 右上角的 CUDA Version 是驱动支持上限,两者不是一个东西,部署时以前者为准。第二,机器上可能装了多份 CUDA(/usr/local 下 cuda-11.8、cuda-12.1 并列,cuda 是个软链),要确认软链指向哪一个:

ls -l /usr/local/cuda

这决定了编译时实际用哪套头文件与库。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表