Monitoramento de uso da GPU (CUDA)

171

Instalei o kit de ferramentas CUDA no meu computador e iniciei o projeto BOINC na GPU. No BOINC eu posso ver que ele está rodando na GPU, mas existe uma ferramenta que pode me mostrar mais detalhes sobre o que está rodando na GPU - uso da GPU e uso da memória?

    
por pbm 13.05.2012 / 12:46

14 respostas

184

Para as GPUs da Nvidia, existe uma ferramenta nvidia-smi que pode mostrar o uso da memória, a utilização da GPU e a temperatura da GPU. Há também uma lista de processos de computação e poucas opções, mas minha placa gráfica (GeForce 9600 GT) não é totalmente suportada.

Sun May 13 20:02:49 2012       
+------------------------------------------------------+                       
| NVIDIA-SMI 3.295.40   Driver Version: 295.40         |                       
|-------------------------------+----------------------+----------------------+
| Nb.  Name                     | Bus Id        Disp.  | Volatile ECC SB / DB |
| Fan   Temp   Power Usage /Cap | Memory Usage         | GPU Util. Compute M. |
|===============================+======================+======================|
| 0.  GeForce 9600 GT           | 0000:01:00.0  N/A    |       N/A        N/A |
|   0%   51 C  N/A   N/A /  N/A |  90%  459MB /  511MB |  N/A      Default    |
|-------------------------------+----------------------+----------------------|
| Compute processes:                                               GPU Memory |
|  GPU  PID     Process name                                       Usage      |
|=============================================================================|
|  0.           Not Supported                                                 |
+-----------------------------------------------------------------------------+
    
por 13.05.2012 / 20:05
56

Para o linux, use nvidia-smi -l 1 continuamente fornecerá as informações de uso do gpu, com intervalo de atualização de 1 segundo.

    
por 04.06.2013 / 19:10
49

Para a Intel GPU existe o projeto intel-gpu-tools do link , que traz o comando intel_gpu_top (entre outras coisas). É semelhante a top e htop , mas especificamente para a GPU Intel.

   render busy:  18%: ███▋                                   render space: 39/131072
bitstream busy:   0%:                                     bitstream space: 0/131072
  blitter busy:  28%: █████▋                                blitter space: 28/131072

          task  percent busy
           GAM:  33%: ██████▋                 vert fetch: 0 (0/sec)
          GAFS:   3%: ▋                       prim fetch: 0 (0/sec)
            VS:   0%:                      VS invocations: 559188 (150/sec)
            SF:   0%:                      GS invocations: 0 (0/sec)
            VF:   0%:                           GS prims: 0 (0/sec)
            DS:   0%:                      CL invocations: 186396 (50/sec)
            CL:   0%:                           CL prims: 186396 (50/sec)
           SOL:   0%:                      PS invocations: 8191776208 (38576436/sec)
            GS:   0%:                      PS depth pass: 8158502721 (38487525/sec)
            HS:   0%:                      
            TE:   0%:                      
          GAFM:   0%:                      
           SVG:   0%:                      
    
por 13.05.2012 / 16:05
46

Recentemente, escrevi um utilitário de linha de comando simples chamado gpustat (que é um wrapper de nvidia-smi ): por favor, dê uma olhada no link .

    
por 09.06.2016 / 08:50
29

nvidia-smi não funciona em algumas máquinas linux (retorna N / A para muitas propriedades). Você pode usar nvidia-settings (isso é o mesmo que o kelcey usado em seu script python).

nvidia-settings -q GPUUtilization -q useddedicatedgpumemory

Você também pode usar:

watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"

para monitoramento contínuo.

    
por 05.05.2015 / 15:40
12

Para completar, a AMD tem duas opções:

  1. fglrx (drivers de código fechado).

    $ aticonfig --odgc --odgt
    
  2. mesa (drivers de código aberto), você pode usar RadeonTop .

    View your GPU utilization, both for the total activity percent and individual blocks.

por 28.11.2013 / 22:52
10

Para Linux, eu uso essa ferramenta como o HTOP que eu mesmo escrevi. Ele monitora e dá uma visão geral da temperatura da GPU, bem como do núcleo / VRAM / PCI-E & uso de barramento de memória. Ele não monitora o que está sendo executado na GPU.

gmonitor

    
por 06.02.2017 / 13:54
9

