Cómo verificar y monitorear GPU NVIDIA en Ubuntu con nvidia-smi

1. Introducción

Al utilizar la GPU en Ubuntu, es fundamental verificar con precisión su estado. En especial, en tareas de deep learning o renderizado gráfico, resulta indispensable conocer el uso de la GPU y la versión del controlador. En este artículo, explicaremos cómo usar nvidia-smi, la herramienta de administración de GPU de NVIDIA, y mostraremos cómo comprobar la GPU en Ubuntu.
年収訴求

2. Verificar la información de la GPU con nvidia-smi

nvidia-smi es una herramienta de línea de comandos que permite monitorear el uso de GPU NVIDIA, incluyendo la utilización y la memoria. Es especialmente útil para revisar en tiempo real el estado de la GPU y obtener información detallada de su uso.

Uso básico

Con el siguiente comando puedes revisar en tiempo real la utilización de la GPU y el uso de memoria:
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1
Este comando muestra información detallada como la tasa de uso de la GPU, la memoria ocupada y la memoria disponible. Además, con la opción -l es posible especificar el intervalo de actualización en segundos.

Formato de salida y exportación a archivo

Por defecto, los resultados se muestran en formato de tabla, pero también es posible exportarlos en CSV para facilitar el procesamiento. Si deseas guardar la información en un archivo, puedes usar la opción -f y definir la ruta de destino.
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv
De esta manera, podrás registrar el uso de la GPU en un log y analizarlo posteriormente.

3. Obtener información de procesos con nvidia-smi

Con nvidia-smi también puedes consultar los procesos que están usando la GPU en ese momento. Esto permite identificar qué procesos consumen recursos de la GPU.

Consulta de procesos

Ejecuta el siguiente comando para revisar el PID y el uso de memoria de los procesos que usan la GPU:
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader
Este comando devuelve una lista de procesos en ejecución junto con la memoria utilizada por cada uno.

Subcomando pmon de nvidia-smi

nvidia-smi incluye el subcomando pmon, que muestra información más detallada de los procesos que utilizan la GPU.
nvidia-smi pmon --delay 10 -s u -o DT
Este comando muestra la información de procesos en intervalos definidos, y con la opción --delay puedes ajustar la frecuencia de actualización en segundos. Además, es posible seleccionar el tipo de información que deseas mostrar.

4. Instalación y verificación del controlador NVIDIA

Para usar una GPU NVIDIA en Ubuntu es necesario instalar el controlador adecuado. A continuación, se detallan los pasos para la instalación y verificación.

Instalación del controlador

Instala el controlador recomendado con el siguiente comando:
sudo apt install nvidia-driver-510
Una vez completada la instalación, reinicia el sistema.

Verificación de la instalación

Después del reinicio, ejecuta este comando para comprobar que el controlador se haya instalado correctamente:
nvidia-smi
Si ves la versión del controlador y la versión de CUDA, la instalación fue exitosa.

5. Verificar el funcionamiento de la GPU con TensorFlow

Para confirmar que la GPU funciona correctamente, puedes usar TensorFlow, un framework de machine learning.

Instalar Anaconda

Primero, instala Anaconda y configura el entorno:
bash ./Anaconda3-2022.05-Linux-x86_64.sh
conda update -n base conda
conda update anaconda
conda update -y --all
conda install tensorflow-gpu==2.4.1

Prueba de TensorFlow

Luego, verifica que TensorFlow reconozca la GPU:
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
Si la GPU aparece en la lista, TensorFlow la ha detectado correctamente.

6. Monitoreo y registro de logs de la GPU

Con nvidia-smi puedes monitorear la GPU en tiempo real y registrar logs. Esto es útil para analizar el uso prolongado y optimizar el rendimiento.

Monitoreo periódico

Puedes establecer un monitoreo periódico usando la opción -l y también registrar logs en un archivo:
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log

Uso programático con bindings de Python

nvidia-smi cuenta con bindings de Python (nvidia-ml-py), lo que permite obtener información de la GPU de forma programática. Esto facilita un monitoreo y control más personalizados.

7. Conclusión

nvidia-smi es una herramienta potente para verificar y gestionar el uso de GPU NVIDIA en Ubuntu. En este artículo revisamos desde el uso básico, la consulta de procesos, la instalación de controladores hasta la prueba con TensorFlow. Aprovecha al máximo el rendimiento de tu GPU y optimiza tu sistema.

Artículos relacionados

年収訴求