Supervisa las VMs de Cloud TPU

En esta guía, se explica cómo usar Google Cloud Monitoring para supervisar tus VMs de Cloud TPU. Supervisión de Google Cloud recopila automáticamente métricas y registros de tu Cloud TPU y su host Compute Engine. Estos datos se pueden usar para supervisar la salud de tu Cloud TPU y Compute Engine.

Las métricas te permiten hacer un seguimiento de una cantidad numérica a lo largo del tiempo, por ejemplo, CPU de procesamiento, de red o de inactividad de TensorCore. Los registros capturan eventos en un momento específico. Las entradas de registro se escriben con tu propio código, Google Cloud de Google Cloud, aplicaciones de terceros y la infraestructura de Google Cloud. También puedes generar métricas a partir de los datos presentes en una entrada de registro creando un métrica basada en registros. También puedes establecer políticas de alertas basadas en métricas valores o entradas de registro.

En esta guía, se analiza Google Cloud Monitoring y se muestra cómo realizar las siguientes acciones:

Requisitos previos

En este documento, se presupone que tienes conocimientos básicos de Google Cloud Monitoring. Debes tener una VM de Compute Engine y Cloud TPU recursos creados antes de que puedas comenzar a generar y trabajar con Google Cloud Monitoring. Consulta la Guía de inicio rápido de Cloud TPU para obtener más detalles.

Métricas

Compute Engine genera automáticamente las métricas de Google Cloud las VMs y el entorno de ejecución de Cloud TPU. Las siguientes métricas se generan VMs de Cloud TPU:

  • memory/usage
  • network/received_bytes_count
  • network/sent_bytes_count
  • cpu/utilization
  • tpu/tensorcore/idle_duration
  • accelerator/tensorcore_utilization
  • accelerator/memory_bandwidth_utilization
  • accelerator/duty_cycle
  • accelerator/memory_total
  • accelerator/memory_used

Pueden pasar hasta 180 segundos entre el momento en que se genera un valor de métrica y cuando se muestra en el Explorador de métricas.

Para obtener una lista completa de las métricas que genera Cloud TPU, consulta Métricas de Cloud TPU de Google Cloud.

Uso de memoria

Se genera la métrica memory/usage para el recurso TPU Worker y hace un seguimiento la memoria usada por la VM de TPU en bytes. Esta métrica se muestrea cada 60 segundos.

Recuento de bytes recibidos de red

Se genera la métrica network/received_bytes_count para TPU Worker. recurso y realiza un seguimiento de la cantidad acumulada de bytes de datos que recibió la VM de TPU. a través de la red en un momento dado.

Recuento de bytes enviados de red

Se genera la métrica network/sent_bytes_count para el recurso TPU Worker y realiza un seguimiento del número de bytes acumulativos que la VM de TPU envió a través de la red a una en un momento determinado.

Uso de CPU

Se genera la métrica cpu/utilization para el recurso TPU Worker. rastrea el uso de CPU actual en el trabajador TPU, representado como porcentaje se muestrean una vez por minuto. Normalmente, los valores se encuentran entre 0.0 y 100.0, pero pueden superen las 100.0.

Duración de inactividad de TensorCore

Se genera la métrica tpu/tensorcore/idle_duration para TPU Worker. y rastrea la cantidad de segundos que el TensorCore de cada chip TPU inactivo. Esta métrica está disponible para cada chip en todas las TPU en uso. Si un procesador TensorCore está en uso, el valor de la duración de inactividad se restablece a cero. Cuando el TensorCore no funciona mientras esté en uso, el valor de la duración de inactividad comenzará a aumentar.

En el siguiente gráfico, se muestra la métrica tpu/tensorcore/idle_duration de una v2-8 VM de TPU que tiene un trabajador. Cada trabajador tiene cuatro chips. En este ejemplo, todas cuatro chips tienen los mismos valores para tpu/tensorcore/idle_duration, así que los gráficos se superponen unos sobre otros.

imagen

Uso de TensorCore

