Supervise las GPU con CloudWatch - AMI de aprendizaje profundo

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Supervise las GPU con CloudWatch

Cuando utilice la DLAMI con una GPU, es probable que sienta la necesidad de realizar un seguimiento de su uso durante el entrenamiento o la inferencia. Esto puede resultar útil para optimizar la canalización de datos y ajustar la red de aprendizaje profundo.

Hay dos formas de configurar las métricas de la GPU con CloudWatch:

Configure las métricas con el AWS CloudWatch agente (recomendado)

Integre su DLAMI con el agente CloudWatch unificado para configurar las métricas de la GPU y supervisar la utilización de los coprocesos de la GPU en las instancias aceleradas de Amazon EC2.

Hay cuatro formas de configurar las métricas de la GPU con su DLAMI:

Para obtener más información sobre actualizaciones y parches de seguridad, consulte Parches de seguridad para el agente AWS CloudWatch .

Requisitos previos

Para empezar, debe configurar los permisos de IAM de la instancia Amazon EC2 que permitan a la instancia enviar métricas a ella. CloudWatch Para ver los pasos detallados, consulte Crear roles y usuarios de IAM para usarlos con el agente. CloudWatch

Configuración de métricas de GPU mínimas

Configure las métricas mínimas de GPU mediante el servicio systemd de dlami-cloudwatch-agent@minimal. En este servicio se configuran las siguientes métricas:

  • utilization_gpu

  • utilization_memory

Puede encontrar el servicio systemd de métricas mínimas de GPU preconfiguradas en la siguiente ubicación:

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-minimal.json

Active e inicie el servicio systemd con los siguientes comandos:

sudo systemctl enable dlami-cloudwatch-agent@minimal sudo systemctl start dlami-cloudwatch-agent@minimal

Configuración de métricas de GPU parciales

Configure las métricas parciales de GPU mediante el servicio systemd de dlami-cloudwatch-agent@partial. En este servicio se configuran las siguientes métricas:

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

Puede encontrar el servicio systemd de métricas parciales de GPU preconfiguradas en la siguiente ubicación:

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-partial.json

Active e inicie el servicio systemd con los siguientes comandos:

sudo systemctl enable dlami-cloudwatch-agent@partial sudo systemctl start dlami-cloudwatch-agent@partial

Configure todas las métricas de GPU disponibles

Configure todas las métricas disponibles de GPU mediante el servicio systemd de dlami-cloudwatch-agent@all. En este servicio se configuran las siguientes métricas:

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

  • temperature_gpu

  • power_draw

  • fan_speed

  • pcie_link_gen_current

  • pcie_link_width_current

  • encoder_stats_session_count

  • encoder_stats_average_fps

  • encoder_stats_average_latency

  • clocks_current_graphics

  • clocks_current_sm

  • clocks_current_memory

  • clocks_current_video

Puede encontrar el servicio systemd de todas las métricas disponibles de GPU preconfiguradas en la siguiente ubicación:

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-all.json

Active e inicie el servicio systemd con los siguientes comandos:

sudo systemctl enable dlami-cloudwatch-agent@all sudo systemctl start dlami-cloudwatch-agent@all

Configuración de métricas de GPU personalizadas

Si las métricas preconfiguradas no cumplen sus requisitos, puede crear un archivo de configuración de CloudWatch agente personalizado.

Para crear un archivo de configuración personalizado

Para crear un archivo de configuración personalizado, consulte los pasos detallados en Crear o editar manualmente el archivo de configuración del CloudWatch agente.

Para este ejemplo, suponga que la definición del esquema se encuentra en /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json.

Configure las métricas con su archivo personalizado

Ejecute el siguiente comando para configurar el CloudWatch agente según su archivo personalizado:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config -m ec2 -s -c \ file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json

Parches de seguridad para el agente AWS CloudWatch

Los DLAMI recién lanzados están configurados con los últimos parches de seguridad disponibles para los AWS CloudWatch agentes. Consulte las siguientes secciones para actualizar su DLAMI actual con los últimos parches de seguridad en función del sistema operativo que elija.

Amazon Linux 2

Úselo yum para obtener los parches de seguridad de AWS CloudWatch agentes más recientes para una DLAMI de Amazon Linux 2.

sudo yum update

Ubuntu

Para obtener los últimos parches AWS CloudWatch de seguridad para una DLAMI con Ubuntu, es necesario volver a instalar AWS CloudWatch el agente mediante un enlace de descarga de Amazon S3.

wget https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb

Para obtener más información sobre la instalación del AWS CloudWatch agente mediante los enlaces de descarga de Amazon S3, consulte Instalación y ejecución del CloudWatch agente en sus servidores.

Configure las métricas con el script preinstalado gpumon.py

Una utilidad denominada gpumon.py viene preinstalada en la DLAMI. Se integra CloudWatch y admite la supervisión del uso por GPU: memoria de la GPU, temperatura de la GPU y potencia de la GPU. El script envía periódicamente los datos monitorizados a CloudWatch. Puede configurar el nivel de granularidad de los datos a los que se envían CloudWatch cambiando algunos ajustes del script. Sin embargo, antes de iniciar el script, necesitará configurarlo CloudWatch para recibir las métricas.

Cómo configurar y ejecutar la supervisión de la GPU con CloudWatch
  1. Cree un usuario de IAM o modifique uno existente para tener una política en la que publicar la métrica. CloudWatch Si crea un usuario nuevo, anote las credenciales, ya que las necesitará en el siguiente paso.

    La política de IAM que hay que buscar es «cloudwatch:». PutMetricData La política que se añade es la siguiente:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }
  2. En la DLAMI, ejecute el comando AWS configure y especifique las credenciales de usuario de IAM.

    $ aws configure
  3. Es posible que tenga que realizar algunas modificaciones en la utilidad gpumon antes de ejecutarla. Puede encontrar la utilidad gpumon y el archivo README en la ubicación definida en el siguiente bloque de código. Para obtener más información sobre el script gpumon.py, consulte la ubicación del script en Amazon S3.

    Folder: ~/tools/GPUCloudWatchMonitor Files: ~/tools/GPUCloudWatchMonitor/gpumon.py ~/tools/GPUCloudWatchMonitor/README

    Opciones:

    • Cambie la región en gpumon.py si la instancia NO está en us-east-1.

    • Cambie otros parámetros, como el período del informe CloudWatch namespace o el período sobre el que se informa, constore_reso.

  4. Actualmente, el script solo es compatible con Python 3. Active el entorno de Python 3 de su marco de trabajo preferido o active el entorno general de Python 3 de la DLAMI.

    $ source activate python3
  5. Ejecute la utilidad gpumon en segundo plano.

    (python3)$ python gpumon.py &
  6. Abra https://console.aws.amazon.com/cloudwatch/ en su navegador y seleccione la métrica. Tendrá un espacio de nombres ''. DeepLearningTrain

    sugerencia

    Puede cambiar el espacio de nombres modificando gpumon.py. También puede modificar el intervalo de notificación ajustando store_reso.

El siguiente es un ejemplo de CloudWatch gráfico que informa sobre una ejecución de gpumon.py supervisando un trabajo de entrenamiento en una instancia p2.8xlarge.

Supervisión de GPU activada CloudWatch

Es posible que le interesen estos otros temas sobre la monitorización y optimización de GPU: