Supervisa instancias de Compute Engine y clústeres de Slurm

En este documento, se explica cómo usar los paneles de Cloud Monitoring para supervisar las instancias de A4X Max, A4X, A4, A3 Ultra y A3 Mega que creaste con capacidad vinculada a la reserva. El uso de estos paneles te ayuda a identificar y solucionar los cuellos de botella en el rendimiento de tus instancias independientes de Compute Engine o clústeres de Slurm, lo que minimiza el tiempo de inactividad en tus cargas de trabajo.

Si creas paneles personalizados o usas los paneles prediseñados de Monitoring, puedes supervisar lo siguiente:

  • Estado de la instancia de procesamiento

  • Rendimiento de GPU

  • Eficiencia de transmisión de la red

  • Eficiencia de la red entre bloques y subbloques

  • Eficiencia de la carga de trabajo de aprendizaje automático (AA)

  • Detección de rezagados

  • Detección de cargas de trabajo que no responden

Para supervisar los clústeres de Cluster Director, consulta Supervisa el rendimiento del clúster con paneles prediseñados.

Antes de comenzar

Antes de supervisar tu carga de trabajo, si aún no lo hiciste, completa los siguientes pasos:

Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud , no necesitas configurar la autenticación.

Limitaciones

  • Las métricas de este documento solo se admiten para las cargas de trabajo que se ejecutan en instancias de procesamiento que cumplen con todos los siguientes criterios:

    • Las instancias de procesamiento deben crearse como instancias independientes de Compute Engine o como parte de un clúster de Slurm.
    • Las instancias de procesamiento deben haberse creado con capacidad vinculada a la reserva.
    • Las instancias de procesamiento deben usar la serie de máquinas A4X Max, A4X, A4, A3 Ultra o A3 Mega.
      • Sin embargo, la detección de rezagados también admite instancias de máquina virtual (VM) que usan la serie de máquinas A3 Mega.

Las métricas de este documento solo se admiten para las cargas de trabajo que se ejecutan en instancias de procesamiento que cumplen con todos los siguientes criterios:

  • Las instancias de procesamiento deben crearse como instancias independientes de Compute Engine o como parte de un clúster de Slurm.
  • Las instancias de procesamiento deben haberse creado con capacidad reservada.
  • Las instancias de procesamiento deben usar la serie de máquinas A4X Max, A4X, A4, A3 Ultra o A3 Mega.

Para supervisar las métricas de la carga de trabajo de AA, debes configurar la supervisión de tu carga de trabajo.

Limitaciones de la detección de rezagados

Las métricas de detección de rezagados tienen las siguientes limitaciones adicionales:

  • En el caso de las series de máquinas compatibles que no sean A3 Mega, la detección de rezagados solo admite instancias de procesamiento que habilitan la biblioteca de Collective Communication Analyzer (CoMMA) para exportar la telemetría de NCCL a los servicios de Google Cloud . Para obtener más información, consulta la descripción general de CoMMA.
  • Por lo general, la detección de rezagados tarda hasta 10 minutos en informar sobre un rezagado.
  • A diferencia de las otras métricas de este documento, no puedes filtrar las métricas de detección de rezagados de tus proyectos por clúster, bloque, subbloque o instancia de procesamiento. Sin embargo, puedes filtrar las consultas de los registros de detección de rezagados por el ID de una o más instancias de procesamiento que se sospecha que son rezagadas.

Limitaciones de la detección de cargas de trabajo que no responden

Las métricas de detección de cargas de trabajo que no responden solo admiten instancias de procesamiento que usan la biblioteca de Collective Communication Analyzer (CoMMA) para exportar la telemetría de NCCL a los servicios de Google Cloud . Para obtener más información, consulta la descripción general de CoMMA.

Roles obligatorios

