Para depurar o código CUDA e verificar as compatibilidades, preciso descobrir qual versão do driver da nvidia para a GPU eu instalei. Descobri como obter a versão cuda? mas isso não me ajuda aqui.
Para depurar o código CUDA e verificar as compatibilidades, preciso descobrir qual versão do driver da nvidia para a GPU eu instalei. Descobri como obter a versão cuda? mas isso não me ajuda aqui.
Respostas:
O uso nvidia-smi
deve dizer a você 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
o seguinte:locate nvidia-smi
lspci
. Por exemplo: stackoverflow.com/questions/10310250/…
Em qualquer sistema Linux com o driver NVIDIA instalado e carregado no kernel, você pode executar:
cat /proc/driver/nvidia/version
para obter a versão do módulo de kernel NVIDIA atualmente carregado, por exemplo:
$ 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
de nvidia-smi
.
modinfo
faz o truque.
root@nyx:/usr/src# modinfo nvidia|grep version:
version: 331.113
nvidia_XXX
com a série principal do driver que eu instalei e, como modinfo
não suporta curingas ou correspondências parciais de nome, tive que fazer isso, o modinfo $(find /lib/modules/$(uname -r) -iname nvidia_*.ko | head -1) | grep ^version:
que retorna a versão principal e secundária correta do driver.
modinfo
tem uma --field
opção de linha de comando. Então, você pode pular o grep: modinfo nvidia --field version
. Além disso, no ubuntu 16.04 isso não parece funcionar. Eu sempre consigo ERROR: Module nvidia not found
.
[NOTA: não estou excluindo minha resposta de propósito, então as pessoas vêem como não fazer]
Se você usar:
me@over_there:~$ dpkg --status nvidia-current | grep Version | cut -f 1 -d '-' | sed 's/[^.,0-9]//g'
260.19.06
você obterá a versão do pacote de driver da nVIDIA instalada por meio do mecanismo de empacotamento da distribuição. Mas esta pode não ser a versão que está realmente rodando como parte do seu kernel agora.
Para expandir a resposta do ccc, se você quiser incorporar a consulta ao cartão com um script, aqui estão as informações no site da Nvidia sobre como fazer isso:
https://nvidia.custhelp.com/app/answers/detail/a_id/3751/~/useful-nvidia-smi-queries
Além disso, encontrei este tópico pesquisando PowerShell. Aqui está um exemplo de comando que executa o utilitário para obter a memória real disponível na GPU para você começar.
# 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
Se você precisar obter isso em um programa com Python em um sistema Linux para reprodutibilidade:
with open('/proc/driver/nvidia/version') as f:
version = f.read().strip()
print(version)
dá:
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)
Você pode simplesmente usar o comando: nvidia-smi -L
Saída de amostra : GPU 0: GeForce GTX 1660 Ti com design Max-Q (UUID: GPU-64ff7c28-7905-a240-e063-91caf97ab792)