Як отримати версію драйвера nvidia з командного рядка?


97

Для налагодження коду CUDA та перевірки сумісності мені потрібно з’ясувати, яку версію драйвера nvidia для встановленого GPU я встановив. Я знайшов Як отримати версію cuda? але це мені тут не допомагає.

Відповіді:


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

@Shyamkkhadka Ймовірно, щось не так з вашою ПАТОЮ. Ви можете спробувати знайти nvidia-smiтак:locate nvidia-smi
Брендан Вуд

@BrendanWood, за допомогою команди locate він показує порожній вихід. Я підозрюю, що він також не має апаратного забезпечення gpu. Тому що це HPC. І я отримую доступ до нього віддалено, з ssh.
Шямкхадка

@Shyamkkhadka Так, напевно, це все. Як правило, HPC не має графічних процесорів, якщо вони не повинні бути кластером 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)". Тому я думаю, що в ньому є апаратне забезпечення графічного процесора.
Shyamkkhadka

101

У будь-якій системі Linux з встановленим драйвером NVIDIA та завантаженим у ядро ​​можна виконати:

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
Або якщо у вас встановлений джміль (за рахунок подвійного GPU NVIDIA Optimus), тоді замість нього запустіть: "optirun cat / proc / driver / nvidia / version"
Shervin Emami

5
Це особливо корисно, коли вихід nvidia-smi:Failed to initialize NVML: GPU access blocked by the operating system
DarioP,

1
У моїй системі centos 6.4 у мене немає каталогу nvidia всередині / proc / driver. У чому може бути проблема? Через це я не в змозі побачити свою версію драйвера nvidia.
Shyamkkhadka

Також корисно , коли ви отримуєте на виході Failed to initialize NVML: Driver/library version mismatchз nvidia-smi.
Сетос II

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

1
У ubuntu 18.04 моя версія modinfoмає --fieldопцію командного рядка. Таким чином , ви можете пропустити Grep: modinfo nvidia --field version. Крім того, в ubuntu 16.04 це, здається, не працює. Я завжди отримую ERROR: Module nvidia not found.
cheshirekow

11

Версія Windows:

cd \ Файли програм \ Корпорація NVIDIA \ NVSMI

nvidia-smi


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, щоб побачити, що .... Також це працює лише в дистрибутивах стилів debian.
талонії

2
@Framester дякую, що залишив це - це перше, що я зробив би (і це неправильно!)
Stephen

@Framester: Ви повністю розіграли систему! Я щойно дав тобі ще один +1 за корисну неправильну відповідь ... ти хитрий диявол :-)
einpoklum

4

Щоб розширити відповідь на ccc, якщо ви хочете включити запит на карту зі скриптом, ось на сайті Nvidia інформація про те, як це зробити:

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

Крім того, я знайшов цю тему, що досліджує повноваження. Ось приклад команди, яка запускає утиліту, щоб отримати справжню пам'ять, доступну в графічному процесорі, для початку роботи.

# 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

Якщо вам потрібно отримати це в програмі з Python в системі Linux для відтворення:

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) 

0

Ви можете просто скористатися командою: nvidia-smi -L

Вибірка зразка : GPU 0: GeForce GTX 1660 Ti з Max-Q дизайном (UUID: GPU-64ff7c28-7905-a240-e063-91caf97ab792)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.