速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

利用 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:00770

评论

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

深入思考软件工程,开启 DevOps 之旅

BoCloud博云

DevOps cicd 云原生 CI/CD 敏捷交付

【ShardingSphere技术专题】「ShardingJDBC」(1)带你一同认识一下ShardingJDBC是什么?(高手勿入)

洛神灬殇

ShardingJDBC ShardingSphere 算法学习笔记指南 10月月更

从简历被拒到收割8个大厂offer,我用了3个月成功破茧成蝶

收到请回复

Java 程序员 面试

网络安全产品之堡垒机应用于金融行业案例讲解

行云管家

云计算 网络安全 等保 堡垒机

面试巨作!13万字!腾讯高工手写JDK源码笔记 带你飙向实战

收到请回复

Java jdk 面试 后端

从互联网“后来者”到“引领者”:这场IPv6大会上,我读懂了中国式创新

脑极体

程序员常用的工具软件推荐

程序员小呆

Java c++ 程序员 架构师 Go 语言

马萨卡!阿里大佬珍之若宝的最强高并发pdf,竟然被上传GitHub开源

Java 架构 面试 编程语言

这还不够全?阿里P8架构师耗时八年时间才整理出来这“Java核心知识PDF(Java高岗)

Java 程序员 架构 面试 后端

阿里P8手抄本惨遭泄露,并出现病毒式传播,致28人斩获大厂offer

收到请回复

Java 面试 阿里 大厂Offer

和12岁小同志搞创客开发:如何驱动LED点阵模块?

不脱发的程序猿

少儿编程 创客开发 LED点阵模块

汇纳科技数据科学团队研究商场活动效果并优化的论文被ISR期刊接收

Kubernetes 中的应用参数配置案例详析

Zilliz

数据库 Kuber k8s Helm

封神总结!蚂蚁金服+滴滴+美团+拼多多+腾讯15万字Java面试题

收到请回复

Java 程序员 面试 微服务 大厂Offer

为什么网络 I/O 会被阻塞?

编程 架构 操作系统 计算机

GitHub上首本IntelliJ IDEA操作手册,标星果然百万名不虚传

Java 架构 面试 程序人生 编程语言

手把手带你做LiteOS的树莓派移植

华为云开发者联盟

树莓派 系统 LiteOS arm 树莓派移植

惊!HUAWEI高工熬夜赶出这本20W字的图解计算机操作系统指南手册,竟被我偶然发现!

Java 架构 面试 程序人生 编程语言

JS的深浅复制,原来如此!

华为云开发者联盟

js 序列化 深复制 浅复制

相约 DTCC 2021 | Tapdata 受邀分享:如何打造面向 TP 业务的数据平台架构

tapdata

2021金九银十阿里Java岗7轮技术面经历,险幸上岸

Java 程序员 架构 面试 计算机

Zookeeper 集群部署的那些事儿

牧小农

zookeeper

Android 资源溢出崩溃轻松解

字节跳动终端技术

字节跳动 移动开发 Mars 火山引擎 MARS-APMPlus

教育机构这一大堆问题都是由教育管理系统解决的

低代码小观

公司管理 教育 企业管理 CRM 管理工具

会声会影和剪映在音频处理功能上的比较

懒得勤快

我凭借这份pdf拿下了蚂蚁金服、字节跳动、小米等大厂的offer

Java 编程 程序员 架构

理论+实例,带你掌握Linux的页目录和页表

华为云开发者联盟

Linux 内存管理 寄存器 页目录 页表

Java集合核心内容之葵花宝面,搞定90%以上的技术面!建议收藏

程序员小呆

Java 程序员 架构师

极客架构营2期模块5作业

Ping

2022年最新Java小白学习路线总结,从零基础跟着学习不掉队(PDF+视频分享篇)

Java 编程 程序员 计算机 java面试

律所管理系统能解决律师事务所存在的这些问题

低代码小观

公司管理 企业 企业管理 管理工具 律所

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