Monitore GPUs com CloudWatch - AMI de deep learning

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Monitore GPUs com CloudWatch

Ao usar a DLAMI com uma GPU, talvez você descubra que está procurando maneiras de controlar o uso durante o treinamento ou a inferência. Isso pode ser útil para otimizar o pipeline de dados e ajustar sua rede de aprendizado profundo.

Há duas maneiras de configurar as métricas da GPU com CloudWatch:

Configurar métricas com o AWS CloudWatch agente (recomendado)

Integre seu DLAMI com o agente CloudWatch unificado para configurar métricas de GPU e monitorar a utilização de coprocessos de GPU em instâncias aceleradas do Amazon EC2.

Há quatro maneiras de configurar métricas de GPU com a DLAMI:

Para obter mais informações sobre atualizações e patches de segurança, consulte Patches de segurança para o agente AWS CloudWatch

Pré-requisitos

Para começar, você deve configurar as permissões IAM da instância do Amazon EC2 que permitam que sua instância envie métricas para. CloudWatch Para ver etapas detalhadas, consulte Criar funções e usuários do IAM para uso com o CloudWatch agente.

Configurar métricas de GPU mínimas

Configure métricas mínimas de GPU usando o serviço dlami-cloudwatch-agent@minimal systemd. Esse serviço configura as seguintes métricas:

  • utilization_gpu

  • utilization_memory

Você pode encontrar o serviço systemd para métricas mínimas de GPU pré-configuradas no seguinte local:

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

Habilite e inicie o serviço systemd com os seguintes comandos:

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

Configurar métricas de GPU parciais

Configure métricas de GPU parciais usando o serviço dlami-cloudwatch-agent@partial systemd. Esse serviço configura as seguintes métricas:

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

Você pode encontrar o serviço systemd para métricas parciais de GPU pré-configuradas no seguinte local:

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

Habilite e inicie o serviço systemd com os seguintes comandos:

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

Configurar todas as métricas de GPU disponíveis

Configure todas as métricas de GPU disponíveis usando o serviço dlami-cloudwatch-agent@all systemd. Esse serviço configura as seguintes 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

Você pode encontrar o serviço systemd para todas as métricas disponíveis de GPU pré-configuradas no seguinte local:

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

Habilite e inicie o serviço systemd com os seguintes comandos:

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

Configurar métricas de GPU personalizadas

Se as métricas pré-configuradas não atenderem aos seus requisitos, você poderá criar um arquivo personalizado de configuração do CloudWatch agente.

Criar um arquivo de configuração personalizada

Para criar um arquivo de configuração personalizado, consulte as etapas detalhadas em Criar ou editar manualmente o arquivo de configuração do CloudWatch agente.

Neste exemplo, suponha que a definição do esquema esteja localizada em /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json.

Configurar métricas com seu arquivo personalizado

Execute o comando a seguir para configurar o CloudWatch agente de acordo com seu arquivo 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

Patches de segurança para o agente AWS CloudWatch

Os DLAMIs recém-lançados são configurados com os patches de segurança de AWS CloudWatch agentes mais recentes disponíveis. Consulte as seções a seguir para atualizar a DLAMI atual com os patches de segurança mais recentes, dependendo do sistema operacional escolhido.

Amazon Linux 2

Use yum para obter os patches de segurança de AWS CloudWatch agentes mais recentes para um Amazon Linux 2 DLAMI.

sudo yum update

Ubuntu

Para obter os patches de AWS CloudWatch segurança mais recentes para um DLAMI com Ubuntu, é necessário reinstalar o agente usando um link de download AWS CloudWatch do Amazon S3.

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

Para obter mais informações sobre como instalar o AWS CloudWatch agente usando os links de download do Amazon S3, consulte Instalando e executando o CloudWatch agente em seus servidores.

Configurar métricas com o script gpumon.py pré-instalado

Um utilitário chamado gpumon.py é pré-instalado na DLAMI. Ele se integra CloudWatch e oferece suporte ao monitoramento do uso por GPU: memória da GPU, temperatura da GPU e potência da GPU. O script envia periodicamente os dados monitorados para CloudWatch o. Você pode configurar o nível de granularidade dos dados enviados CloudWatch alterando algumas configurações no script. Antes de iniciar o script, no entanto, você precisará configurar CloudWatch para receber as métricas.

Como configurar e executar o monitoramento de GPU com CloudWatch
  1. Crie um usuário do IAM ou modifique um existente para ter uma política para publicar a métrica CloudWatch. Se você criar um novo usuário, anote as credenciais, pois elas serão necessárias na próxima etapa.

    A política do IAM a ser pesquisada é “cloudwatch: PutMetric Data”. A política que é adicionada é a seguinte:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }
    dica

    Para obter mais informações sobre como criar um usuário do IAM e adicionar políticas para CloudWatch, consulte a CloudWatch documentação.

  2. Em sua DLAMI, execute AWS configure e especifique as credenciais de usuário do IAM.

    $ aws configure
  3. Talvez você precise fazer algumas modificações no utilitário gpumon antes de executá-lo. Você pode encontrar o utilitário gpumon e o README no seguinte local definido no seguinte bloco de código. Para obter mais informações sobre o script gpumon.py, consulte a localização do script no Amazon S3.

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

    Opções:

    • Altere a região no gpumon.py se sua instância NÃO estiver em us-east-1.

    • Altere outros parâmetros, como o CloudWatch namespace ou o período do relatório, comstore_reso.

  4. No momento, o script oferece suporte apenas ao Python 3. Ative o ambiente do Python 3 da estrutura de trabalho preferencial ou ative o ambiente geral do Python 3 da DLAMI.

    $ source activate python3
  5. Execute o utilitário gpumon em segundo plano.

    (python3)$ python gpumon.py &
  6. Abra seu navegador em https://console.aws.amazon.com/cloudwatch/ e selecione a métrica. Ele terá um namespace 'Train'. DeepLearning

    dica

    Você pode alterar o namespace modificando o gpumon.py. Você também pode modificar o intervalo de relatório ajustando store_reso.

Veja a seguir um exemplo de CloudWatch gráfico relatando uma execução do gpumon.py monitorando um trabalho de treinamento na instância p2.8xlarge.

Monitoramento de GPU ativado CloudWatch

Você pode estar interessado nesses outros tópicos sobre monitoramento e otimização de GPU: