Monitorar GPUs com o 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 métricas de GPU com o CloudWatch:
Configurar métricas com o agente do AWS CloudWatch (recomendado)
Integre a DLAMI com o agente unificado do CloudWatch 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 do AWS CloudWatch
Pré-requisitos
Para começar, você deve configurar as permissões do IAM da instância do Amazon EC2, permitindo que ela envie métricas para o CloudWatch. Para obter etapas detalhadas, consulte Criar usuários e perfis do IAM para uso com o agente do CloudWatch.
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_gpuutilization_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_gpuutilization_memorymemory_totalmemory_usedmemory_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_gpuutilization_memorymemory_totalmemory_usedmemory_freetemperature_gpupower_drawfan_speedpcie_link_gen_currentpcie_link_width_currentencoder_stats_session_countencoder_stats_average_fpsencoder_stats_average_latencyclocks_current_graphicsclocks_current_smclocks_current_memoryclocks_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 requisitos, você poderá criar um arquivo de configuração do agente do CloudWatch.
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 agente do CloudWatch.
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 agente do CloudWatch de acordo com o 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 do AWS CloudWatch
As DLAMIs recém-lançadas são configuradas com os mais recentes patches de segurança do agente do AWS CloudWatch 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 mais recentes do agente do AWS CloudWatch para uma DLAMI do Amazon Linux 2.
sudo yum update
Ubuntu
Para obter os patches de segurança mais recentes do AWS CloudWatch para uma DLAMI com Ubuntu, é necessário reinstalar o agente do AWS CloudWatch usando um link de download 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 a instalação do agente do AWS CloudWatch usando os links de download do Amazon S3, consulte Como instalar e executar o agente do CloudWatch 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 com o CloudWatch e oferece suporte para monitoramento de uso por GPU: memória, temperatura e energia de GPU. O script envia periodicamente os dados monitorados para o CloudWatch. Você pode configurar o nível de granularidade de dados que estão sendo enviados para o CloudWatch alterando algumas configurações no script. No entanto, antes de iniciar o script, você precisará configurar o CloudWatch para receber as métricas.
Como configurar e executar o monitoramento de GPU com CloudWatch
-
Crie um usuário do IAM ou modifique um existente para ter uma política para publicar a métrica no 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:PutMetricData". A política que é adicionada é a seguinte:
dica
Para obter mais informações sobre como criar um usuário do IAM e adicionar políticas ao CloudWatch, consulte a documentação do CloudWatch.
-
Em sua DLAMI, execute AWS configure e especifique as credenciais de usuário do IAM.
$aws configure -
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/READMEOpçõ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
namespaceou o período de relatório comstore_reso.
-
-
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 -
Execute o utilitário gpumon em segundo plano.
(python3)$python gpumon.py & -
Abra seu navegador em https://console.aws.amazon.com/cloudwatch/
e selecione a métrica. Ela terá um namespace "DeepLearningTrain". 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 gráfico do CloudWatch relatando uma execução do gpumon.py monitorando um trabalho de treinamento na instância p2.8xlarge.
Você pode estar interessado nesses outros tópicos sobre monitoramento e otimização de GPU:
-
-
Monitorar GPUs com o CloudWatch
-