Solucionar problemas de máquinas virtuales con GPU


En esta página se explica cómo resolver problemas de máquinas virtuales que se ejecutan en Compute Engine y que tienen GPUs conectadas.

Si intentas crear una VM con GPUs conectadas y recibes errores, consulta Solucionar problemas de disponibilidad de recursos y Solucionar problemas al crear y actualizar VMs.

Solucionar problemas de máquinas virtuales con GPU mediante NVIDIA DCGM

NVIDIA Data Center GPU Manager (DCGM) es un conjunto de herramientas para gestionar y monitorizar GPUs de centros de datos de NVIDIA en entornos de clústeres.

Si quieres usar DCGM para solucionar problemas en tu entorno de GPU, haz lo siguiente:

  • Asegúrate de que estás usando el controlador de NVIDIA recomendado más reciente para el modelo de GPU que está conectado a tu VM. Para consultar las versiones de los controladores, consulta Versiones recomendadas de los controladores de NVIDIA.
  • Asegúrate de haber instalado la versión más reciente de DCGM. Para instalar la versión más reciente, consulta el artículo sobre la instalación de DCGM.

Diagnosticar problemas

Cuando ejecutas un comando de diagnóstico de dcgmi, los problemas que informa la herramienta de diagnóstico incluyen los pasos que debes seguir para solucionarlos. En el siguiente ejemplo se muestra la salida procesable del comando dcgmi diag -r memory -j.

