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

Fra*_*ter 92 linux cuda driver

为了调试CUDA代码和检查兼容性,我需要找出我安装的GPU的nvidia驱动程序版本.我找到了如何获得cuda版本?但这对我没有帮助.

Bre*_*ood 132

使用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                                                 |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

  • 在我的centos 6.4系统中,它给出了错误"-bash:nvidia-smi:command not found".可能是什么问题? (2认同)

tal*_*ies 92

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

cat /proc/driver/nvidia/version
Run Code Online (Sandbox Code Playgroud)

获取当前加载的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) 
Run Code Online (Sandbox Code Playgroud)

  • 或者如果你安装了Bumblebee(由于NVIDIA Optimus双GPU),那么请运行它:"optirun cat/proc/driver/nvidia/version" (5认同)
  • 当`nvidia-smi`的输出为:`无法初始化NVML时,这尤其有用:操作系统阻止GPU访问 (5认同)
  • 当您从“nvidia-smi”获取输出“无法初始化 NVML:驱动程序/库版本不匹配”时也很有用。 (2认同)

Ale*_*nko 15

nvidia-smi --query-gpu=driver_version --format=csv,noheader --id=0
Run Code Online (Sandbox Code Playgroud)

以字符串形式返回结果,不需要进一步解析,例如:470.82.00

如果 nvidia-smi 由于某种原因不可用,可以通过调用驱动程序 API 来获取信息。可以使用 Python ctypes 库加载驱动程序库。

对于 CUDA,请参阅: https://gist.github.com/f0k/63a664160d016a491b2cbea15913d549

有关驱动程序信息,请参阅: https://github.com/mars-project/mars/blob/a50689cda4376d82a40b7aa9833f572299db7efd/mars/lib/nvutils.py


Mic*_*ael 12

modinfo 诀窍.

root@nyx:/usr/src# modinfo nvidia|grep version:
version:        331.113
Run Code Online (Sandbox Code Playgroud)

  • 在我的系统上,模块被命名为`nvidia_XXX`,对应于我安装的主要驱动程序系列,由于`modinfo`不支持通配符或部分名称匹配,我必须这样做`modinfo $(find/lib/modules/$ (uname -r)-iname nvidia _*.ko | head -1)| grep ^ version:`返回正确的主要和次要驱动程序版本. (3认同)
  • 在 ubuntu 18.04 上,我的“modinfo”版本有一个“--field”命令行选项。所以你可以跳过 grep: `modinfo nvidia --field version`。另外,在 ubuntu 16.04 中这似乎不起作用。我总是收到“错误:找不到模块 nvidia”。 (2认同)

小智 9

Windows版本:

cd \ Program Files \ NVIDIA Corporation \ NVSMI

英伟达


Fra*_*ter 7

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

如果您使用:

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

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

  • 这并不能告诉您内核实际安装和使用了哪个版本的驱动程序。使用proc文件系统可以看到...。这也仅适用于debian风格的发行版。 (11认同)
  • @Framester感谢您完成此操作-这是我要做的第一件事(这是错误的!) (2认同)