Para obtener los permisos que necesitas para supervisar las métricas de las cargas de trabajo de AI Hypercomputer, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Para ver las métricas en Cloud Monitoring, debes tener el rol de Editor de Monitoring (roles/monitoring.editor) en el proyecto.
  • Para ver los registros de detección de rezagados en Logging, obtén el rol de Visualizador de registros (roles/logging.viewer) en el proyecto.

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para supervisar las métricas de las cargas de trabajo de AI Hypercomputer. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para supervisar las métricas de las cargas de trabajo de AI Hypercomputer:

  • Para ver los paneles, haz lo siguiente: monitoring.dashboards.get en el proyecto
  • Para crear paneles, haz lo siguiente: monitoring.dashboards.create en el proyecto.
  • Para ver las entradas de registro: logging.logEntries.list en el proyecto

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Métricas disponibles

Según tu caso de uso, las siguientes métricas están disponibles para supervisar tus instancias de procesamiento y clústeres de Slurm:

Para obtener información sobre cómo ver estas métricas, consulta Visualiza métricas en este documento.

Métricas de infraestructura

Para supervisar el estado, el rendimiento y el rendimiento de la red de las GPUs conectadas a tus instancias de procesamiento, puedes usar las siguientes métricas:

Para obtener una descripción general de las métricas disponibles en Compute Engine, consulta Métricas deGoogle Cloud .

Métricas de salud de la GPU

Para supervisar el estado de tus GPUs, usa las siguientes métricas:

Nombre Tipo de métrica Serie de máquinas compatible Descripción
Estado de la máquina machine/machine_status A4X Max, A4X, A4, A3 Ultra o A3 Mega Indica si la máquina que usa la instancia de procesamiento está en buen estado o si está en mal estado y requiere reparación.
Estado de NVSwitch instance/gpu/nvswitch_status A4X Max, A4X, A4, A3 Ultra o A3 Mega Indica si un conmutador NVLink en una GPU de NVIDIA conectada a una instancia de procesamiento tiene problemas.
Estado de la infraestructura de la VM instance/gpu/infra_health A4X, A4, A3 Ultra o A3 Mega El estado del clúster, el bloque, el subbloque y el host en el que se ejecutan tus instancias de procesamiento. Si esta métrica muestra que la infraestructura de una instancia de procesamiento está en mal estado, también describe el problema.
Puntuación de predicción de fallas de la VM instance/gpu/failure_prediction_score A4X, A4, A3 Ultra o A3 Mega La probabilidad de que el host en el que se ejecuta la instancia de procesamiento se degrade en las próximas cinco horas. El valor puede ser de entre 0.0 y 1.0. Cuanto más cerca permanezca el valor de 1.0 durante un período constante, más probable será que la instancia de procesamiento se degrade. En ese caso, te recomendamos que muevas el trabajo a otra instancia de procesamiento y, si tienes problemas con la instancia de procesamiento, informes que su host está defectuoso.

Métricas de rendimiento de la GPU

Para supervisar el rendimiento de tus GPUs, usa las siguientes métricas:

Nombre Tipo de métrica Serie de máquinas compatible Descripción
Utilización acumulada del contexto instance/gpu/accumulated_context_utilization_seconds A4X Max, A4X, A4, A3 Ultra o A3 Mega Es el tiempo total, en segundos, que la GPU está ocupada procesando una carga de trabajo.
Consumo de energía de la GPU instance/gpu/power_consumption A4X Max, A4X, A4, A3 Ultra o A3 Mega Potencia en vatios (W) y en valores decimales que consumen las GPUs individuales del host. En el caso de las instancias de procesamiento con varias GPUs conectadas, la métrica proporciona el consumo de energía por separado para cada GPU del host.
Uso de SM instance/gpu/sm_utilization A4X Max, A4X, A4, A3 Ultra o A3 Mega Un valor distinto de cero indica que los multiprocesadores de transmisión (SM) de tus GPUs se están usando de forma activa.
Temperatura de GPU instance/gpu/temperature A4X Max, A4X, A4, A3 Ultra o A3 Mega La temperatura en grados Celsius (℃) y en valores decimales de las GPUs individuales del host. En el caso de las instancias de procesamiento con varias GPUs conectadas, la métrica proporciona la temperatura por separado para cada GPU en el host.
Margen térmico de GPU instance/gpu/tlimit A4X Max, A4X, A4, A3 Ultra o A3 Mega Es el margen térmico en grados Celsius (℃) y en valores decimales que tienen las GPUs individuales antes de que deban reducir su velocidad debido a la alta temperatura. En el caso de las instancias de procesamiento con varias GPUs conectadas, la métrica proporciona el margen térmico por separado para cada GPU del host.

