如何从命令行获取nvidia驱动程序版本?


Answers:


140

使用nvidia-smi应该告诉您:

bwood@mybox:~$ nvidia-smi 
Mon Oct 29 12:30:02 2012       
+------------------------------------------------------+                       
| NVIDIA-SMI 3.295.41   Driver Version: 295.41         |                       
|-------------------------------+----------------------+----------------------+
| Nb.  Name                     | Bus Id        Disp.  | Volatile ECC SB / DB |
| Fan   Temp   Power Usage /Cap | Memory Usage         | GPU Util. Compute M. |
|===============================+======================+======================|
| 0.  GeForce GTX 580           | 0000:25:00.0  N/A    |       N/A        N/A |
|  54%   70 C  N/A   N/A /  N/A |  25%  383MB / 1535MB |  N/A      Default    |
|-------------------------------+----------------------+----------------------|
| Compute processes:                                               GPU Memory |
|  GPU  PID     Process name                                       Usage      |
|=============================================================================|
|  0.           Not Supported                                                 |
+-----------------------------------------------------------------------------+

2
在我的centos 6.4系统中,它给我的错误是“ -bash:nvidia-smi:找不到命令”。可能是什么问题?
Shyamkkhadka'3

@Shyamkkhadka您的PATH可能有问题。您可以尝试这样找到nvidia-smilocate nvidia-smi
布伦丹·伍德

@BrendanWood,使用locate命令显示空白输出。我怀疑它是否也没有GPU硬件。因为是HPC。我正在使用ssh从远程访问它。
Shyamkkhadka'3

@Shyamkkhadka是的,可能就是这样。HPC通常没有GPU,除非它们被认为是GPU集群。您可以使用来检查可用的硬件lspci。例如:stackoverflow.com/questions/10310250/…–
布伦丹·伍德

@BrendanWood,正如您在链接中所建议的那样,当我执行“ lspci | grep VGA”时。它显示为“ lspci | grep VGA 01:03.0 VGA兼容控制器:Advanced Micro Devices,Inc. [AMD / ATI] ES1000(rev 02)”。所以我认为它具有GPU硬件。
Shyamkkhadka'3

101

任何安装了NVIDIA驱动程序并将其加载到内核的linux系统上,您可以执行:

cat /proc/driver/nvidia/version

获取当前加载的NVIDIA内核模块的版本,例如:

$ cat /proc/driver/nvidia/version 
NVRM version: NVIDIA UNIX x86_64 Kernel Module  304.54  Sat Sep 29 00:05:49 PDT 2012
GCC version:  gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 

5
或者,如果您安装了Bumblebee(由于NVIDIA Optimus双GPU),请改为运行:“ optirun cat / proc / driver / nvidia / version”
Shervin Emami 2013年

5
当以下输出时,此功能尤其有用nvidia-smiFailed to initialize NVML: GPU access blocked by the operating system
DarioP

1
在我的centos 6.4系统中,/ proc / driver中没有目录nvidia。可能是什么问题?因此,我无法看到我的nvidia驱动程序版本。
Shyamkkhadka'3

当您Failed to initialize NVML: Driver/library version mismatch从获得输出时也很有用nvidia-smi
塞托斯二世

14

modinfo 绝招。

root@nyx:/usr/src# modinfo nvidia|grep version:
version:        331.113

3
在我的系统上,模块的名称nvidia_XXX与我安装的主要驱动程序系列相对应,并且由于modinfo不支持通配符或部分名称匹配,因此我必须这样做modinfo $(find /lib/modules/$(uname -r) -iname nvidia_*.ko | head -1) | grep ^version:,以返回正确的主要和次要驱动程序版本。
dragon788 '17

1
在ubuntu 18.04上,我的版本modinfo具有--field命令行选项。所以,你可以跳过grep的:modinfo nvidia --field version。另外,在Ubuntu 16.04中,这似乎不起作用。我总是得到ERROR: Module nvidia not found
cheshirekow19年

11

Windows版本:

cd \ Program Files \ NVIDIA Corporation \ NVSMI

英伟达


7

[注意:我不是故意删除我的答案,所以人们看到了不这样做的方法]

如果您使用:

me@over_there:~$  dpkg --status nvidia-current | grep Version | cut -f 1 -d '-' | sed 's/[^.,0-9]//g'
260.19.06

您将通过发行版的打包机制获得nVIDIA驱动程序软件包的版本。但这可能不是当前作为内核一部分实际运行的版本。


11
这并不能告诉您内核实际安装和使用了哪个版本的驱动程序。使用proc文件系统可以看到这一点。
talonmies 2012年

2
@Framester感谢您留下来-这是我要做的第一件事(这是错误的!)
Stephen

@Framester:您完全玩完了系统!我只是在有用的错误答案上再给您+1 ...狡猾的恶魔:-)
einpoklum

4

要扩展ccc的答案,如果您想结合使用脚本查询卡,以下是Nvidia网站上有关如何执行此操作的信息:

https://nvidia.custhelp.com/app/answers/detail/a_id/3751/~/useful-nvidia-smi-queries

另外,我发现了这个研究powershell的线程。这是一个示例命令,该命令运行实用程序以获取GPU上可用的真实内存,从而帮助您入门。

# get gpu metrics
$cmd = "& 'C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi' --query-gpu=name,utilization.memory,driver_version --format=csv"
$gpuinfo = invoke-expression $cmd | ConvertFrom-CSV
$gpuname = $gpuinfo.name
$gpuutil = $gpuinfo.'utilization.memory [%]'.Split(' ')[0]
$gpuDriver = $gpuinfo.driver_version

这没有比公认的答案更好地回答有关驱动程序版本的问题
JR Utily

1
@JRUtily,谢谢。我更新了代码以显示如何获取驱动程序版本。干杯!
杰夫·布鲁门塔尔

0

如果需要在Linux系统上的Python程序中获得该代码以实现可重现性:

with open('/proc/driver/nvidia/version') as f:
    version = f.read().strip()
print(version)

给出:

NVRM version: NVIDIA UNIX x86_64 Kernel Module  384.90  Tue Sep 19 19:17:35 PDT 2017
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.