¿Cómo medir el uso de GPU?

Respuestas:

80
  • Para las GPU Nvidia hay una herramienta nvidia-smi que puede mostrar el uso de la memoria, la utilización de la GPU y la temperatura de la GPU.
  • Para las GPU de Intel, puede usar las herramientas intel-gpu .
  • AMD tiene dos opciones

    1. fglrx (controladores de código cerrado):

      aticonfig --odgc --odgt
      
    2. Y para mesa (controladores de código abierto), puede usar RadeonTop Instalar a través del centro de software .

Fuente: monitoreo de uso de GPU

Mitch
fuente
41
Úselo watch nvidia-smipara actualizaciones en tiempo real.
Lenar Hoyt
1
aticonfig no funcionará sobre SSH. Afirma que necesita un servidor X ejecutándose para funcionar (hay uno ejecutándose). Sin embargo, RadeonTop ( sudo apt-get radeontop) no funciona con el fglrx (necesita raíz). ¡Hurra! Lamentablemente, RadeonTop no proporciona ninguna lectura de temperatura.
Ken Sharp
aticonfig FUNCIONARÁ a través de SSH, pero se debe ejecutar un servidor X con tcp habilitado. Esto se puede hacer configurando lightdm vía xserver-allow-tcp=true. Buscar en este sitio con estas palabras clave debería conducir al resultado.
HAL 9001
No estoy seguro de por qué, pero watch -n 1 nvidia-smime dio actualizaciones en tiempo real. watch nvidia-smitiene un retraso de actualización de 2 segundos.
markroxor
1
sudo intel_gpu_topdebería darle actualizaciones en tiempo real para Intel GPUS.
George D
24

Nvidia: para actualizar continuamente la salida de nvidia-smi, puede usar nvidia-smi --loop=1(intervalo de actualización de 1 segundo) o nvidia-smi --loop-ms=1000(intervalo de actualización de 1000 milisegundos).

   -l SEC, --loop=SEC
       Continuously  report  query data at the specified interval, rather than
       the default of  just  once.   The  application  will  sleep  in-between
       queries.   Note  that on Linux ECC error or XID error events will print
       out during the sleep period if the -x flag was not specified.  Pressing
       Ctrl+C at any time will abort the loop, which will otherwise run indef‐
       initely.  If no argument is specified for the -l form a default  inter‐
       val of 5 seconds is used.

   -lms ms, --loop-ms=ms
       Same as -l,--loop but in milliseconds.

FYI:

Franck Dernoncourt
fuente
21

Puede usar gpustat, que es un script de línea de comandos simple (contenedor para nvidia-smi) para consultar y monitorear el estado de la GPU:

ingrese la descripción de la imagen aquí

Franck Dernoncourt
fuente
NOTA: Solo para Nvidia
Lennart Rolland
pip install gpustat
Shital Shah
15

Para Intel:

  1. Instale intel-gpu-tools (es probable que ya estén instaladas)

    sudo apt-get install intel-gpu-tools 
    
  2. Inicie la toputilidad like con

    sudo intel_gpu_top
    
  3. Comprueba tus estadísticas y luego sal con Ctrl+C

Eso es lo que obtienes:

ingrese la descripción de la imagen aquí

Gracias @Mitch! :)

Thomas Venturini
fuente
12

Puede usar las miradas del programa de monitoreo con su complemento de monitoreo de GPU :

  • fuente abierta
  • instalar: sudo apt-get install -y python-pip; sudo pip install glances[gpu]
  • almorzar: sudo glances

ingrese la descripción de la imagen aquí

También monitorea la CPU, el disco IO, el espacio en disco, la red y algunas otras cosas:

ingrese la descripción de la imagen aquí

Franck Dernoncourt
fuente
También debes hacerlopip install nvidia-ml-py3
Paul Williams
También funciona sin sudoy cuando se instala solo para el usuario: pip install --user glances[gpu]y luego se ejecuta glances.
Ivan Kovtun
8

Narigón

Me gusta usarlo conkycomo monitor en tiempo real para CPU y GPU. La instalación es sencilla:

sudo apt install conky

Intel i7-6700HQ iGPU HD 530

En este caso, he arrancado usando la GPU integrada en lugar de la nVidia GTX 970M:

Intel GPU.gif

El conkycódigo se adapta dependiendo de si se inicia con prime-select intelo prime-select nvidia:

GPU nVidia GTX 970M

En este caso, he arrancado usando la nVidia GTX 970M en lugar de la GPU integrada:

nVidia GPU.GIF


Código Conky

El código conky se modificó recientemente para detectar automáticamente la GPU. Ahora no tiene que modificarse manualmente al reiniciar a una GPU diferente:

#------------+
# Intel iGPU |
#------------+
${color orange}${hr 1}${if_existing /sys/class/drm/card0/gt_cur_freq_mhz}
${color2}${voffset 5}Intel® Skylake GT2 HD 530 iGPU @${alignr}${color green}
${execpi .001 (cat /sys/class/drm/card0/gt_cur_freq_mhz)} MHz
${color}${goto 13}Min. Freq:${goto 120}${color green}${execpi .001 (cat /sys/class/drm/card0/gt_min_freq_mhz)} MHz${color}${goto 210}Max. Freq:${alignr}${color green}${execpi .001 (cat /sys/class/drm/card0/gt_max_freq_mhz)} MHz
${color orange}${hr 1}${else}
#------------+
# Nvidia GPU |
#------------+
#${color orange}${hr 1}${if_match "${lsmod | grep nvidia_uvm}">""}
${color2}${voffset 5}${execpi .001 (nvidia-smi --query-gpu=gpu_name --format=csv,noheader)} ${color1}@ ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.sm --format=csv,noheader)} ${alignr}${color1}Temp: ${color green}${execpi .001 (nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)}°C
${color1}${voffset 5}Ver: ${color green}${execpi .001 (nvidia-smi --query-gpu=driver_version --format=csv,noheader)} ${color1} P-State: ${color green}${execpi .001 (nvidia-smi --query-gpu=pstate --format=csv,noheader)} ${alignr}${color1}BIOS: ${color green}${execpi .001 (nvidia-smi --query-gpu=vbios_version --format=csv,noheader)}
${color1}${voffset 5}GPU:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader)} ${color1}Ram:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.memory --format=csv,noheader)} ${color1}Pwr:${color green}${execpi .001 (nvidia-smi --query-gpu=power.draw --format=csv,noheader)} ${alignr}${color1}Freq: ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.mem --format=csv,noheader)}
${color orange}${hr 1}${endif}

Se pueden encontrar diferentes versiones de la lista completa de códigos en estas respuestas:

WinEunuuchs2Unix
fuente
¿Podría proporcionar los pasos para instalar conky y configurar el tema para que sea como su ejemplo de Nvidia, por favor?
Tak
@Tak He actualizado la respuesta con instrucciones de instalación y enlaces existentes al código.
WinEunuuchs2Unix
6

Yo uso el siguiente comando:

nvidia-smi -l 2

y me da actualizaciones cada 2 segundos.

Se ve como esto

O:

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

Y en AMD, use:

aticonfig --odgc --odgt

ingrese la descripción de la imagen aquí

Tshilidzi Mudau
fuente