Métricas de rendimiento de la red de la GPU

Para supervisar el rendimiento de la red de tus GPUs, usa las siguientes métricas. Para supervisar los conmutadores de red ToR de backend, consulta Métricas de conmutadores ToR.

Nombre Tipo de métrica Serie de máquinas compatible Descripción
Cambios en la vinculación de operadores instance/gpu/link_carrier_changes A4X, A4, A3 Ultra o A3 Mega Indica con qué frecuencia cambia el operador del vínculo de red en un minuto.
RTT de la red instance/gpu/network_rtt A4X, A4, A3 Ultra o A3 Mega Es el tiempo de ida y vuelta, medido en microsegundos, que tardan los datos de red en viajar entre una fuente y un destino.
Tráfico de red en la interconexión de bloques instance/gpu/network/inter_block_tx A4X, A4, A3 Ultra o A3 Mega Cantidad de bytes de tráfico de red entre bloques.
Tráfico de red en el interbloque instance/gpu/network/inter_subblock_tx A4X, A4, A3 Ultra o A3 Mega Cantidad de bytes de tráfico de red entre subbloques.
Tráfico de red en el subbloque interno instance/gpu/network/intra_subblock_tx A4X, A4, A3 Ultra o A3 Mega Es la cantidad de bytes de tráfico de red dentro de un solo subbloque.
Velocidad activa de NVLink instance/gpu/nvlink_active_speed A4X Max, A4X, A4, A3 Ultra o A3 Mega Es la velocidad actual del puerto de la vinculación de acceso, en GBps.
Bytes de RX de capacidad de procesamiento instance/gpu/throughput_rx_bytes A4X, A4, A3 Ultra o A3 Mega Es la cantidad de bytes recibidos del tráfico de red.
Bytes de capacidad de procesamiento de Tx instance/gpu/throughput_tx_bytes A4X, A4, A3 Ultra o A3 Mega Es la cantidad de bytes transmitidos al tráfico de red.

Métricas del conmutador ToR

En el caso de los clústeres A4X Max y A4X, puedes supervisar la telemetría del conmutador de red ToR de backend para hacer lo siguiente durante el entrenamiento de AA distribuido:

  • Observa el estado del conmutador y el puerto.
  • Evalúa la capacidad de ancho de banda disponible y las profundidades de las colas de búfer.
  • Diagnostica descartes de paquetes, errores, fluctuaciones de la interfaz y eventos de administración de congestión.

Estas métricas usan el tipo de recurso supervisado compute.googleapis.com/NetworkSwitch y el prefijo de tipo de métrica compute.googleapis.com/. En el Explorador de métricas, selecciona el tipo de recurso NetworkSwitch (compute.googleapis.com/NetworkSwitch).

Las métricas de cambio se organizan en las siguientes categorías:

Cómo cambiar las métricas de estado

Usa las métricas que se indican en esta sección para hacer lo siguiente:

  • Verifica el estado operativo de los puertos del conmutador.
  • Supervisa el uso de CPU y memoria del conmutador.
  • Verifica los tiempos de inicio para detectar reinicios inesperados.
Nombre Tipo de métrica Serie de máquinas compatible Descripción
Estado de la portabilidad network_switch/port_status A4X Max o A4X Indica el estado operativo de la interfaz física (puerto) del conmutador de red. El valor de la métrica siempre es 1 para la agregación. El estado real se proporciona en la etiqueta status (como UP o DOWN).
Etiquetas clave: port_identifier, status, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
Uso de CPU network_switch/cpu_utilization A4X Max o A4X El uso de CPU del conmutador de red, medido como una fracción de 0.0 a 1.0.
Etiquetas de clave: subblock_id, block_id, reservation_id, switch_type.
Memory used network_switch/memory_used A4X Max o A4X Memoria que usa el conmutador de red, en bytes.
Etiquetas de clave: subblock_id, block_id, reservation_id, switch_type.
Memoria total network_switch/total_memory_bytes A4X Max o A4X Capacidad total de memoria del conmutador de red, en bytes.
Etiquetas de clave: subblock_id, block_id, reservation_id, switch_type.
Tiempo de inicio network_switch/boot_time_in_ns A4X Max o A4X Es la marca de tiempo de inicio del conmutador de red, en nanosegundos desde la época de Unix.
Etiquetas de clave: subblock_id, block_id, reservation_id, switch_type.
Cambia las métricas de capacidad y de filas

