En este documento, se explica cómo supervisar las instancias de Compute Engine A4X Max, A4X, A4, A3 Ultra o A3 Mega que creaste con capacidad reservada. En particular, en este documento, se explica cómo usar los paneles de Cloud Monitoring para identificar y solucionar los cuellos de botella del rendimiento en tus instancias de procesamiento independientes o clústeres de Slurm. El uso de estos paneles te ayuda a minimizar el tiempo de inactividad y los problemas de rendimiento en tus cargas de trabajo.
Cuando creas o usas paneles de Monitoring prediseñados para supervisar instancias de procesamiento independientes o clústeres de Slurm, puedes supervisar lo siguiente:
Estado de la instancia de procesamiento
Rendimiento de la 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
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 se admiten, consulta las limitaciones en este documento. Para obtener información sobre cómo implementar una carga de trabajo, consulta la Descripción general de las opciones de implementación.
Obtén información sobre los Google Cloud servicios para supervisar cargas de trabajo:
Las métricas de este documento usan los 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 más información sobre las interfaces de Logging, los períodos de retención de Logging y los precios de Logging.
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
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 reservada.
- 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.
Para supervisar las métricas de la carga de trabajo de AA, debes configurar la supervisión de tu carga de trabajo.
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 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.
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, haz lo siguiente:
Editor de Monitoring (
roles/monitoring.editor) en el proyecto -
Para ver los registros de detección de rezagados en Logging, sigue estos pasos:
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 GPUs conectadas a tus instancias de procesamiento, consulta Métricas de infraestructura.
Para supervisar la eficiencia de las GPUs en tus cargas de trabajo de AA, consulta Métricas de cargas de trabajo de AA.
Para supervisar las instancias de procesamiento sospechosas de rezagarse en las cargas de trabajo de AA con un rendimiento lento, consulta Métricas de detección de rezagados.
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 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 |
Es la probabilidad de que el host en el que se ejecuta la instancia de procesamiento se deteriore en las próximas cinco horas. El valor puede ser de
0.0 a 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 del 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 | Potencia en vatios (W) y en valores decimales que se consume en 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 en el 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 en el host. En el caso de las instancias de procesamiento con varias GPUs conectadas, la métrica proporciona la temperatura por separado para cada GPU del host. |
| Margen térmico de la 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 GPU
Para supervisar el rendimiento de la red de tus GPUs, usa las siguientes métricas:
| Nombre | Tipo de métrica | Serie de máquinas compatible | Descripción |
|---|---|---|---|
| Cambios en los operadores vinculados | instance/gpu/link_carrier_changes |
A4X, A4, A3 Ultra o A3 Mega | Indica con qué frecuencia cambia el operador del vínculo de red por 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 la 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 subbloque intermedio | 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 recepción de capacidad de procesamiento | instance/gpu/throughput_rx_bytes |
A4X, A4, A3 Ultra o A3 Mega | 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 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 | Es la cantidad de códigos de corrección de errores (ECC) no corregibles en una memoria de acceso aleatorio dinámica (DRAM) de la GPU. |
| Cantidad de reasignaciones de filas de DRAM no corregibles | 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ó el remapeo de una fila en las DRAM de la GPU debido a uno de los siguientes problemas:
|
| 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) que no se pueden corregir. |
| 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 rendimiento ú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 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 detectar los rezagados sospechosos. Los rezagados son fallas de un solo punto que no generan 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 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 tiene 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
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). |
|
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 procesamiento sincrónico y distribuido 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 del 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 señalar, especialmente en cargas de trabajo síncronas a gran escala.
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 métricas de detección de rezagados, puedes hacer lo siguiente:
Para obtener una descripción general rápida del rendimiento y el estado 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 la carga 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 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 prediseñados
Puedes usar los paneles de Monitoring 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 modificarla para que se ajuste a tus necesidades.
Para usar un panel prediseñado 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 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.
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:
Elige las métricas que deseas supervisar. Si aún no lo hiciste, consulta Métricas disponibles en este documento.
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:
-
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 de la barra de herramientas para seleccionar 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 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?
- Observa y supervisa VMs
- Cómo probar clústeres con el verificador de estado del clúster
- Personaliza los paneles para los servicios de Google Cloud
- Soluciona problemas de rendimiento lento