Estoy tratando de monitorear un proceso que usa cuda y MPI, ¿hay alguna forma de que pueda hacer esto, algo como el comando "top" pero que también monitorea la GPU?
cuda
resource-monitor
natorro
fuente
fuente

Respuestas:
Encuentro gpustat muy útil. Se puede instalar con
pip install gpustate imprime un desglose del uso por procesos o usuarios.fuente
watch gpustat -cp, puede ver las estadísticas continuamente, pero los colores se han ido. ¿Cómo arreglas eso? @Alleowatch -c. @Roman Orac, Gracias, esto también funcionó para mí en redhat 8 cuando recibí un error debido a la importación de _curses en Python.watch -c gpustat -cp --colorwatch -n 0.5 -c gpustat -cp --color--watchopción:gpustat -cp --watchPara obtener información en tiempo real sobre los recursos utilizados, haga lo siguiente:
nvidia-smi -l 1Esto hará un bucle y llamará a la vista cada segundo.
Si no desea mantener rastros anteriores de la llamada en bucle en el historial de la consola, también puede hacer:
watch -n0.1 nvidia-smiDonde 0.1 es el intervalo de tiempo, en segundos.
fuente
No tengo conocimiento de nada que combine esta información, pero puede usar la
nvidia-smiherramienta para obtener los datos sin procesar, así (gracias a @jmsu por el consejo sobre -l):fuente
watch -n 0.5 nvidia-smi, que evita llenar su terminal con salidaDescargue e instale el controlador CUDA estable más reciente (4.2) desde aquí . En Linux, nVidia-smi 295.41 le ofrece justo lo que desea. utilizar
nvidia-smi:EDITAR: En los últimos controladores de NVIDIA, este soporte se limita a las tarjetas Tesla.
fuente
para obtener más ayuda, siga
fuente
Solo usa
watch nvidia-smi, generará el mensaje en un intervalo de 2 segundos de forma predeterminada.Por ejemplo, como la siguiente imagen:
También puede utilizar
watch -n 5 nvidia-smi(-n intervalo de 5 por 5 s).fuente
Otro enfoque de monitoreo útil es utilizar
psprocesos filtrados que consumen sus GPU. Yo uso mucho este:Eso mostrará todos los procesos que utilizan la GPU de nvidia y algunas estadísticas sobre ellos.
lsof ...recupera una lista de todos los procesos que utilizan una GPU nvidia propiedad del usuario actual yps -p ...muestra lospsresultados de esos procesos.ps fmuestra un formato agradable para las relaciones / jerarquías de procesos hijo / padre, y-oespecifica un formato personalizado. Eso es similar a simplemente hacerps upero agrega el ID del grupo de procesos y elimina algunos otros campos.Una ventaja de esto sobre
nvidia-smies que mostrará las bifurcaciones de proceso, así como los procesos principales que usan la GPU.Sin embargo, una desventaja es que se limita a los procesos propiedad del usuario que ejecuta el comando. Para abrirlo a todos los procesos propiedad de cualquier usuario, agrego un
sudoantes dellsof.Por último, lo combino con
watchpara obtener una actualización continua. Entonces, al final, se ve así:Que tiene salida como:
fuente
sudoasí:nvidia-smi --query-compute-apps=pid --format=csv,noheadernvidia-smi, no enumera todos los procesos, por lo que termina con su memoria utilizada por procesos que no figuran allí. Esta es la forma principal en la que puedo rastrear y eliminar esos procesos.pmemdado porpstenga en cuenta la memoria total de la GPU sino la de la CPU porquepsno es compatible con "Nvidia GPU"Puede probar
nvtop, que es similar a lahtopherramienta ampliamente utilizada pero para las GPU NVIDIA. Aquí hay una captura de pantallanvtopen acción.fuente
Puede que esto no sea elegante, pero puedes intentarlo
También probé el método de @Edric, que funciona, pero prefiero el diseño original de
nvidia-smi.fuente
nvidia-smi -l 2. O para evitar la salida repetida de la consola,watch -n 2 'nvidia-smi'Si solo desea encontrar el proceso que se está ejecutando en gpu, simplemente puede usar el siguiente comando:
Para mí
nvidia-smiyawatch -n 1 nvidia-smison suficientes en la mayoría de los casos. A vecesnvidia-smino muestra ningún proceso, pero la memoria de la gpu está agotada, así que necesito usar el comando anterior para encontrar los procesos.fuente
En Linux Mint, y probablemente en Ubuntu, puede probar "nvidia-smi --loop = 1"
fuente
Existe Prometheus GPU Metrics Exporter (PGME) que aprovecha el binario nvidai-smi. Puedes probar esto. Una vez que tenga el exportador en ejecución, puede acceder a él a través de http: // localhost: 9101 / metrics . Para dos GPU, el resultado de la muestra se ve así:
fuente
puede usar
nvidia-smi pmon -i 0para monitorear todos los procesos en GPU 0. incluido el modo de cómputo, uso de sm, uso de memoria, uso del codificador, uso del decodificador.fuente
Puede utilizar las miradas del programa de monitoreo con su complemento de monitoreo de GPU :
sudo apt-get install -y python-pip; sudo pip install glances[gpu]sudo glancesTambién supervisa la CPU, la E / S del disco, el espacio en disco, la red y algunas otras cosas:
fuente
Creé un archivo por lotes con el siguiente código en una máquina con Windows para monitorear cada segundo. Esto funciona para mi.
nvidia-smi exe generalmente se encuentra en "C: \ Archivos de programa \ NVIDIA Corporation" si desea ejecutar el comando solo una vez.
fuente