Para hacer un seguimiento de la capacidad de red utilizable en comparación con la capacidad de referencia y supervisar las profundidades de la cola de búfer y las pérdidas de la cola en el conmutador, usa las siguientes métricas:

Nombre Tipo de métrica Serie de máquinas compatible Descripción
Capacidad de referencia network_switch/baseline_capacity_kbps A4X Max o A4X Es la capacidad total potencial de banda ancha de referencia de una conexión de un conmutador ToR al superbloque, en kilobits por segundo (kbit/s).
Etiquetas de clave: subblock_id, block_id, reservation_id, switch_type.
Capacidad efectiva network_switch/effective_capacity_kbps A4X Max o A4X La capacidad operativa utilizable de una conexión de conmutador ToR al superbloque, en kilobits por segundo (kbit/s). Esta métrica refleja las reducciones de capacidad causadas por vínculos degradados o sin conexión.
Etiquetas de clave: subblock_id, block_id, reservation_id, switch_type.
Profundidad máxima de la cola de salida network_switch/egress_max_queue_depth A4X Max o A4X Es la profundidad máxima de la cola observada durante el ciclo de medición más reciente.
Etiquetas de clave: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
Descartes de la cola de salida network_switch/egress_queue_drops_count A4X Max o A4X Es el recuento acumulativo de paquetes descartados de las colas de salida debido a la congestión de la cola o al agotamiento del búfer.
Etiquetas de clave: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
Descartes en el búfer network_switch/in_buffer_discards A4X Max o A4X Es el recuento acumulativo de paquetes entrantes descartados en la entrada debido a un desbordamiento del búfer.
Etiquetas de clave: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
Métricas de interrupciones, errores y control de flujo de los conmutadores

Usa las métricas de esta sección para diagnosticar los siguientes problemas, que pueden provocar interrupciones en el entrenamiento distribuido o tiempos de espera agotados en la comunicación colectiva (como los tiempos de espera agotados del supervisor de NCCL):

  • Descarte de paquetes, errores de transmisión y fluctuaciones de la conexión física.
  • Errores de palabras de corrección de errores hacia adelante (FEC).
  • Eventos de administración de congestión, como las pausas del Control de flujo basado en prioridad (PFC) y las marcas de Notificación explícita de congestión (ECN)
