写点什么

利用 Amazon CloudWatch 监控 GPU 利用率

  • 2019-11-07
  • 本文字数:1956 字

    阅读完需:约 6 分钟

利用 Amazon CloudWatch 监控 GPU 利用率

深度学习需要进行大量的矩阵相乘和向量运算,而 GPU (图形处理单元) 可以并行处理这些运算,因为 GPU 拥有数以千计的核心。Amazon Web Services 为您提供的 P2P3 实例非常适用于运行深度学习框架,如 MXNet,该框架强调加速部署大型深度神经网络。


数据科学家和开发人员在微调网络时,希望优化其 GPU 的利用率,以使用最适当的批处理大小。在这篇博文中,我将向您展示如何使用 Amazon CloudWatch 指标监控 GPU 和内存的使用情况。至于 Amazon 系统映像 (AMI),我们建议您的实例使用 Amazon Deep Learning AMI


要监控和管理已启用 GPU 的实例,目前常见的有益做法是使用 NVIDIA 系统管理接口 (nvidia-smi),这是一个命令行实用程序。用户可以利用 nvidia-smi 查询 NVIDIA GPU 设备的 GPU 利用率、内存消耗情况、风扇使用情况、功耗以及温度信息。



由于 nvidia-smi 的基础是 NVIDIA Management Library (NVML),所以我们可以使用这个基于 C 的 API 库捕捉相同的数据点,并作为自定义指标发送给 Amazon CloudWatch。如需了解有关此库的更多信息,请转至参考手册。在这篇博文中,我们将使用此库的 Python 包装程序 pyvnml


Amazon CloudWatch 可以非常出色地监控您在 EC2 实例上的工作负载,无需设置、管理,也无需为它扩展系统和基础设施。默认情况下 CloudWatch 可提供 CPU 利用率、磁盘读取操作、磁盘写入操作、网络输入和网络输出等指标。(点击此处了解适用于您的实例的完整指标列表)


除了提供这些指标,我们还能够使用 API、软件开发工具包或 CLI 通过 Amazon CloudWatch 自定义指标推送我们自己的数据点。我们将使用 Python Boto3 软件开发工具包。


您可以在 Amazon CloudWatch 中创建自定义控制面板来查看您的资源。您还可以为您的指标创建警报。还有许多可以与 CloudWatch 结合使用的功能和服务。如果您希望访问并存储 Amazon EC2 实例生成的日志,可以使用 Amazon CloudWatch Logs。此外,Amazon CloudWatch Events 可以为您提供描述 AWS 资源变化的数据流,例如,如果有人试图在模型训练完成之前终止您的实例,您可以收到提醒。

立即设置

默认情况下,已对您的实例启用基本监控。我们会启用详细监控,Amazon EC2 控制台将以 1 分钟为间隔显示实例的监控状态。


注意:基本监控是免费的,但详细监控会收取费用。新客户和现有客户每月可免费获得 10 个指标、10 个警报,以及 100 万个 API 请求 (包括 PutMetricData)。


鉴于您的实例已运行在 Deep Learning AMI 之上,我们需要创建一个 IAM 角色,为您的实例授权,使其能够向 Amazon CloudWatch 推送指标。我们需要根据文档中的描述创建一个 EC2 服务角色。请确保您的角色允许以下策略。


Json


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


接下来在您的实例上下载 Python 代码。我们将使用此脚本,将 GPU 使用情况、内存使用情况、温度和电源使用情况作为自定义 CloudWatch 指标进行推送。


安装必要的程序包,以使用代码:


Bash


sudo pip install nvidia-ml-py -ysudo pip install boto3 -y
复制代码


请确保根据您的工作负载更改命名空间和间隔。您还可以选择更改 store_reso,使用间隔缩短至 1 秒的高精度指标,从而更精确地了解 GPU 的使用情况。


默认情况下,这些是顶部的参数:


Bash


#在此处选择命名空间参数###my_NameSpace = ‘DeepLearningTrain’### 选择推送间隔 ####sleep_interval = 10### 选择存储精度 (在 1-60 之间) ####store_reso = 60
复制代码


运行脚本:


Bash


python gpumon.py
复制代码


训练完成后按 ctrl-zctrl-c 停止脚本。


以下是一个正在运行的训练的 Amazon CloudWatch 视图示例。请观察在计算过程中所有指标是如何互相关联的。