La métrica accelerator/tensorcore_utilization se genera para el recurso GCE TPU Worker y realiza un seguimiento del porcentaje actual del TensorCore que se que se usan. Esta métrica se calcula dividiendo la cantidad de instancias de TensorCore las operaciones realizadas durante un período de muestra según la cantidad máxima de operaciones que se pueden realizar en el mismo período de muestra. Un valor más alto significa mejor en la nube. La métrica de uso de TensorCore es compatible con TPU v4 y versiones posteriores. generaciones.

Uso de memoria y ancho de banda

La métrica accelerator/memory_bandwidth_utilization se genera para la Recurso GCE TPU Worker y realiza un seguimiento del porcentaje actual del acelerador y el ancho de banda de memoria utilizado. Esta métrica se calcula dividiendo la ancho de banda de memoria utilizado durante un período de muestra por el ancho de banda máximo admitido durante el mismo período de muestra. Un valor mayor significa una mejor utilización. El recuerdo La métrica Uso de ancho de banda es compatible con la versión 4 y las generaciones de TPU posteriores.

Ciclo de trabajo del acelerador

Se genera la métrica accelerator/duty_cycle para GCE TPU Worker. recurso y realiza un seguimiento del porcentaje de tiempo durante el período de muestra durante el cual que el acelerador TensorCore procesaba de forma activa. Los valores se encuentran en el rango de 0 en 100 puntos. Un valor mayor significa una mejor utilización de TensorCore. Esta métrica es se informa cuando una carga de trabajo de aprendizaje automático se ejecuta en la VM de TPU. El La métrica del ciclo de trabajo del acelerador es compatible con JAX 0.4.14 y posteriores, PyTorch 2.1 y posteriores, y TensorFlow 2.14.0 y más adelante.

Memoria total del acelerador

Se genera la métrica accelerator/memory_total para GCE TPU Worker. y realiza un seguimiento de la memoria total del acelerador asignada en bytes. Esta métrica se informa cuando una carga de trabajo de aprendizaje automático se ejecuta en la TPU y la VM. La métrica Total de memoria del acelerador es compatible con JAX 0.4.14 y posteriores, PyTorch 2.1 y posteriores, y TensorFlow 2.14.0 y más adelante.

Memoria del acelerador usada

Se genera la métrica accelerator/memory_used para GCE TPU Worker. y realiza un seguimiento de la memoria total del acelerador usada en bytes. Esta métrica es se informa cuando una carga de trabajo de aprendizaje automático se ejecuta en la VM de TPU. El La métrica Memoria usada del acelerador es compatible con JAX 0.4.14 y posteriores, PyTorch 2.1 y posteriores, y TensorFlow 2.14.0 y más adelante.

Cómo ver métricas

Puedes ver las métricas con el Explorador de métricas. en la consola de Google Cloud.

En el Explorador de métricas, haz clic en Seleccionar una métrica y busca TPU Worker. o GCE TPU Worker, según la métrica que te interese. Selecciona un recurso para ver todas sus métricas disponibles. Si la opción Activa está habilitada, solo las métricas con datos de series temporales en los últimos 25 y los horarios de atención. Inhabilita Activa para que se muestren todas las métricas.

También puedes acceder a las métricas mediante llamadas HTTP a curl.

Usa el botón Pruébalo en la documentación de projects.timeSeries.query. para recuperar el valor de una métrica dentro del período especificado.

  1. Completa el nombre con el siguiente formato: projects/{project-name}.
  2. Agrega una consulta a la sección Cuerpo de la solicitud. La siguiente es una consulta de muestra para recuperar la métrica de duración de inactividad correspondiente a la zona especificada de la última cinco minutos.

    fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m
    
  3. Haz clic en Ejecutar para realizar la llamada y ver los resultados de HTTP POST mensaje.

La referencia del lenguaje de consulta de Monitoring este documento tiene más información para personalizar esta consulta.

Crea alertas

Puedes crear políticas de alertas que le digan a Cloud Monitoring para enviar una alerta cuando se cumple una condición.