{
  ........
   "category":"Hardware",
   "tests":[
      {
         "name":"GPU Memory",
         "results":[
            {
               "gpu_id":"0",
               "info":"GPU 0 Allocated 23376170169
bytes (98.3%)",
               "status":"Fail",
               ""warnings":[
                  {
                     "warning":"Pending page
retirements together with a DBE were detected on GPU 0. Drain the GPU and reset it or reboot the node to resolve this issue.",
                     "error_id":83,
                     "error_category":10,
                     "error_severity":6
                  }
               ]
            }
  .........

En el fragmento de salida anterior, puedes ver que GPU 0 tiene retiradas de páginas pendientes debido a un error irrecuperable. La salida proporcionó el error_id único y consejos para depurar el problema. En este ejemplo, se recomienda que agotes la GPU y reinicies la VM. En la mayoría de los casos, siguiendo las instrucciones de esta sección de la salida se puede resolver el problema.

Enviar una solicitud de asistencia

Si no puedes resolver los problemas siguiendo las indicaciones que se proporcionan en el resultado de tu dcgmi diagnóstico, puedes abrir un caso de asistencia. Cuando abras un caso de asistencia, deberás proporcionar la siguiente información:

  1. El comando que se ha ejecutado y el resultado devuelto.
  2. Archivos de registro relevantes, como los registros del motor host y de diagnóstico. Para recopilar los archivos de registro necesarios, puedes ejecutar la secuencia de comandos gather-dcgm-logs.sh.

    En una instalación predeterminada en sistemas basados en Debian y RPM, esta secuencia de comandos se encuentra en /usr/local/dcgm/scripts.

  3. En caso de dcgmi diag errores, proporcione los archivos de estadísticas de los complementos que hayan fallado. El archivo de estadísticas usa la siguiente convención de nomenclatura: stats_PLUGIN_NAME.json.

    Por ejemplo, si el complemento pcie ha fallado, incluye el archivo llamado stats_pcie.json.

  4. Información del sistema NVIDIA y estado del controlador. Para recopilar esta información, puedes ejecutar la secuencia de comandos nvidia-bug-report.sh. Si usas una instancia con GPUs Blackwell, sigue las instrucciones de Generar un informe de errores de NVIDIA para GPUs Blackwell para obtener un informe de errores completo.

    Ejecutar esta secuencia de comandos también ayuda a depurar el problema si se debe a otras dependencias de NVIDIA y no a un error en DCGM.

  5. Detalles sobre los cambios recientes que se hayan realizado en tu entorno antes del fallo.

Mensajes Xid

Después de crear una VM con GPUs conectadas, debes instalar los controladores de dispositivos NVIDIA en tus VMs con GPUs para que tus aplicaciones puedan acceder a las GPUs. Sin embargo, a veces estos controladores devuelven mensajes de error.

Un mensaje Xid es un informe de errores del controlador de NVIDIA que se imprime en el registro del kernel o en el registro de eventos del sistema operativo de tu máquina virtual Linux. Estos mensajes se colocan en el archivo /var/log/messages.

Para obtener más información sobre los mensajes Xid, incluidas las posibles causas, consulta la documentación de NVIDIA.

En la siguiente sección se ofrecen directrices para gestionar algunos mensajes Xid agrupados por los tipos más habituales: errores de memoria de la GPU, errores del procesador del sistema de la GPU (GSP) y errores de acceso ilegal a la memoria.

Errores de memoria de la GPU

La memoria de la GPU es la memoria disponible en una GPU que se puede usar para almacenar datos temporalmente. La memoria de la GPU está protegida con un código de corrección de errores (ECC), que detecta y corrige errores de un solo bit (SBE) y detecta e informa de errores de dos bits (DBE).

Antes del lanzamiento de las GPUs NVIDIA A100, se admitía la retirada dinámica de páginas. En las versiones de GPU NVIDIA A100 y posteriores (como NVIDIA H100), se ha introducido la recuperación de errores de reasignación de filas. ECC está habilitado de forma predeterminada. Google recomienda encarecidamente mantener habilitado el ECC.

A continuación, se muestran algunos errores de memoria de GPU habituales y las soluciones que se sugieren.

Mensaje de error de Xid Resolución
Xid 48: Double Bit ECC
  1. Detén tus cargas de trabajo.
  2. Elimina y vuelve a crear la VM. Si el error persiste, crea un caso con Cloud Customer Care.
Xid 63: ECC page retirement or row remapping recording event
  1. Detén tus cargas de trabajo.
  2. Restablece las GPUs.
Xid 64: ECC page retirement or row remapper recording failure

El mensaje contiene la siguiente información:

Xid 64: All reserved rows for bank are remapped
  1. Detén tus cargas de trabajo.
  2. Elimina y vuelve a crear la VM. Si el error persiste, crea un caso con Cloud Customer Care.

Si recibes al menos dos de los siguientes mensajes Xid juntos:

  • Xid 48
  • Xid 63
  • Xid 64

El mensaje contiene la siguiente información:

Xid XX: row remap pending
  1. Detén tus cargas de trabajo.
  2. Restablece las GPUs. Al restablecer la GPU, se permite que se completen los procesos de reasignación de filas y de retirada de páginas, y que la GPU se recupere.
Xid 92: High single-bit ECC error rate Este mensaje Xid se devuelve después de que el controlador de la GPU corrija un error corregible y no debería afectar a tus cargas de trabajo. Este mensaje Xid es meramente informativo. No tienes que hacer nada.
Xid 94: Contained ECC error
  1. Detén tus cargas de trabajo.
  2. Restablece las GPUs.
Xid 95: Uncontained ECC error
  1. Detén tus cargas de trabajo.
  2. Restablece las GPUs.

Errores de GSP

Un procesador del sistema de la GPU (GSP) es un microcontrolador que se ejecuta en las GPUs y gestiona algunas de las funciones de gestión de hardware de bajo nivel.

Mensaje de error de Xid Resolución
Xid 119: GSP RPC timeout
  1. Detén tus cargas de trabajo.
  2. Elimina y vuelve a crear la VM. Si el error persiste, recoge el informe de errores de NVIDIA y abre un caso con Cloud Customer Care.
Xid 120: GSP error

Errores de acceso a memoria no permitido

Se devuelven los siguientes Xids cuando las aplicaciones tienen problemas de acceso ilegal a la memoria:

  • Xid 13: Graphics Engine Exception
  • Xid 31: GPU memory page fault

Los errores de acceso a memoria no permitido suelen deberse a que tus cargas de trabajo intentan acceder a memoria que ya se ha liberado o que está fuera de los límites. Esto puede deberse a problemas como la desreferenciación de un puntero no válido o una matriz fuera de los límites.

Para solucionar este problema, debes depurar tu aplicación. Para depurar tu aplicación, puedes usar cuda-memcheck y CUDA-GDB.

En algunos casos muy raros, la degradación del hardware puede provocar que se devuelvan errores de acceso ilegal a la memoria. Para determinar si el problema está relacionado con tu hardware, usa NVIDIA Data Center GPU Manager (DCGM). Puedes ejecutar dcgmi diag -r 3 o dcgmi diag -r 4 para ejecutar diferentes niveles de cobertura y duración de las pruebas. Si detectas que el problema está relacionado con el hardware, crea un caso de asistencia con Cloud Customer Care.

Otros mensajes de error de Xid habituales

Mensaje de error de Xid Resolución
Xid 74: NVLINK error
  1. Detén tus cargas de trabajo.
  2. Restablece las GPUs.
Xid 79: GPU has fallen off the bus

Esto significa que el controlador no puede comunicarse con la GPU.

Reinicia la VM.

Restablecer GPUs

Es posible que tengas que restablecer tus GPUs para solucionar algunos problemas. Para restablecer las GPUs, sigue estos pasos:

  • En las VMs N1, G2 y A2, reinicia la VM ejecutando sudo reboot.
  • En las VMs A3 y A4, ejecuta sudo nvidia-smi --gpu-reset.
    • En la mayoría de las máquinas virtuales Linux, el ejecutable nvidia-smi se encuentra en el directorio /var/lib/nvidia/bin.
    • En los nodos de GKE, el ejecutable nvidia-smi se encuentra en el directorio /home/kubernetes/bin/nvidia.

Si los errores persisten después de restablecer la GPU, debes eliminar y volver a crear la VM.

Si el error persiste después de eliminar y volver a crear la VM, abre un caso con Cloud Customer Care para mover la VM a la fase de reparación.

Siguientes pasos

Consulta los tipos de máquinas con GPU.