Nombre Tipo de métrica Serie de máquinas compatible Descripción
Aletas de interfaz network_switch/interface_flaps_count A4X Max o A4X Es el recuento acumulativo de las transiciones de estado del vínculo físico (cambios entre UP y DOWN) en la interfaz del puerto del conmutador.
Etiquetas de clave: port_identifier, subblock_id, block_id, reservation_id, switch_type.
Errores de palabras de FEC network_switch/fec_word_error_count A4X Max o A4X Es el recuento acumulado de errores de palabras de corrección de errores hacia adelante (FEC). Usa la etiqueta booleana correctable (true o false) para distinguir entre errores corregibles y no corregibles.
Etiquetas de clave: port_identifier, correctable, subblock_id, block_id, reservation_id, switch_type.
Paquetes marcados con ECN network_switch/ecn_marked_packets_count A4X Max o A4X Es el recuento acumulativo de paquetes marcados con bits de Notificación de congestión explícita (ECN) debido a que se superó el umbral del búfer.
Etiquetas de clave: port_identifier, subblock_id, block_id, reservation_id, switch_type.
Paquetes de recepción de Pfc network_switch/pfc_rx_packets_count A4X Max o A4X Es el recuento acumulativo de tramas de pausa del Control de flujo basado en prioridad (PFC) recibidas en el puerto.
Nota: Solo se aplica a los entornos dedicados en los que está habilitado el PFC.
Etiquetas de clave: port_identifier, priority_index, subblock_id, block_id, reservation_id, switch_type.
Paquetes de transmisión de Pfc network_switch/pfc_tx_packets_count A4X Max o A4X Es el recuento acumulativo de tramas de pausa del Control de flujo basado en prioridad (PFC) transmitidas desde el puerto para limitar el tráfico entrante.
Nota: Solo se aplica a los entornos dedicados en los que está habilitado el PFC.
Etiquetas de clave: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
Paquetes de transmisión de QoS network_switch/qos_tx_packets A4X Max o A4X Es el recuento acumulativo de paquetes de Calidad de servicio (QoS) transmitidos en la cola especificada.
Etiquetas de clave: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
Recuento de paquetes entrantes network_switch/in_packets_count A4X Max o A4X Es el recuento acumulativo de paquetes entrantes recibidos en el puerto del conmutador.
Etiquetas de clave: port_identifier, subblock_id, block_id, reservation_id, switch_type.
En errores network_switch/in_errors A4X Max o A4X Es el recuento acumulativo de paquetes entrantes recibidos con errores que impidieron su entrega.
Etiquetas de clave: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
En Descartados network_switch/in_discards A4X Max o A4X Es el recuento acumulativo de paquetes entrantes válidos que se descartaron (por ejemplo, debido a la falta de espacio en el búfer).
Etiquetas de clave: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
Errores de salida network_switch/out_errors A4X Max o A4X Es el recuento acumulativo de paquetes salientes que no se pudieron transmitir debido a errores.
Etiquetas de clave: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
Descartes de salida network_switch/out_discards A4X Max o A4X Es el recuento acumulativo de los paquetes salientes que se eligieron para descartar, aunque no se detectaron errores.
Etiquetas de clave: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
Recuento de bytes entrantes network_switch/in_bytes_count A4X Max o A4X Es el recuento acumulativo de bytes entrantes recibidos en el puerto del conmutador.
Etiquetas de clave: port_identifier, subblock_id, block_id, reservation_id, switch_type.
Recuento de bytes salientes network_switch/out_bytes_count A4X Max o A4X Recuento acumulativo de bytes salientes transmitidos desde el puerto del conmutador.
Etiquetas de clave: port_identifier, subblock_id, block_id, reservation_id, switch_type.

Métricas de errores fatales de GPU

Para supervisar los errores que detectan tus GPUs y que podrían forzar la detención de tus instancias de procesamiento o afectar negativamente su rendimiento, usa las siguientes métricas:

Nombre Tipo de métrica Serie de máquinas compatible Descripción
Error de tiempo de ejecución de NVLink instance/gpu/nvlink_runtime_error A4X Max o A4X Indica si se produjo un error de tiempo de ejecución de NVLink.
Errores de ECC de DRAM no corregibles instance/gpu/dram_uncorrectable_ecc_error_count A4X Max o A4X Cantidad de códigos correctores de errores (ECC) no corregibles en una memoria de acceso aleatorio dinámica (DRAM) de GPU.
Recuento de reasignaciones de filas de DRAM no corregible instance/gpu/dram_uncorrectable_row_remapping_count A4X Max o A4X Es la cantidad de reasignaciones de filas debido a errores no corregibles en las DRAM de la GPU.
No se pudo reasignar la fila de DRAM no corregible instance/gpu/dram_row_remapping_failed A4X Max o A4X Indica si falló la reasignación de una fila en las DRAM de la GPU debido a uno de los siguientes problemas:
  • No se pudo volver a asignar un banco de memoria porque ya tiene ocho filas de errores no corregibles reasignadas.
  • No se pudo volver a asignar una fila porque ya se había reasignado.
  • No se pudo realizar un nuevo mapeo porque se produjeron 512 remapeos en total.
Errores de PCIe no corregibles instance/gpu/pcie_fatal_error_count A4X Max o A4X Es la cantidad de errores de interconexión de componentes periféricos express (PCIe) no corregibles.
Errores de ECC de caché no corregibles instance/gpu/cache_uncorrectable_ecc_error_count A4X Max o A4X Es la cantidad de ECC no corregibles en la memoria caché.