Eu tenho uma placa de vídeo GeForce 1060 GTX e descobri que o comando a seguir me fornece informações sobre a utilização do cartão, a temperatura, a velocidade do ventilador e o consumo de energia:

$ nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu

Você pode ver a lista de todas as opções de consulta com:

$ nvidia-smi --help-query-gpu
    
por 14.04.2017 / 12:26
3

Para o OS X

Incluindo o leão da montanha

Menus iStat

Excluindo o Leão da Montanha

atMonitor

The last version of atMonitor to support GPU related features is atMonitor 2.7.1.

- e o link para 2.7.1 entrega 2.7b.

Para a versão mais recente do aplicativo, atMonitor - FAQ explica:

To make atMonitor compatible with MacOS 10.8 we have removed all GPU related features.

Eu experimentei 2.7b a.k.a. 2.7.1 no Mountain Lion com um MacBookPro5.2 com NVIDIA GeForce 9600M GT. O aplicativo foi executado por alguns segundos antes de sair, mostrou a temperatura, mas não o uso:

    
por 23.12.2012 / 16:34
2

Glances tem um plugin que mostra a utilização da GPU e o uso da memória.

link

Usa a biblioteca nvidia-ml-py3: link

    
por 06.11.2017 / 22:12
1

para nvidia no linux eu uso o seguinte script python que usa um atraso opcional e repito como iostat e vmstat

link

$ gpu_stat.py 1 2
{"util":{"PCIe":"0", "memory":"10", "video":"0", "graphics":"11"}, "used_mem":"161", "time": 1424839016}
{"util":{"PCIe":"0", "memory":"10", "video":"0", "graphics":"9"}, "used_mem":"161", "time":1424839018}
    
por 25.02.2015 / 05:42
1

Eu tive processos encerrados (provavelmente mortos ou travados) e continuei a usar recursos, mas não foram listados em nvidia-smi . Normalmente, esses processos estavam apenas pegando memória gpu.

Se você acha que tem um processo usando recursos em uma GPU e não está sendo mostrado em nvidia-smi , pode tentar executar este comando para verificar novamente. Ele mostrará a você quais processos estão usando suas GPUs.

sudo fuser -v /dev/nvidia*

Isso funciona no EL7, o Ubuntu ou outras distribuições podem ter seus dispositivos nvidia listados sob outro nome / local.

    
por 18.09.2017 / 20:27
1

A seguinte função acrescenta informações como PID, nome de usuário, uso da CPU, uso de memória, uso de memória da GPU, argumentos do programa e tempo de execução dos processos que estão sendo executados na GPU, para a saída de nvidia-smi :

function better-nvidia-smi () {
    nvidia-smi
    join -1 1 -2 3 \
        <(nvidia-smi --query-compute-apps=pid,used_memory \
                     --format=csv \
          | sed "s/ //g" | sed "s/,/ /g" \
          | awk 'NR<=1 {print toupper($0)} NR>1 {print $0}' \
          | sed "/\[NotSupported\]/d" \
          | awk 'NR<=1{print $0;next}{print $0| "sort -k1"}') \
        <(ps -a -o user,pgrp,pid,pcpu,pmem,time,command \
          | awk 'NR<=1{print $0;next}{print $0| "sort -k3"}') \
        | column -t
}

Exemplo de saída:

$ better-nvidia-smi
Fri Sep 29 16:52:58 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 378.13                 Driver Version: 378.13                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GT 730      Off  | 0000:01:00.0     N/A |                  N/A |
| 32%   49C    P8    N/A /  N/A |    872MiB /   976MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
|   1  Graphics Device     Off  | 0000:06:00.0     Off |                  N/A |
| 23%   35C    P8    17W / 250W |    199MiB / 11172MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0                  Not Supported                                         |
|    1      5113    C   python                                         187MiB |
+-----------------------------------------------------------------------------+
PID   USED_GPU_MEMORY[MIB]  USER    PGRP  %CPU  %MEM   TIME      COMMAND
9178  187MiB                tmborn  9175  129   2.6    04:32:19  ../path/to/python script.py args 42
    
por 29.09.2017 / 16:36
0

Você pode usar nvtop , é semelhante a htop , mas para GPUs NVIDIA. Link: link

    
por 18.10.2018 / 12:06