Come ottenere la versione del driver nvidia dalla riga di comando?


Risposte:


140

L'utilizzo nvidia-smidovrebbe dirti che:

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
Nel mio sistema centos 6.4, mi da errore come "-bash: nvidia-smi: comando non trovato". Quale potrebbe essere il problema?
Shyamkkhadka

@Shyamkkhadka Probabilmente c'è qualcosa di sbagliato nel tuo PERCORSO. Potresti provare a trovare in questo nvidia-smimodo:locate nvidia-smi
Brendan Wood

@BrendanWood, con il comando Locate mostra un output vuoto. Sospetto che non abbia nemmeno l'hardware della gpu. Perché è HPC. E sto accedendo da remoto, con ssh.
Shyamkkhadka

@Shyamkkhadka Sì, probabilmente è così. L'HPC generalmente non dispone di GPU a meno che non si supponga che siano un cluster GPU. Puoi controllare l'hardware disponibile con lspci. Ad esempio: stackoverflow.com/questions/10310250/…
Brendan Wood

@BrendanWood, come suggerito nel tuo link, quando ho fatto "lspci | grep VGA". Mostra l'output come "lspci | grep VGA 01: 03.0 Controller compatibile VGA: Advanced Micro Devices, Inc. [AMD / ATI] ES1000 (rev 02)". Quindi penso che abbia l'hardware della GPU.
Shyamkkhadka

101

Su qualsiasi sistema Linux con il driver NVIDIA installato e caricato nel kernel, puoi eseguire:

cat /proc/driver/nvidia/version

per ottenere la versione del modulo kernel NVIDIA attualmente caricato, ad esempio:

$ 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
O se hai installato Bumblebee (a causa della doppia GPU NVIDIA Optimus), esegui invece questo: "optirun cat / proc / driver / nvidia / version"
Shervin Emami

5
Ciò è particolarmente utile quando l'output di nvidia-smiè:Failed to initialize NVML: GPU access blocked by the operating system
DarioP

1
Nel mio sistema centos 6.4, non ho la directory nvidia all'interno di / proc / driver. Quale potrebbe essere il problema? A causa di ciò, non sono in grado di vedere la versione del mio driver nvidia.
Shyamkkhadka

Utile anche quando ottieni l'output Failed to initialize NVML: Driver/library version mismatchda nvidia-smi.
Sethos II il

14

modinfo fa il trucco.

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

3
Sul mio sistema il nome del modulo nvidia_XXXcorrispondeva alla serie di driver principali che avevo installato e poiché modinfonon supporta i caratteri jolly o le corrispondenze di nomi parziali, ho dovuto farlo per modinfo $(find /lib/modules/$(uname -r) -iname nvidia_*.ko | head -1) | grep ^version:restituire la versione del driver principale e secondaria corretta.
dragon788

1
Su Ubuntu 18.04 la mia versione di modinfoha --fieldun'opzione della riga di comando. Così si può saltare il grep: modinfo nvidia --field version. Inoltre, in Ubuntu 16.04 questo non sembra funzionare. Ottengo sempre ERROR: Module nvidia not found.
cheshirekow

11

Versione Windows:

cd \ Programmi \ NVIDIA Corporation \ NVSMI

nvidia-smi


7

[NOTA: non sto cancellando la mia risposta di proposito, quindi le persone vedono come non farlo]

Se utilizzi:

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

otterrai la versione del pacchetto del driver nVIDIA installato tramite il meccanismo di pacchettizzazione della tua distribuzione. Ma questa potrebbe non essere la versione attualmente in esecuzione come parte del kernel in questo momento.


11
Questo non ti dice quale versione del driver è effettivamente installata e utilizzata dal kernel. Usa il file system proc per vederlo .... Anche questo funziona solo nelle distribuzioni in stile Debian.
talonmies

2
@Framester, grazie per aver lasciato questo - questa è la prima cosa che avrei fatto (ed è sbagliato!)
Stephen

@Framester: hai totalmente giocato con il sistema! Ti ho appena dato un altro +1 su un'utile risposta sbagliata ... astuto diavolo :-)
einpoklum

4

Per espandere la risposta di ccc, se vuoi incorporare l'interrogazione della scheda con uno script, ecco le informazioni sul sito di Nvidia su come farlo:

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

Inoltre, ho trovato questo thread che cercava powershell. Ecco un comando di esempio che esegue l'utilità per ottenere la vera memoria disponibile sulla GPU per iniziare.

# 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

questo non risponde alla domanda sulla versione del driver migliore della risposta accettata
JR Utily

1
@JRUtily, grazie per la cattura. Ho aggiornato il codice per mostrare come ottenere la versione del driver. Saluti!
Jeff Blumenthal,

0

Se è necessario ottenerlo in un programma con Python su un sistema Linux per la riproducibilità:

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

dà:

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) 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.