Métricas de cargas de trabajo de AA

Para supervisar la productividad, específicamente el goodput, de tus cargas de trabajo de AA, usa las siguientes métricas:

Nombre Tipo de métrica Serie de máquinas compatible Descripción
Tiempo productivo workload/goodput_time A4X, A4, A3 Ultra o A3 Mega Es el tiempo, en segundos, que la carga de trabajo dedica a las actividades de procesamiento útil. Estas actividades son tareas centrales y útiles, como un pase hacia adelante o hacia atrás durante el entrenamiento de modelos.
Tiempo no productivo workload/badput_time A4X, A4, A3 Ultra o A3 Mega Es el tiempo, en segundos, que la carga de trabajo dedica a las actividades de badput. Estas actividades son tareas de sobrecarga, como la carga o el preprocesamiento de datos para el entrenamiento.

Métricas de detección de rezagados

Las métricas de detección de rezagados te ayudan a notar y a identificar los rezagados sospechosos. Los rezagados son fallos de un solo punto que no provocan fallos, pero que, con el tiempo, ralentizan toda la carga de trabajo.

Para supervisar la detección de rezagados en tus VMs, usa la siguiente métrica:

Nombre Tipo de métrica Serie de máquinas compatible Descripción
Rezagados sospechosos instance/gpu/straggler_status A4X, A4, A3 Ultra o A3 Mega Indica si se sospecha que una VM es rezagada y afecta el rendimiento de la carga de trabajo. Te recomendamos que tomes medidas en relación con los rezagados sospechosos solo cuando otras métricas indiquen que la carga de trabajo está experimentando problemas.

También puedes consultar las métricas de detección de rezagados en las entradas de registro de una instancia de A4X, A4, A3 Ultra o A3 Mega. Por ejemplo, puedes usar las siguientes consultas:

Descripción Consulta
Registros con rezagados sospechosos para VMs específicas. Usa esta consulta para verificar si hay rezagados sospechosos para una carga de trabajo específica en tu proyecto.
    logName=~ "/logs/compute.googleapis.com%2Fworkload_diagnostic" AND jsonPayload.suspectedStragglersDetection.numNodes > 0 AND jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
    

Reemplaza INSTANCE_ID por el ID de una VM. Para cada VM adicional que quieras especificar, agrega la siguiente condición a la consulta:

    OR jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
    
Todos los registros de la detección de rezagados de tu proyecto. Usa esta consulta para verificar si el servicio de detección de rezagados se está ejecutando cuando no se detectan rezagados sospechosos. (Debido a las limitaciones, no puedes filtrar los registros sin rezagados sospechosos por VMs específicas).
    logName=~ "/logs/compute.googleapis.com%2Fworkload_diagnostic"
    

Las métricas de detección de rezagados son particularmente útiles para las cargas de trabajo de AA a gran escala por los siguientes motivos:

  • Las cargas de trabajo de AA a gran escala son muy susceptibles a los rezagados. Las cargas de trabajo de AA a gran escala usan computación síncrona y distribuida de forma masiva. (En otras palabras, tienen muchos componentes altamente interdependientes que se ejecutan de forma simultánea). Esta arquitectura hace que las cargas de trabajo de AA a gran escala sean muy susceptibles a fallas de un solo punto, como los rezagados.

  • Es muy difícil detectar y señalar los rezagados en las cargas de trabajo de AA a gran escala. Como referencia, ten en cuenta que existen dos tipos de fallas de punto único:

    • Fallas de detención: Son fallas que provocan que todo el sistema se detenga, por ejemplo, errores de host y eventos de mantenimiento. Son relativamente fáciles de detectar y resolver.

    • Fallas lentas: Son fallas que provocan una degradación grave del rendimiento sin fallas. Son muy difíciles de identificar y depurar.

    Debido a su naturaleza de falla lenta, los rezagados son inherentemente difíciles de detectar y localizar, especialmente en cargas de trabajo síncronas a gran escala.

Métricas de detección de cargas de trabajo que no responden

Las métricas de detección de cargas de trabajo que no responden te ayudan a hacer lo siguiente:

  • Detectar cuando se detiene una carga de trabajo completa (a veces, se conoce como NCCL hang)
  • Comprender por qué se detuvo la carga de trabajo, por ejemplo, si se debió a una falla del proceso o a una red detenida

