Para depurar el código CUDA y verificar las compatibilidades, necesito averiguar qué versión del controlador nvidia para la GPU que he instalado. Encontré ¿Cómo obtener la versión cuda? pero eso no me ayuda aquí.
Para depurar el código CUDA y verificar las compatibilidades, necesito averiguar qué versión del controlador nvidia para la GPU que he instalado. Encontré ¿Cómo obtener la versión cuda? pero eso no me ayuda aquí.
Respuestas:
El uso nvidia-smi
debería decirle que:
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
así:locate nvidia-smi
lspci
. Por ejemplo: stackoverflow.com/questions/10310250/…
En cualquier sistema Linux con el controlador NVIDIA instalado y cargado en el kernel, puede ejecutar:
cat /proc/driver/nvidia/version
para obtener la versión del módulo del kernel de NVIDIA cargado actualmente, por ejemplo:
$ 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
es:Failed to initialize NVML: GPU access blocked by the operating system
Failed to initialize NVML: Driver/library version mismatch
de nvidia-smi
.
modinfo
Hace el truco.
root@nyx:/usr/src# modinfo nvidia|grep version:
version: 331.113
nvidia_XXX
corresponde a la serie de controladores principal que había instalado, y dado modinfo
que no admite comodines o coincidencias de nombres parciales, tuve que hacer esto, modinfo $(find /lib/modules/$(uname -r) -iname nvidia_*.ko | head -1) | grep ^version:
que devuelve la versión correcta del controlador principal y secundario.
modinfo
tiene una --field
opción de línea de comando. Así se puede omitir el grep: modinfo nvidia --field version
. Además, en ubuntu 16.04 esto no parece funcionar. Siempre lo consigo ERROR: Module nvidia not found
.
[NOTA: No eliminaré mi respuesta a propósito, para que la gente vea cómo no hacerlo]
Si utiliza:
me@over_there:~$ dpkg --status nvidia-current | grep Version | cut -f 1 -d '-' | sed 's/[^.,0-9]//g'
260.19.06
obtendrá la versión del paquete del controlador nVIDIA instalado a través del mecanismo de empaquetado de su distribución. Pero es posible que esta no sea la versión que se está ejecutando como parte de su kernel en este momento.
Para ampliar la respuesta de ccc, si desea incorporar la consulta de la tarjeta con un script, aquí hay información en el sitio de Nvidia sobre cómo hacerlo:
https://nvidia.custhelp.com/app/answers/detail/a_id/3751/~/useful-nvidia-smi-queries
Además, encontré este hilo investigando powershell. Aquí hay un comando de ejemplo que ejecuta la utilidad para obtener la verdadera memoria disponible en la GPU para que pueda comenzar.
# 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
Si necesita obtener eso en un programa con Python en un sistema Linux para la reproducibilidad:
with open('/proc/driver/nvidia/version') as f:
version = f.read().strip()
print(version)
da:
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)