结论

在这篇博文中,我将提供一种简便的方法,它不仅可以监控 GPU 利用率,还可以监控您的 NVIDIA GPU 设备的内存、温度和电源使用情况。如果您要添加其他自定义指标或删除自定义指标,可以修改我提供的代码。接下来,就像我们在介绍时提到的,要尝试为您的指标创建 CloudWatch 警报。例如,您可以设置 Amazon SNS 通知,在模型训练期间,GPU 利用率低于 20% 即向您发送电子邮件。

补充阅读

开始使用 AWS Deep Learning AMI 进行深度学习


作者简介

**



Keji Xu 是 AWS 的解决方案架构师,现居旧金山。**他帮助客户理解云端高级解决方案,以及如何将现有的工作负载迁移到云,以实现客户的业务目标。他在闲暇时喜欢聆听音乐,以及为他的新英格兰运动队加油呐喊。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/monitoring-gpu-utilization-with-amazon-cloudwatch/


2019-11-07 08:00738

评论

发布
暂无评论
发现更多内容

嘉为蓝鲸WeOpsV4.10上线,聚焦监控管理模块优化

嘉为蓝鲸

监控 日志管理 IT 运维 IT资产管理

探索DAPP生态:代币预售、系统开发、NFT质押分红和代币质押技术

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

ZKFair 步入Dargon Slayer 新阶段,未来还有哪些财富效应?

石头财经

ZKFair 步入Dargon Slayer 新阶段,未来还有哪些财富效应?

鳄鱼视界

云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理

阿里巴巴云原生

阿里云 云原生

探索DeFi元宇宙:NFT、Web3和DAPP的数藏Swap合约应用开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链钱包开发

仿真黑科技EasyGo DeskSim 2022

芯动大师

containerd配置HTTP私仓

GousterCloud

私有仓库 Containerd

ZKFair 创新之旅,新阶段如何塑造财富前景

BlockChain先知

C++ 数学函数、头文件及布尔类型详解

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

【香山源码阅读】香山BPU代码阅读

源芯

开源 芯片 risc-v 高性能处理器香山

春天集结!Milvus 老友汇 · 线下 Meetup 来啦!

Zilliz

开源社区 Meetup Milvus Zilliz

ZKFair 创新之旅,新阶段如何塑造财富前景

加密眼界

HTTP/1.1协议中的响应报文

百度搜索:蓝易云

云计算 Linux 运维 HTTP 云服务器

走向国际:区块链行业项目海外市场宣传与运营攻略

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

关于 ASP.NET Core 中的静态文件

雄鹿 @

ASP.NET Core

百度“超模”、三大开发神器组团出道?李彦宏2024年度演讲提前剧透!

三掌柜

System.gc 之后到底发生了什么 ?

bin的技术小屋

GC Java】 JVm虚拟机 #JVM

ZKFair 创新之旅,新阶段如何塑造财富前景

大瞿科技

ZKFair 步入Dargon Slayer 新阶段,未来还有哪些财富效应?

股市老人

ubuntu安装指定版本:nodejs

百度搜索:蓝易云

云计算 Linux ubuntu 运维 云服务器

HTTP/1.1协议中的八种请求

百度搜索:蓝易云

云计算 Linux 运维 HTTP 云服务器

ubuntu22安装和部署Kettle8.2

百度搜索:蓝易云

Linux ubuntu 运维 kettle 云服务器

网络钓鱼升级 Darcula如何窃取用户信息

郑州埃文科技

网络安全

如何搭建自动化测试平台

RestCloud

自动化测试平台 ipaas

Druid MySQL连接池本地实践

FunTester

ZKFair 创新之旅,新阶段如何塑造财富前景

股市老人

ubuntu创建自定义开机服务

百度搜索:蓝易云

云计算 Linux ubuntu 运维 云服务器

小redbook.item_get_video API是小红书平台提供的一种数据接口服务,其主要功能是为电商企业提供商品数据,以便进行商品分析、个性化推荐等。通过该API可以带来哪些价值

技术冰糖葫芦

API 接口

Swap交易所系统开发流程与区块链交易所系统规划方案

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

假如AI圈有世纪大和解

脑极体

AI

利用 Amazon CloudWatch 监控 GPU 利用率_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章