Para detectar y diagnosticar cargas de trabajo que no responden en tus instancias de procesamiento, usa las siguientes métricas:

Nombre Tipo de métrica Serie de máquinas compatible Descripción
Se detectaron eventos de carga de trabajo que no responden con la telemetría de NCCL instance/gpu/nccl_hang A4X Max, A4X, A4 y A3 Ultra Es la cantidad de eventos de carga de trabajo sin respuesta detectados, como una serie temporal.

Habilita la detección de cargas de trabajo que no responden

Para habilitar la detección de cargas de trabajo que no responden, debes habilitar CoMMA con telemetría de latidos, un ping periódico que indica que se está ejecutando una carga de trabajo. En las versiones recientes de CoMMA, esta opción está habilitada de forma predeterminada. Sin embargo, si usas la versión de CoMMA incluida en la versión 1.1.1 del paquete NICCL/gIB, debes habilitar manualmente la telemetría de latidos. Para verificar qué versión del paquete de NICCL/gIB usas, consulta Cómo verificar la versión de NCCL y gIB.

Para habilitar manualmente la telemetría de latidos para CoMMA, especifica las siguientes variables de entorno en tu entorno de entrenamiento:

NCCL_PROFILER_HEARTBEAT=true

NCCL_PROFILER_HEARTBEAT_UPLOAD_INTERVAL=10s

Usa NCCL_PROFILER_HEARTBEAT para activar o desactivar la telemetría de latidos y NCCL_PROFILER_HEARTBEAT_UPLOAD_INTERVAL para especificar la frecuencia de la telemetría de latidos. Para obtener más información, consulta Variables de entorno de CoMMA.

Cómo desactivar la detección de cargas de trabajo que no responden

Para desactivar la detección de cargas de trabajo que no responden, desactiva la telemetría de latidos en CoMMA especificando la siguiente variable de entorno en tu entorno de entrenamiento:

NCCL_PROFILER_HEARTBEAT=false

Comprende por qué las cargas de trabajo no responden

Para comprender por qué una carga de trabajo no responde, verifica el valor de la etiqueta hang_reason completando los siguientes pasos:

  1. En la consola de Google Cloud , accede a la página  Explorador de métricas:

    Acceder al Explorador de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. Busca la siguiente métrica:

    compute.googleapis.com/instance/gpu/nccl_hang
    
  3. Usa la función Agregación y selecciona las siguientes etiquetas:

    • instance_id
    • hang_reason

En la siguiente tabla, se enumeran los valores posibles para la etiqueta, lo que significan esos valores sobre tus cargas de trabajo y los próximos pasos recomendados.

Valor de etiqueta Descripción Próximos pasos recomendados
MissingHeartbeatIssue Se detuvo la telemetría de latidos para uno o más rangos, lo que suele indicar una falla fatal del proceso o del nodo.
  • Verifica si aún se puede acceder a la instancia.
  • Verifica si fallaron los procesos de la carga de trabajo.
  • Verifica si hay eventos de memoria insuficiente (OOM), como dmesg, en los registros del sistema.
  • Busca fallas de hardware o errores de XID de NVIDIA.
StalledRankIssue Se sigue recibiendo la telemetría de latidos, pero los rangos no avanzan en las operaciones de NCCL.
  • Investiga posibles interbloqueos en las operaciones a nivel de la app.
  • Comprueba si el proceso de aplicación está atascado en una operación que le impide comunicarse con otros, como la computación o el punto de control.
MissingCommunicatorIssue Todos los rangos que pertenecen a un comunicador de NCCL dejaron de avanzar.
  • Es posible que se haya interrumpido tu carga de trabajo o que sus comunicadores de NCCL se hayan cerrado de forma abrupta. Si esperas que una carga de trabajo se ejecute sin interrupciones en esta instancia de VM, verifica si la carga de trabajo se interrumpió o se apagó de forma anormal.
NoHangIssue Es el valor predeterminado. No se detectó ningún problema.
  • No es necesario que realices ninguna acción.

