1. Introducción
Al utilizar una GPU en Ubuntu, es esencial monitorizar su estado con precisión. Esto es particularmente importante en cargas de trabajo que involucran aprendizaje profundo o renderizado gráfico, donde comprender el uso de la GPU y las versiones de los controladores es obligatorio. En este artículo explicamos cómo usar nvidia-smi, una herramienta de gestión de GPUs NVIDIA, y presentamos métodos para consultar la información de la GPU en Ubuntu.
2. Comprobando la información de la GPU con nvidia-smi
nvidia-smi es una herramienta de línea de comandos que permite monitorizar la utilización, el uso de memoria y otra información detallada sobre GPUs NVIDIA. Resulta especialmente útil para observar la actividad de la GPU en tiempo real o para obtener métricas de utilización detalladas.
Uso básico
Puedes usar el siguiente comando para monitorizar el uso de la GPU y la utilización de memoria en tiempo real:
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1
Este comando recupera información detallada, incluyendo la utilización de la GPU, el uso de memoria y la memoria disponible. La opción -l permite establecer el intervalo de actualización en segundos.
Formato de visualización y salida a archivo
Por defecto, los resultados se muestran en formato de tabla, pero puedes exportarlos como CSV para facilitar su procesamiento. Si deseas guardar la información en un archivo, especifica el destino con la opción -f.
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv
Esto te permite guardar registros de utilización de la GPU y analizarlos posteriormente.
3. Recuperando información de procesos con nvidia-smi
nvidia-smi también permite obtener información sobre los procesos que están usando la GPU en ese momento. Esto ayuda a identificar cuántos recursos de GPU consume cada proceso.
Obtención de información de procesos
Utiliza el siguiente comando para ver el PID y el uso de memoria de los procesos que utilizan la GPU:
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader
Este comando devuelve una lista de procesos activos en la GPU y muestra el uso de memoria de cada uno.
Subcomando nvidia-smi pmon
La herramienta nvidia-smi incluye también el subcomando pmon, que proporciona un monitoreo detallado de los procesos de la GPU.
nvidia-smi pmon --delay 10 -s u -o DT
Esto muestra información de los procesos de la GPU a intervalos especificados. La opción --delay define el intervalo de actualización en segundos, y puedes elegir qué información mostrar.
4. Instalación y verificación de los controladores NVIDIA
Para usar una GPU NVIDIA en Ubuntu, es necesario instalar el controlador NVIDIA correcto. A continuación se describen los pasos para la instalación y la verificación.
Instalación del controlador
Primero, instala el controlador NVIDIA apropiado para tu sistema usando 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 de reiniciar, ejecuta el siguiente comando para confirmar que el controlador está instalado correctamente:
nvidia-smi
Si aparecen la versión del controlador y la versión de CUDA, la instalación fue exitosa.

5. Verificando el funcionamiento de la GPU con TensorFlow
También puedes comprobar la funcionalidad de la GPU probándola con TensorFlow, un framework de aprendizaje automático.
Instalación de Anaconda
Primero, instala Anaconda y configura tu 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
Comprobación del reconocimiento de la GPU en TensorFlow
A continuación, verifica si TensorFlow reconoce la GPU:
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
Si el dispositivo GPU aparece en la lista, TensorFlow está detectando la GPU correctamente.
6. Monitoreo y registro de la GPU
nvidia-smi permite el monitoreo en tiempo real de la GPU y el registro de logs. Esto ayuda a seguir el uso de la GPU a lo largo del tiempo y a optimizar el rendimiento.
Monitoreo periódico
Para establecer un monitoreo periódico, use la opción -l para especificar el intervalo de actualización y, opcionalmente, registre los datos 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
Control programable mediante enlaces de Python
nvidia-smi proporciona enlaces de Python (nvidia-ml-py) que le permiten obtener información de la GPU de forma programática. Esto permite un monitoreo y control más personalizados desde scripts de Python.
7. Conclusión
nvidia-smi es una herramienta poderosa para comprobar y gestionar el uso de GPUs NVIDIA en Ubuntu. Este artículo explicó el uso básico, el monitoreo de procesos, la instalación de controladores y la verificación de GPU con TensorFlow. Utilice estas técnicas para maximizar el rendimiento de la GPU y optimizar su sistema.