¿Cómo soluciono los errores de Xid en mi instancia Linux de EC2 acelerada por la GPU de NVIDIA?

8 minutos de lectura
0

Al ejecutar la aplicación en una instancia Linux de Amazon Elastic Compute Cloud (Amazon EC2) acelerada por la GPU de NVIDIA, esta fallaba y encontraba errores Xid específicos de la GPU en el registro del sistema. Quiero recuperar la información de diagnóstico de la GPU y solucionar los errores de Xid relacionados con la GPU.

Descripción corta

AWS ofrece varias familias de instancias de EC2 con aceleración mediante GPU. Las GPU se transfieren a las instancias invitadas de todas las familias de instancias de EC2 aceleradas por GPU. Esto le permite utilizar todas las capacidades del hardware de la GPU.

Resolución

Lectura e interpretación de los diagnósticos nvidia-smi

Utilice la herramienta nvidia-smi para obtener estadísticas y diagnósticos sobre el estado y el rendimiento de las GPU de NVIDIA que están conectadas a su instancia. El controlador de GPU de NVIDIA proporciona automáticamente esta herramienta, incluida cualquier variante de la imagen de máquina de Amazon (AMI) de aprendizaje profundo. Para obtener más información sobre la instalación del controlador de GPU de NVIDIA para cualquier familia de instancias de GPU, consulte Instalación de controladores NVIDIA en instancias de Linux.

Ejecute el comando sudo nvidia-smi -q para consultar las estadísticas.

Ejemplo de estadísticas de memoria

ECC Errors
        Volatile                              # Errors counted since last GPU driver reload
            SRAM Correctable            : 0
            SRAM Uncorrectable          : 0
            DRAM Correctable            : 0
            DRAM Uncorrectable          : 0
        Aggregate                             # Errors counted for the life of the GPU
            SRAM Correctable            : 0
            SRAM Uncorrectable          : 0
            DRAM Correctable            : 0
            DRAM Uncorrectable          : 0

Todas las generaciones de GPU de NVIDIA registran estadísticas de memoria agregadas y volátiles del hardware de la GPU. Tenga en cuenta que los contadores de errores de ECC agregados persisten durante toda la vida útil de la GPU. Un valor positivo no indica que la instancia tenga un problema de hardware o una GPU defectuosa. El valor positivo puede ser anterior, por lo que es importante revisar las métricas volátiles.

Sin embargo, los errores de ECC volátiles se incrementan desde cero, a partir de la última vez que se recargó el controlador de la GPU. Los errores de ECC no corregibles se incrementan durante la vida útil de la instancia. Si los errores de ECC son volátiles, es posible que tenga que reiniciar la instancia o restablecer la GPU. Según el tipo de instancia y la generación de la GPU, con el reinicio se inicia el retiro de la página o la reasignación de filas para las páginas con mala memoria.

Instancias P3, P3dn, G4dn

    Retired Pages
        Single Bit ECC              : 0
        Double Bit ECC              : 0
        Pending Page Blacklist      : No

Las primeras generaciones de GPU de NVIDIA utilizan la retirada dinámica de páginas. Puede ignorar los errores de un solo bit porque, por lo general, son benignos. El firmware de la GPU identifica los errores de doble bit.

Si el firmware de la GPU identifica errores de doble bit, la GPU detiene el procesamiento y hace que la aplicación se cierre abruptamente. Si se producen errores de doble bit, se registra un error Xid en el registro del sistema operativo (SO) y el estado de Lista negra de páginas pendientes es . Para resolver estos errores, reinicie la instancia para retirar la ubicación de memoria defectuosa. Tras el reinicio, el estado de Lista negra de páginas pendientes se restablece en No.

Nota: Los contadores de errores persisten durante toda la vida útil de la GPU. Por lo tanto, un contador distinto de cero en el lanzamiento de la instancia no indica que exista un problema de hardware o que la GPU esté defectuosa.

Instancias P4d, P4de, G5 y G5g

    Remapped Rows
        Correctable Error                 : 0 # Can safely ignore.
        Uncorrectable Error               : 0 # If > 0, review system logs for Xid errors
        Pending                           : No # If Yes, an instance reboot or GPU reset is required.
        Remapping Failure Occurred        : No # Should always be No. If Yes, please stop/start the instance.

Las familias de instancias posteriores con GPU A100 y A10G aíslan y contienen los errores de memoria mediante la reasignación de filas. Igual que el retiro dinámico de páginas, la reasignación de filas evita la reutilización de ubicaciones de memoria degradadas conocidas. La reasignación de filas reemplaza el esquema de retirada de páginas en las GPU de generación anteriores.

Puede ignorar los errores de memoria corregibles. Los errores que no se pueden corregir pueden provocar errores o salidas bruscas de la aplicación. Los errores incorregibles se registran en el registro del sistema operativo como errores Xid.