En los pasos de esta sección, se muestra un ejemplo de cómo agregar una política de alertas para el Duración de inactividad de TensorCore. Cuando esta métrica supere las 24 horas, Cloud Monitoring envía un correo electrónico a la dirección de correo electrónico registrada.

  1. Ve a la consola de Monitoring.
  2. En el panel de navegación, haz clic en Alertas.
  3. Haz clic en Editar canales de notificaciones.
  4. En Correo electrónico, haz clic en Agregar nuevo. Escribe una dirección de correo electrónico, un nombre visible y haz clic en Guardar.
  5. En la página Alertas, haz clic en Crear política.
  6. Haz clic en Seleccionar una métrica y, luego, elige Duración de inactividad de TensorCore y haz clic en Aplicar.
  7. Haz clic en Siguiente y, luego, en Umbral.
  8. En Activador de alertas, selecciona Cualquier serie temporal es una infracción.
  9. En Posición del umbral, selecciona Umbral superior.
  10. En Valor del umbral, escribe 86400000.
  11. Haz clic en Siguiente.
  12. En Canales de notificaciones, selecciona tu canal de notificaciones por correo electrónico y Haz clic en OK.
  13. Escribe un nombre para la política de alertas.
  14. Haz clic en Siguiente y, luego, en Crear política.

Cuando la duración de inactividad de TensorCore supera las 24 horas, se envía un correo electrónico a la dirección de correo electrónico que especificaste.

Logging

Los servicios de Google Cloud, los servicios de terceros y el AA escriben las entradas de registro. frameworks o tu código. Puedes ver los registros con el Explorador de registros API de gcloud. Para obtener más información sobre Google Cloud Logging, consulta Google Cloud Logging.

Los registros de trabajadores de la TPU contienen información sobre un Trabajador de Cloud TPU en una zona específica, por ejemplo, la cantidad de memoria disponible en el trabajador de Cloud TPU (system_available_memory_GiB).

Los registros de recursos auditados contienen información sobre cuándo una Cloud TPU específica se llamó a la API y quién realizó la llamada. Por ejemplo, puedes encontrar información sobre las llamadas a las APIs de CreateNode, UpdateNode y DeleteNode.

Los frameworks de AA pueden generar registros de salida estándar y error estándar. Estos los registros son controlados por variables de entorno y los lee tu entrenamiento secuencia de comandos.

Tu código puede escribir registros en Google Cloud Logging. Para obtener más información, consulta Cómo escribir registros estándar y Cómo escribir registros estructurados.

Consulta registros de Google Cloud

Cuando ves registros en la consola de Google Cloud, la página realiza una consulta predeterminada. Para ver la consulta, selecciona el interruptor de activación de Show query. Puedes modificar la consulta predeterminada o crear una nueva. Para obtener más información, consulta Crea consultas en el Explorador de registros.

Registros de recursos auditados

Para ver los registros de recursos auditados, haz lo siguiente:

  1. Ve al Explorador de registros de Google Cloud.
  2. Haz clic en el menú desplegable Todos los recursos.
  3. Haz clic en Recurso auditado y, luego, en Cloud TPU.
  4. Elige la API de Cloud TPU que te interesa.
  5. Haz clic en Aplicar. Los registros se muestran en los resultados de la consulta.

Haz clic en cualquier entrada de registro para expandirla. Cada entrada de registro tiene varios campos, incluidos los siguientes:

  • logName: el nombre del registro
  • protoPayload ->. @type: Es el tipo del registro.
  • protoPayload ->. resourceName: el nombre de tu Cloud TPU
  • protoPayload ->. methodName: el nombre del método al que se llama (solo registros de auditoría)
  • protoPayload ->. solicitud -> @type: el tipo de solicitud
  • protoPayload ->. solicitud -> nodo: Detalles sobre el nodo de Cloud TPU
  • protoPayload ->. solicitud -> node_id: Es el nombre de la TPU.
  • severity: La gravedad del registro.

Registros de trabajadores de TPU

