Для отладки кода CUDA и проверки совместимости мне нужно узнать, какую версию драйвера nvidia для графического процессора я установил. Нашел Как получить версию cuda? но здесь мне это не помогает.
Для отладки кода CUDA и проверки совместимости мне нужно узнать, какую версию драйвера nvidia для графического процессора я установил. Нашел Как получить версию cuda? но здесь мне это не помогает.
Ответы:
Использование 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 |
+-----------------------------------------------------------------------------+
nvidia-smi
так:locate nvidia-smi
lspci
. Например: stackoverflow.com/questions/10310250/…
В любой системе 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)
nvidia-smi
:Failed to initialize NVML: GPU access blocked by the operating system
Failed to initialize NVML: Driver/library version mismatch
из nvidia-smi
.
modinfo
делает свое дело.
root@nyx:/usr/src# modinfo nvidia|grep version:
version: 331.113
nvidia_XXX
соответствии с основной серией драйверов, которые я установил, и, поскольку modinfo
он не поддерживает подстановочные знаки или частичное совпадение имен, мне пришлось сделать это, чтобы modinfo $(find /lib/modules/$(uname -r) -iname nvidia_*.ko | head -1) | grep ^version:
вернуть правильную основную и вспомогательную версию драйвера.
modinfo
имеет параметр --field
командной строки. Таким образом, вы можете пропустить grep : modinfo nvidia --field version
. Кроме того, в ubuntu 16.04 это не работает. Я всегда получаю ERROR: Module nvidia not found
.
[ПРИМЕЧАНИЕ: я не удаляю свой ответ специально, чтобы люди видели, как этого не делать]
Если вы используете:
me@over_there:~$ dpkg --status nvidia-current | grep Version | cut -f 1 -d '-' | sed 's/[^.,0-9]//g'
260.19.06
вы получите версию пакета драйверов nVIDIA, установленную через механизм упаковки вашего дистрибутива. Но это может быть не та версия, которая сейчас работает как часть вашего ядра.
Чтобы расширить ответ ccc, если вы хотите включить запрос карты с помощью скрипта, вот информация на сайте Nvidia о том, как это сделать:
https://nvidia.custhelp.com/app/answers/detail/a_id/3751/~/useful-nvidia-smi-queries
Кроме того, я нашел этот поток, исследующий PowerShell. Вот пример команды, которая запускает утилиту, чтобы получить истинную память, доступную на GPU, чтобы вы начали.
# 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
Если вам нужно получить это в программе с 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)