如何查看NVIDIA驱动版本?
如何在Linux系统中查看NVIDIA驱动版本?常见方法包括使用`nvidia-smi`命令,该命令可显示GPU状态及驱动版本信息。若环境未安装NVIDIA驱动或命令不可用,可尝试`dpkg -l | grep nvidia-driver`(Ubuntu/Debian)或`rpm -qa | grep nvidia`(RHEL/CentOS)查询已安装的驱动包。此外,`cat /proc/driver/nvidia/version`也可直接读取内核模块版本。但部分情况下因驱动未正确加载或权限不足导致信息无法获取,需结合`dmesg | grep -i nvidia`排查加载问题。如何准确识别当前生效的驱动版本是运维和深度学习开发中的常见痛点。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
张牛顿 2025-11-10 20:17关注一、基础命令查看NVIDIA驱动版本
在具备NVIDIA GPU的Linux系统中,最直接且常用的方法是使用
nvidia-smi命令。该命令由NVIDIA驱动安装后提供,用于监控GPU状态并显示关键信息。$ nvidia-smi执行结果将输出GPU型号、温度、显存使用情况以及顶部明确标注的“Driver Version”字段。例如:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 535.113.01 Driver Version: 535.113.01 CUDA Version: 12.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+此方法适用于驱动已正确安装且内核模块成功加载的环境。若命令未找到或报错,则需进入下一层排查。
二、通过包管理器查询已安装的驱动包
当
nvidia-smi不可用时,可通过系统级包管理工具确认是否已安装NVIDIA驱动软件包。- Ubuntu/Debian系统:
$ dpkg -l | grep nvidia-driver输出示例:
ii nvidia-driver-535 535.113.01-0ubuntu1 amd64 NVIDIA driver metapackage- RHEL/CentOS/Fedora系统:
$ rpm -qa | grep nvidia可能返回:
kmod-nvidia-535.113.01-1.el8.x86_64 nvidia-driver-cuda-535.113.01-1.el8.x86_64注意:包管理器显示的是“已安装”的驱动版本,但不保证当前正在运行或已被内核加载。
三、读取内核模块版本信息
Linux系统中,NVIDIA驱动以内核模块(
nvidia.ko)形式运行。可通过以下命令直接查看模块版本:$ cat /proc/driver/nvidia/version正常输出如下:
NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.113.01 Wed Aug 9 21:50:47 UTC 2023 GCC version: gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)该方式绕过用户态工具,直接访问内核空间数据,更具权威性。前提是
nvidia模块必须已加载。四、验证内核模块加载状态与调试信息
若上述方法均失败,应检查驱动模块是否被加载:
$ lsmod | grep nvidia无输出表示模块未加载。此时可结合
dmesg日志分析原因:$ dmesg | grep -i nvidia常见错误包括:
错误类型 可能原因 Module not found 驱动未安装或未编译适配当前内核 NVRM: API mismatch 用户态工具与内核模块版本不一致 Failed to load module Secure Boot阻止签名不符模块加载 GPU access denied 权限不足或设备被占用 解决此类问题常需重新安装驱动或禁用Secure Boot。
五、综合判断当前生效驱动版本的流程图
为系统化识别真实生效的驱动版本,建议遵循以下诊断流程:
graph TD A[开始] --> B{nvidia-smi可用?} B -- 是 --> C[提取Driver Version] B -- 否 --> D{nvidia模块已加载?} D -- 是 --> E[cat /proc/driver/nvidia/version] D -- 否 --> F[dmesg | grep -i nvidia] F --> G[分析加载失败原因] G --> H[修复安装或配置] H --> I[重新加载模块] I --> C C --> J[输出最终生效版本]该流程确保从用户态到内核态逐层穿透,避免仅依赖单一命令导致误判。
六、高级场景下的版本一致性校验
在容器化或虚拟化环境中(如Docker + nvidia-container-toolkit),宿主机驱动版本与容器内感知版本可能存在差异。推荐使用:
$ nvidia-smi --query-gpu=driver_version --format=csv实现脚本化采集,并与
nvcc --version中的CUDA Toolkit版本做交叉比对。此外,可通过
modinfo nvidia查看模块构建信息:filename: /lib/modules/5.15.0-86-generic/updates/dkms/nvidia.ko version: 535.113.01 alias: pci:v000010DEd*sv*sd*bc03sc*i*结合数字签名、构建时间戳等元数据,增强版本可信度。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报