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 la capacidad vinculada a la reserva. El uso de estos paneles te ayuda a identificar y solucionar problemas de cuellos de botella de rendimiento en tus instancias de Compute Engine independientes o clústeres de Slurm, lo que minimiza el tiempo de inactividad en tus cargas de trabajo.
Si creas paneles personalizados o usas paneles de Monitoring predefinidos, puedes supervisar lo siguiente:
Estado de la instancia de procesamiento
Rendimiento de GPU
Eficiencia de la transmisión de red
Eficiencia de la red entre bloques y subbloques
Eficiencia de las cargas 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 de los clústeres con paneles prediseñados.
Antes de comenzar
Antes de supervisar tu carga de trabajo, si aún no lo hiciste, completa los siguientes pasos:
Implementa una carga de trabajo que puedas supervisar. Para saber qué cargas de trabajo son compatibles, consulta las limitaciones de este documento. Para aprender a implementar una carga de trabajo, consulta Descripción general de las opciones de implementación.
Obtén información sobre los servicios de Google Cloud para supervisar las cargas de trabajo:
Las métricas de este documento usan paneles de Monitoring. Obtén más información sobre los paneles de Monitoring, los períodos de retención de Monitoring y los precios de Monitoring.
La detección de rezagados también proporciona entradas de registro en Cloud Logging. Obtén información sobre las interfaces de Logging, los períodos de retención de Logging y los precios de Logging.
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 criterios siguientes:
- Las instancias de procesamiento se deben crear como instancias de Compute Engine independientes 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 las series 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.
Para supervisar las métricas de las cargas 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:
- Para las series de máquinas compatibles que no sean A3 Mega, la detección de rezagados solo admite instancias de procesamiento que habiliten 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.
- La detección de rezagados suele tardar hasta 10 minutos en informar un rezagado.
- A diferencia de las otras métricas de este documento, no puedes filtrar las métricas de detección de rezagados para 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:
Editor de Monitoring (
roles/monitoring.editor) en el proyecto -
Para ver los registros de detección de rezagados en Logging, usa 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.geten el proyecto. -
Para crear paneles, haz lo siguiente:
monitoring.dashboards.createen el proyecto. -
Para ver las entradas de registro:
logging.logEntries.listen 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 supervisar el estado, el rendimiento y el rendimiento de la red de las GPU conectadas a tus instancias de procesamiento, consulta Métricas de infraestructura.
Para supervisar la eficiencia de las GPU en tus cargas de trabajo de AA, consulta Métricas de cargas de trabajo de AA.
Para supervisar las instancias de procesamiento rezagadas sospechosas en las cargas de trabajo de AA con un rendimiento lento, consulta Métricas de detección de rezagados.
Para aprender a 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 GPU 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 estado 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 | Si un conmutador NVLink en una GPU de NVIDIA conectada a una instancia de procesamiento tiene problemas. |
| Estado de la infraestructura de 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, la métrica también describe el problema. |
| Puntuación de predicción de fallas de VM | instance/gpu/failure_prediction_score |
A4X, A4, A3 Ultra o A3 Mega |
Es 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
0.0 a 1.0. Cuanto más cerca esté 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 una instancia de procesamiento diferente y, si
tienes problemas con la instancia de procesamiento, informa que su host está
defectuoso.
|
Métricas de rendimiento de 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 |
|---|---|---|---|
| Uso de contexto acumulado | 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 | Es la potencia en vatios (W) y en valores decimales que se consume en las GPU individuales del host. En el caso de las instancias de procesamiento con varias GPU 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 Streaming Multiprocessors (SM) de tus GPU 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 GPU individuales en el host. En el caso de las instancias de procesamiento con varias GPU conectadas, la métrica proporciona la temperatura por separado para cada GPU del 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 GPU individuales antes de que deban ralentizarse debido a la temperatura alta. En el caso de las instancias de procesamiento con varias GPU conectadas, la métrica proporciona el margen térmico por separado para cada GPU en el host. |
Métricas de rendimiento de la red de GPU
Para supervisar el rendimiento de la red de tus GPU, usa las siguientes métricas. Para supervisar los switches de red ToR de backend, consulta Métricas de switches 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 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 un origen y un destino. |
| Tráfico de red entre bloques | instance/gpu/network/inter_block_tx |
A4X, A4, A3 Ultra o A3 Mega | La cantidad de bytes de tráfico de red entre bloques. |
| Tráfico de red entre subbloques | instance/gpu/network/inter_subblock_tx |
A4X, A4, A3 Ultra o A3 Mega | Es la 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 del vínculo 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 TX de capacidad de procesamiento | 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 interruptor ToR
En el caso de los clústeres A4X Max y A4X, puedes supervisar la telemetría del switch de red de ToR del backend para hacer lo siguiente durante el entrenamiento de AA distribuido:
- Observar el estado de los conmutadores y los puertos
- Evalúa la capacidad de ancho de banda disponible y la profundidad de la cola del búfer.
- Diagnostica descartes de paquetes, errores, cambios de estado de la interfaz y eventos de administración de la 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 conmutadores se organizan en las siguientes categorías:
Métricas de estado y salud del conmutador
Usa las métricas que se indican en esta sección para hacer lo siguiente:
- Verificar el estado operativo de los puertos del interruptor
- Supervisa el uso de CPU y memoria del interruptor.
- 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)
en el switch 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 | Es el uso de CPU del switch 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 | La memoria que usa el switch 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 | Es la capacidad total de memoria del switch 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 switch de red, en nanosegundos desde
el tiempo Unix. Etiquetas de clave: subblock_id, block_id, reservation_id, switch_type.
|
Cambia las métricas de capacidad y de cola
Para hacer un seguimiento de la capacidad de red de referencia en comparación con la capacidad de red utilizable y supervisar la profundidad de la cola del búfer y las pérdidas de cola en el interruptor, 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 de ancho de banda de referencia potencial total de una conexión de 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 | Es 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.
|
| Pérdidas de 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 de entrada | network_switch/in_buffer_discards |
A4X Max o A4X | Es el recuento acumulativo de paquetes entrantes descartados en la entrada debido
al 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 pérdidas, errores y control de flujo del interruptor
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 de comunicación colectiva (como tiempos de espera del guardián de NCCL):
- Descarte de paquetes, errores de transmisión y cambios de estado de vínculos físicos.
- Errores de palabras de corrección de errores de reenvío (FEC).
- Eventos de administración de congestión, como pausas de control de flujo basado en prioridades (PFC) y marcas de notificación de congestión explícita (ECN).
| Nombre | Tipo de métrica | Serie de máquinas compatible | Descripción |
|---|---|---|---|
| Flaps de interfaz | network_switch/interface_flaps_count |
A4X Max o A4X | Es el recuento acumulativo de las transiciones de estado de los vínculos físicos (cambios
entre UP y DOWN) en la interfaz del puerto del interruptor.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 de reenvío (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 explícita de congestión (ECN)
debido a cruces de umbral de búfer. Etiquetas de clave: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Paquetes de PFC rx | network_switch/pfc_rx_packets_count |
A4X Max o A4X | Es el recuento acumulativo de tramas de pausa del control de flujo basado en prioridades (PFC)
recibidas en el puerto. Nota: Solo se aplica a entornos dedicados en los que PFC está habilitado. Etiquetas de clave: port_identifier, priority_index, subblock_id, block_id, reservation_id, switch_type.
|
| Paquetes de PFC TX | network_switch/pfc_tx_packets_count |
A4X Max o A4X | Es el recuento acumulativo de tramas de pausa del control de flujo basado en prioridades (PFC)
transmitidas fuera del puerto para limitar el tráfico entrante. Nota: Solo se aplica a entornos dedicados en los que PFC está habilitado. 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 de entrada | 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 descartes | 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 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 de entrada | network_switch/in_bytes_count |
A4X Max o A4X | Es el recuento acumulativo de bytes entrantes recibidos en el puerto del interruptor. 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 | Es el recuento acumulativo de bytes salientes transmitidos fuera del
puerto del interruptor. 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 encuentran 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 | Es la cantidad de códigos de corrección 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 de 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 | Si falló una reasignación de filas en las DRAM de GPU debido a uno de
los siguientes problemas:
|
| Errores de PCIe no corregibles | instance/gpu/pcie_fatal_error_count |
A4X Max o A4X | 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, la capacidad de procesamiento útil, 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 principales 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 cargar o procesar previamente datos para el entrenamiento. |
Métricas de detección de rezagados
Las métricas de detección de rezagados te ayudan a identificar y detectar posibles rezagados. Los rezagados son fallas de un solo punto que no provocan fallas y 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 un rezagado que afecta el rendimiento de la carga de trabajo. Te recomendamos que actúes sobre los rezagados sospechosos solo cuando otras métricas indiquen que la carga de trabajo tiene problemas. |
También puedes ver 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 sospechas de retrasos para VMs específicas. Usa esta consulta para verificar si hay posibles rezagados 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
OR jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
|
| Todos los registros de la detección de rezagados para 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). |
|
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 la 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.
Detectar y señalar los rezagados en las cargas de trabajo de AA a gran escala es muy difícil. 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 causan 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 notar y detectar, en especial 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:
- Observa cuando se detiene una carga de trabajo completa (a veces, se denomina bloqueo de NCCL).
- 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 |
|---|---|---|---|
| Eventos de carga de trabajo que no responde detectados 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 que no responden 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 la telemetría de latidos, una señal de ping periódica 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 de la versión 1.1.1 del paquete NICCL/gIB, debes habilitar de forma manual la telemetría de latidos. Para verificar qué versión del paquete de NICCL/gIB estás usando, consulta Verifica la versión de NCCL y gIB.
Para habilitar de forma manual 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.
Desactiva 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:
-
En la consola de Google Cloud , accede a la página leaderboard 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.
Busca la siguiente métrica:
compute.googleapis.com/instance/gpu/nccl_hangUsa la función Agregación y selecciona las siguientes etiquetas:
instance_idhang_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 |
La telemetría de latidos se detuvo para uno o más rangos, lo que suele indicar una falla fatal del proceso o del nodo. |
|
StalledRankIssue |
Aún se recibe la telemetría de latidos, pero los rangos no avanzan en las operaciones de NCCL. |
|
MissingCommunicatorIssue |
Todos los rangos que pertenecen a un comunicador de NCCL dejaron de avanzar. |
|
NoHangIssue |
Es el valor predeterminado. No se detectó ningún problema. |
|
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:
Para ver las métricas de infraestructura y las de detección de rezagados, puedes hacer lo siguiente:
Para obtener una descripción general rápida del estado y el rendimiento de tu infraestructura, o para personalizar un panel existente, usa paneles prediseñados.
Para necesidades de supervisión específicas, crea paneles personalizados.
Para ver las métricas de las cargas de trabajo de AA, consulta la documentación sobre cómo configurar la supervisión de tu carga de trabajo.
Para ver los registros de la detección de rezagados, consulta los registros de detección de rezagados.
Si tienes problemas cuando usas un panel, consulta Soluciona problemas de rendimiento lento.
Usa paneles compilados previamente
Puedes usar los paneles de Monitoring que están compilados previamente 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 compilado previamente para AI Hypercomputer, haz lo siguiente:
-
En la consola de Google Cloud , accede a la página Paneles :
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
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 las GPU y la detección de rezagados, usa el panel Supervisión del estado del director del clúster.
Para obtener más información sobre cómo usar estas métricas para identificar y analizar problemas, también usa el panel de la guía GCE Interactive Playbook - Cluster Director Health Monitoring.
Para supervisar la eficiencia de la transmisión de red, usa el panel Eficiencia de la transmisión de Cluster Director.
Para supervisar la eficiencia de la red entre bloques y subbloques, usa el panel Red de bloques 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 de la guía GCE Interactive Playbook - Cluster Director Block Network.
Se abrirá la página de detalles del panel que elegiste. Puedes usar el selector de período de la barra de herramientas para cambiar el período de los datos.
Opcional: Para crear una copia de un panel y personalizarlo según tus necesidades, haz clic en Copiar panel.
Crea paneles personalizados
Para crear un panel personalizado de Monitoring, haz lo siguiente:
Elige las métricas que quieres supervisar. Si aún no lo hiciste, consulta Métricas disponibles en este documento.
Visualiza 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:
-
En la consola de Google Cloud , ve a la página Explorador de registros del :
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.
Usa el selector de período en la barra de herramientas para elegir el período que deseas analizar.
En el panel Consulta, ingresa una consulta para los registros de detección de rezagados.
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 detectan en el proyecto. En el ejemplo, se detectaron cuatro instancias de procesamiento que se sospecha que son rezagadas.instanceId: Es el ID de una instancia de procesamiento que se detectó como un posible rezagado.