Para ver los registros de trabajadores de TPU, haz lo siguiente:

  1. Ve al Explorador de registros de Google Cloud.
  2. Haz clic en el menú desplegable Todos los recursos.
  3. Haz clic en TPU Worker.
  4. Selecciona una zona.
  5. Selecciona la Cloud TPU que te interesa.
  6. Haz clic en Aplicar. Los registros se muestran en los resultados de la consulta.

Haz clic en cualquier entrada de registro para expandirla. Cada entrada de registro tiene un campo llamado jsonPayload Expande jsonPayload para ver varios campos, incluidos los siguientes:

  • accelerator_type: tipo de acelerador
  • consumer_project: Es el proyecto en el que reside la Cloud TPU.
  • evententry_timestamp: la hora a la que se generó el registro
  • system_available_memory_GiB: la memoria disponible en el trabajador de Cloud TPU (0 ~ 350 GiB)

Crea métricas basadas en registros

En esta sección, se describe cómo crear métricas basadas en registros. que se usa para configurar paneles y alertas. Para obtener información sobre crear métricas basadas en registros de forma programática, consulta Crea métricas basadas en registros de manera programática con la API de REST de Cloud Logging.

En el siguiente ejemplo, se usa el subcampo system_available_memory_GiB para demostrar cómo crear una métrica basada en registros para supervisar Cloud TPU la memoria disponible de trabajador.

  1. Ve al Explorador de registros de Google Cloud.
  2. En el cuadro de consulta, ingresa la siguiente consulta para extraer todos los datos. entradas de registro que tengan system_available_memory_GiB definido para el trabajador principal de Cloud TPU:

    resource.type=tpu_worker
    resource.labels.project_id=your-project
    resource.labels.zone=your-tpu-zone
    resource.labels.node_id=your-tpu-name
    resource.labels.worker_id=0
    logName=projects/your-project/logs/tpu.googleapis.com%2Fruntime_monitor
    jsonPayload.system_available_memory_GiB:*
    
  3. Haz clic en Crear métrica para mostrar el Editor de métricas.

  4. En Tipo de métrica, elige Distribución.

  5. Escribe un nombre, una descripción opcional y una unidad de medida para tu métrica. Para este ejemplo, escribe “matrix_unit_utilization_percent” y "Uso de MXU" en la sección Name y Description, respectivamente. El filtro se completa previamente con la secuencia de comandos que ingresaste en el Explorador de registros.

  6. Haz clic en Crear métrica.

  7. Haz clic en Ver en el Explorador de métricas para ver tu métrica nueva. Esto podría tardar unos minutos antes de que se muestren tus métricas.

Crea métricas basadas en registros con la API de REST de Cloud Logging

También puedes crear métricas basadas en registros a través de la API de Cloud Logging. Para obtener más información, consulta Crea una métrica de distribución.

Crea paneles y alertas con métricas basadas en registros

Los paneles son útiles para visualizar las métricas (se espera un retraso de aproximadamente 2 minutos). alertas son útiles para enviar notificaciones cuando se produce un error. Para obtener más información, consulta:

Crea paneles

Crear un panel en Cloud Monitoring para la duración de inactividad de TensorCore métrica:

  1. Ve a la consola de Monitoring.
  2. En el panel de navegación, haz clic en Paneles.
  3. Haz clic en Crear panel y, luego, en Agregar widget.
  4. Elige el tipo de gráfico que deseas agregar. Para este ejemplo, elige Línea.
  5. Escribe un título para el widget.
  6. Haz clic en el menú desplegable Seleccionar una métrica (Select a metric) y escribe “Duración de inactividad de Tensorcore”. en el campo de filtro.
  7. En la lista de métricas, selecciona Trabajador de TPU -> Tpu -> Duración de la inactividad de TensorCore.
  8. Para filtrar el contenido del panel, haz clic en el menú desplegable Filtrar.
  9. En Etiquetas de recursos, selecciona project_id.
  10. Elige un comparador y escribe un valor en el campo Valor.
  11. Haz clic en Aplicar.