Zum Debuggen von CUDA-Code und zum Überprüfen der Kompatibilität muss ich herausfinden, welche NVIDIA-Treiberversion für die GPU ich installiert habe. Ich fand Wie bekomme ich die Cuda-Version? aber das hilft mir hier nicht.
Zum Debuggen von CUDA-Code und zum Überprüfen der Kompatibilität muss ich herausfinden, welche NVIDIA-Treiberversion für die GPU ich installiert habe. Ich fand Wie bekomme ich die Cuda-Version? aber das hilft mir hier nicht.
Antworten:
Die Verwendung nvidia-smi
sollte 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 |
+-----------------------------------------------------------------------------+
nvidia-smi
so zu finden :locate nvidia-smi
lspci
. Zum Beispiel: stackoverflow.com/questions/10310250/…
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)
nvidia-smi
ist:Failed to initialize NVML: GPU access blocked by the operating system
Failed to initialize NVML: Driver/library version mismatch
von erhalten nvidia-smi
.
modinfo
macht den Trick.
root@nyx:/usr/src# modinfo nvidia|grep version:
version: 331.113
nvidia_XXX
entsprechend der von mir installierten Haupttreiberserie benannt. Da modinfo
keine 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.
modinfo
über eine --field
Befehlszeilenoption. 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
.
[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.
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
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)