Ver métricas

Para ver las métricas de tus instancias de procesamiento y clústeres de Slurm, usa los paneles de Monitoring de la siguiente manera:

Si tienes problemas cuando usas un panel, consulta Soluciona problemas de rendimiento lento.

Usa paneles prediseñados

Puedes usar los paneles de supervisión prediseñados para AI Hypercomputer y ver las métricas de tus instancias de procesamiento y clústeres de Slurm. También puedes crear una copia de un panel prediseñado y modificarlo para que se adapte a tus necesidades.

Para usar un panel prediseñado para AI Hypercomputer, haz lo siguiente:

  1. En la consola de Google Cloud , accede a la página Paneles :

    Acceder a Paneles

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En la columna Nombre, haz clic en el nombre de uno de los siguientes paneles según las métricas que quieras ver:

    • Para supervisar el estado de las instancias de procesamiento, el rendimiento de la GPU y la detección de rezagados, usa el panel de Supervisión del estado de Cluster Director.

      Para obtener más información sobre cómo usar estas métricas para identificar y analizar problemas, también puedes usar el panel del manual GCE Interactive Playbook - Cluster Director Health Monitoring.

    • Para supervisar la eficiencia de la transmisión de red, usa el panel Cluster Director Transmission Efficiency.

    • Para supervisar la eficiencia de la red entre los bloques y los subbloques, usa el panel Cluster Director Block Network.

      Para obtener más información sobre cómo usar estas métricas para identificar y analizar problemas, también puedes usar el panel del manual GCE Interactive Playbook - Cluster Director Block Network.

    Se abrirá la página de detalles del panel elegido. Puedes usar el selector de período en la barra de herramientas para cambiar el período de los datos.

  3. Opcional: Para crear una copia de un panel y personalizarla según tus necesidades, haz clic en Copiar panel.

Crea paneles personalizados

Para crear un panel personalizado de Monitoring, haz lo siguiente:

  1. Elige las métricas que deseas supervisar. Si aún no lo hiciste, consulta Métricas disponibles en este documento.

  2. Crear y administrar paneles personalizados

Cómo ver los registros de detección de rezagados

Para ver los registros de detección de rezagados con el Explorador de registros, completa los siguientes pasos:

  1. En la consola de Google Cloud , ve a la página Explorador de registros del :

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

    De forma predeterminada, la página consulta todos los registros de tu proyecto. Haz clic en Detener consulta.

  2. Usa el selector de período en la barra de herramientas para seleccionar el período que deseas analizar.

  3. En el panel Consulta, ingresa una consulta para los registros de detección de rezagados.

  4. Haga clic en Ejecutar consulta.

A continuación, se muestra un ejemplo de una entrada de registro de detección de rezagados.

  {
    ...
    "jsonPayload": {
      ...
      "@type": "type.googleapis.com/ml.aitelemetry.performancedebugging.output.NetworkStragglersOutput",
      "suspectedStragglersDetection": {
        "numNodes": 4,
        "nodes": [
          {
            "latencyMs": 9,
            "instanceId": "INSTANCE_ID_1"
          },
          {
            "latencyMs": 9,
            "instanceId": "INSTANCE_ID_2"
          },
          {
            "instanceId": "INSTANCE_ID_3",
            "latencyMs": 4
          },
          {
            "instanceId": "INSTANCE_ID_4",
            "latencyMs": 0
          }
        ],
        "message": "Suspected stragglers detected."
      }
    },
    "resource": {
      "type": "project",
      "labels": {
        "project_id": "PROJECT_NUMBER"
      }
    },
    ...
    "severity": "INFO",
    "logName": "projects/PROJECT_ID/logs/compute.googleapis.com%2Fworkload_diagnostic",
    ...
  }
  

En la entrada de registro, se incluyen los siguientes campos:

  • numNodes: Es la cantidad de instancias de procesamiento rezagadas sospechosas que se detectaron en el proyecto. En el ejemplo, se detectaron cuatro instancias de procesamiento sospechosas de ser rezagadas.
  • instanceId: Es el ID de una instancia de procesamiento que se detectó como rezagada sospechosa.

¿Qué sigue?