GPUs使用监视器 CloudWatch - AWS Deep Learning AMIs

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

GPUs使用监视器 CloudWatch

当你将你的DLAMI与一起使用时,GPU你可能会发现你正在寻找在训练或推理期间跟踪其使用情况的方法。这对于优化您的数据管道以及调整深度学习网络非常有用。

有两种方法可以配置GPU指标 CloudWatch:

使用 AWS CloudWatch 代理配置指标(推荐)

将您DLAMI与统一 CloudWatch 代理集成,以配置GPU指标并监控 Amazon EC2 加速实例中GPU协处理的利用率。

有四种方法可以用你的配置GPU指标DLAMI:

有关更新和安全补丁的信息,请参阅 代理的安全补丁 AWS CloudWatch

先决条件

首先,您必须配置允许您的EC2实例向推送指标的 Amazon 实例IAM权限 CloudWatch。有关详细步骤,请参阅创建用于 CloudWatch 代理的IAM角色和用户

配置最低GPU指标

使用该dlami-cloudwatch-agent@minimalsystemd服务配置最低GPU指标。此服务配置以下指标:

  • utilization_gpu

  • utilization_memory

您可以在以下位置找到用于最低预配置GPU指标的systemd服务:

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

使用以下命令启用并启动 systemd 服务:

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

配置部分GPU指标

使用该dlami-cloudwatch-agent@partialsystemd服务配置部分GPU指标。此服务配置以下指标:

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

您可以在以下位置找到部分预配置GPU指标的systemd服务:

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

使用以下命令启用并启动 systemd 服务:

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

配置所有可用GPU指标

使用该dlami-cloudwatch-agent@allsystemd服务配置所有可用GPU指标。此服务配置以下指标:

  • 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

您可以在以下位置找到所有可用的预配置GPU指标的systemd服务:

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

使用以下命令启用并启动 systemd 服务:

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

配置自定义GPU指标

如果预配置的指标不符合您的要求,则可以创建自定义 CloudWatch 代理配置文件。

创建自定义配置文件

要创建自定义配置文件,请参阅手动创建或编辑 CloudWatch 代理配置文件中的详细步骤。

在此示例中,假设架构定义位于 /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json

使用您的自定义文件来配置指标

运行以下命令根据您的自定义文件配置 CloudWatch 代理:

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

代理的安全补丁 AWS CloudWatch

新发布DLAMIs的服务器配置了最新的可用 AWS CloudWatch 代理安全补丁。根据您选择的操作系统,请参阅以下章节,DLAMI使用最新的安全补丁更新您的最新安全补丁。

Amazon Linux 2

用于获取yum适用于亚马逊 Linux 2 的最新 AWS CloudWatch 代理安全补丁DLAMI。

sudo yum update

Ubuntu

要使用 Ubuntu 获取最新 AWS CloudWatch 安全补丁,必须使用 Amazon S3 下载链接重新安装 AWS CloudWatch 代理。DLAMI

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

有关使用 Amazon S3 下载链接安装 AWS CloudWatch 代理的更多信息,请参阅在服务器上安装和运行 CloudWatch 代理。

使用预安装 gpumon.py 脚本来配置指标

您的上预装了一个名为 gpumon.py DLAMI 的实用程序。它集成 CloudWatch 并支持对每次GPU使用情况的监控:GPU内存、GPU温度和GPU功率。该脚本会定期将监控的数据发送到 CloudWatch。您可以通过更改脚本中的一些设置来配置要发送到 CloudWatch 的数据的粒度级别。但是,在启动脚本之前,您需要进行设置 CloudWatch 才能接收指标。

如何使用设置和运行GPU监控 CloudWatch
  1. 创建IAM用户,或修改现有用户以制定向其发布指标的策略 CloudWatch。如果创建新用户,请记下凭证,因为您将在下一步中需要这些凭证。

    要搜索的IAM策略是 “cloudwatch:PutMetricData”。要添加的策略如下所示:

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

    有关创建IAM用户和为添加策略的更多信息 CloudWatch,请参阅 CloudWatch 文档

  2. 在您的DLAMI,运行AWS 配置并指定IAM用户凭证。

    $ aws configure
  3. 您可能需要先对 gpumon 实用工具进行一些修改,然后再运行该工具。你可以在以下代码块README中定义的位置找到 gpumon 实用程序。有关 gpumon.py 脚本的更多信息,请参阅脚本的 Amazon S3 位置

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

    选项:

    • 如果您的实例位于 us-east-1 中,请在 gpumon.py NOT 中更改区域。

    • 更改其他参数,例如 CloudWatchnamespace或报告周期store_reso

  4. 目前,该脚本仅支持 Python 3。激活你首选框架的 Python 3 环境或激活DLAMI常规 Python 3 环境。

    $ source activate python3
  5. 在后台中运行 gpumon 实用工具。

    (python3)$ python gpumon.py &
  6. 打开浏览器,进入https://console.aws.amazon.com/cloudwatch/然后选择的指标。它将有一个命名空间 “DeepLearningTrain”。

    提示

    您可以修改 gpumon.py 来更改该命名空间。您也可以通过调整 store_reso 来修改报告间隔。

以下是一个示例 CloudWatch 图表,报告了 gpumon.py 在监控 p2.8xlarge 实例上的训练作业的情况。

GPU监视开启 CloudWatch

您可能对有关GPU监控和优化的其他主题感兴趣: