Для отладки кода 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)