Wie bekomme ich die NVIDIA-Treiberversion von der Kommandozeile?


Antworten:


140

Die Verwendung nvidia-smisollte Ihnen Folgendes sagen:

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
In meinem Centos 6.4-System wird der Fehler "-bash: nvidia-smi: Befehl nicht gefunden" angezeigt. Was könnte das Problem sein?
Shyamkkhadka

@Shyamkkhadka Wahrscheinlich stimmt etwas mit deinem PFAD nicht. Sie könnten versuchen, nvidia-smiso zu finden :locate nvidia-smi
Brendan Wood

@BrendanWood, mit dem Befehl find wird eine leere Ausgabe angezeigt. Ich vermute, wenn es auch keine GPU-Hardware hat. Weil es HPC ist. Und ich greife mit ssh von der Fernbedienung darauf zu.
Shyamkkhadka

@Shyamkkhadka Ja, das ist es wahrscheinlich. HPC verfügt im Allgemeinen nicht über GPUs, es sei denn, es handelt sich um einen GPU-Cluster. Sie können die verfügbare Hardware mit überprüfen lspci. Zum Beispiel: stackoverflow.com/questions/10310250/…
Brendan Wood

@BrendanWood, Wie in Ihrem Link vorgeschlagen, als ich "lspci | grep VGA" gemacht habe. Die Ausgabe wird als "lspci | grep VGA 01: 03.0 VGA-kompatibler Controller: Advanced Micro Devices, Inc. [AMD / ATI] ES1000 (Version 02)" angezeigt. Ich denke, es hat GPU-Hardware.
Shyamkkhadka

101

Auf jedem Linux-System, auf dem der NVIDIA-Treiber installiert und in den Kernel geladen ist, können Sie Folgendes ausführen:

cat /proc/driver/nvidia/version

So rufen Sie die Version des aktuell geladenen NVIDIA-Kernelmoduls ab:

$ 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
Oder wenn Sie Bumblebee installiert haben (aufgrund der Dual-GPU von NVIDIA Optimus), führen Sie stattdessen Folgendes aus: "optirun cat / proc / driver / nvidia / version"
Shervin Emami

5
Dies ist besonders nützlich, wenn die Ausgabe von nvidia-smiist:Failed to initialize NVML: GPU access blocked by the operating system
DarioP

1
In meinem Centos 6.4-System habe ich kein Verzeichnis nvidia in / proc / driver. Was könnte das Problem sein? Aus diesem Grund kann ich meine NVIDIA-Treiberversion nicht sehen.
Shyamkkhadka

Auch nützlich, wenn Sie die Ausgabe Failed to initialize NVML: Driver/library version mismatchvon erhalten nvidia-smi.
Sethos II

14

modinfo macht den Trick.

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

3
Auf meinem System wurde das Modul nvidia_XXXentsprechend der von mir installierten Haupttreiberserie benannt. Da modinfokeine Platzhalter oder Teilnamenübereinstimmungen unterstützt werden, musste ich dies tun modinfo $(find /lib/modules/$(uname -r) -iname nvidia_*.ko | head -1) | grep ^version:, um die richtige Haupt- und Neben-Treiberversion zurückzugeben.
Dragon788

1
Unter Ubuntu 18.04 verfügt meine Version von modinfoüber eine --fieldBefehlszeilenoption. So können Sie den grep überspringen : modinfo nvidia --field version. Auch in Ubuntu 16.04 scheint dies nicht zu funktionieren. Ich bekomme immer ERROR: Module nvidia not found.
Cheshirekow

11

Windows-Version:

cd \ Programme \ NVIDIA Corporation \ NVSMI

nvidia-smi


7

[HINWEIS: Ich lösche meine Antwort nicht absichtlich, damit die Leute sehen, wie sie es nicht tun sollen]

Wenn du benutzt:

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

Sie erhalten die Version des nVIDIA-Treiberpakets über den Verpackungsmechanismus Ihrer Distribution installiert. Dies ist jedoch möglicherweise nicht die Version, die derzeit tatsächlich als Teil Ihres Kernels ausgeführt wird.


11
Das sagt Ihnen nicht, welche Version des Treibers tatsächlich vom Kernel installiert und verwendet wird. Verwenden Sie das proc-Dateisystem, um dies zu sehen. Auch dies funktioniert nur in Distributionen im Debian-Stil.
Talonmies

2
@Framester danke, dass Sie dies aufgegeben haben - das ist das erste, was ich getan hätte (und es ist falsch!)
Stephen

@Framester: Du hast das System total gespielt! Ich habe dir gerade eine weitere +1 für eine nützliche falsche Antwort gegeben ... du schlauer Teufel :-)
einpoklum

4

Um die Antwort von ccc zu erweitern, wenn Sie die Abfrage der Karte mit einem Skript integrieren möchten, finden Sie hier auf der Nvidia-Website Informationen dazu:

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

Außerdem habe ich diesen Thread gefunden, der Powershell erforscht. Hier ist ein Beispielbefehl, mit dem das Dienstprogramm ausgeführt wird, um den tatsächlichen Speicher auf der GPU abzurufen und Ihnen den Einstieg zu erleichtern.

# 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

Dies beantwortet die Frage nach der
Treiberversion

1
@JRUtily, danke für den Fang. Ich habe den Code aktualisiert, um zu zeigen, wie man die Treiberversion erhält. Prost!
Jeff Blumenthal

0

Wenn Sie dies in einem Programm mit Python auf einem Linux-System benötigen, um reproduzierbar zu sein:

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

gibt:

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) 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.