Las filas reasignadas pendientes que se activan después de un error no corregible requieren un restablecimiento de la GPU para eliminar la ubicación de memoria defectuosa. Reinicie la instancia para restablecer la GPU. También puede ejecutar el siguiente comando para restablecer manualmente la GPU:

sudo nvidia-smi -i <GPU UUID> -r

Si se produce un error de reasignación, detenga e inicie la instancia. Al detener e iniciar la instancia, se migra la instancia a un nuevo host subyacente con una GPU en buen estado.

Detección de GPU en mal estado

AWS utiliza la automatización para realizar diagnósticos con regularidad y detectar GPU en mal estado. Cualquier GPU que se encuentre en mal estado debido a errores de hardware se acabará identificando y se reemplazará automáticamente.

Modos de fallo

El controlador de GPU de todas las generaciones de GPU de NVIDIA escribe los errores en los registros del sistema operativo como errores Xid. Para ver la categorización y las descripciones de estos errores, consulte Errores Xid en el sitio web de NVIDIA.

La siguiente lista de errores comunes de Xid incluye prácticas recomendadas para resolver problemas:

Número de GPU incorrecto o faltan GPU

Ejecute el comando siguiente:

nvidia-smi —list-gpus | wc -l

En el resultado del comando, asegúrese de que la cantidad de GPU conectadas coincide con la cantidad esperada de GPU para su tipo de instancia. Si falta una GPU, detenga e inicie la instancia.

Xid 48: se ha producido un DBE.
Xid 63: se ha retirado correctamente una página.
Xid 64: una página no pudo retirarse debido a un error.

Los errores anteriores indican que se produjo un error de ECC. Para resolver este problema, siga los pasos de la sección Número de GPU incorrecto o faltan GPU.

NVRM: Xid 79 (PCI: 0000:00:00): la GPU se ha caído del bus.

El error Xid 79 indica que la instancia perdió la comunicación con la GPU subyacente. Para resolver este problema, reinicie la instancia. Si el problema persiste después de reiniciar, detenga e inicie la instancia.

ADVERTENCIA: infoROM está dañado en la GPU 0000:00:00.0

El error infoROM está dañado indica que una parte del firmware de la GPU está dañada. Para resolver este problema, reinicie la instancia o restablezca la GPU. Si el problema persiste después de reiniciar, detenga e inicie la instancia.

NVRM: Xid 119 (PCI:0000:00:00): Se ha agotado el tiempo de espera para RPC de GSP.
NVRM: Xid 120 (PCI:0000:00:00): error de GSP: la tarea 1 generó un código de error...

Los errores anteriores se producen cuando el procesador de sistemas de GPU (GSP) está encendido. Compruebe que el GSP esté desactivado desde el controlador de la GPU o el módulo del núcleo.

Prácticas recomendadas

  • Cuando sea posible, utilice el controlador más reciente y el tiempo de ejecución de CUDA. Con frecuencia se introducen correcciones, mejoras y optimizaciones en las versiones más recientes del controlador de la GPU. Sin embargo, estas actualizaciones pueden contener cambios funcionales. Primero, organice y pruebe las actualizaciones de los controladores en las instancias de GPU que no sean de producción.
  • Igual que las CPU x86 comunes con turbo boost, las GPU tienen una velocidad de reloj de núcleo y memoria que cambia dinámicamente según la carga. Para obtener el mejor rendimiento, ajuste constantemente las velocidades del núcleo de la GPU y del reloj de la memoria a sus velocidades máximas. Para obtener más información, consulte Optimizar la configuración de GPU.
  • Desactive el GSP. En las generaciones de instancias recientes, las GPU de NVIDIA incluyen la función de firmware GSP. El GSP está diseñado para facilitar la inicialización de la GPU y otras tareas de gestión. Para obtener más información, consulte Desactivación del firmware GSP en el sitio web de NVIDIA.
  • Utilice el agente Amazon CloudWatch para supervisar las GPU. El agente CloudWatch admite de forma nativa las métricas de GPU de NVIDIA que puede recopilar y supervisar desde CloudWatch. Para obtener más información, consulte Recopilación de métricas de GPU de NVIDIA.

Contactar con AWS Support

Proporcione el ID de su instancia y el resultado del comando nvidia-smi -q en su caso de soporte.

Además, ejecute el comando sudo nvidia-bug-report.sh que se incluye con el controlador de la GPU de NVIDIA. El script nvidia-bug-report.sh captura los registros clave y otra información de diagnóstico. El script crea un archivo de registro comprimido denominado nvidia-bug-report.log.gz en su directorio de trabajo actual que puede recuperar y proporcionar a AWS Support.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses