【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

评论

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

云消息队列 Kafka 版生态谈第一期:无代码转储能力介绍

阿里巴巴云原生

kafka 阿里云 Serverless 云原生

如潮好评!优秀选手视角下的第二届粤港澳大湾区(黄埔)国际算法算例大赛

ModelWhale

人工智能 大数据 算法赛 粤港澳大湾区 算法开发

软件测试/测试开发/全日制 | 从Ajax到WebSocket:Python全栈开发中的前后端通信技巧

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | Python全栈开发实战:构建RESTful API

测吧(北京)科技有限公司

测试

OpenTiny 2023年度共建者榜单大曝光!!!

OpenTiny社区

开源 前端

2024年区块链行业发展,项目涵盖内容

区块链软件开发推广运营

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

软件测试/测试开发/全日制 | 深度学习的崛起与在人工智能中的关键作用

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | 自然语言处理技术在人工智能时代的崛起与发展

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | Python全栈开发之路:HTML/CSS/JavaScript基础深度学习

测吧(北京)科技有限公司

测试

【第七在线】智能商品系统是否可以帮助预测新品的销售表现?

第七在线

软件测试开发/全日制丨软件开发流程 学习笔记

测试人

软件测试

深耕汽车检测设备领域,引领行业技术革新

Geek_2d6073

软件测试/测试开发/全日制 | 人工智能的基本概念与发展趋势

测吧(北京)科技有限公司

测试

构建未来:低代码在制造业的数字化转型

天津汇柏科技有限公司

低代码

低代码:实现数据可视化的强大助手

不在线第一只蜗牛

数据库 低代码 数据可视化

软件测试/测试开发/全日制 | 机器学习的原理与应用:算法驱动的智能革命

测吧(北京)科技有限公司

测试

软件测试/测试开发|什么是Python,我们为什么选择Python?

霍格沃兹测试开发学社

体育直播平台系统源码:如何有效防止后门、恶意代码和漏洞

软件开发-梦幻运营部

老生常谈:Web 与低代码开发

快乐非自愿限量之名

Web 前端开发 低代码 开发

软件测试/测试开发/全日制 | 数据交互与通信:Python全栈开发必备的HTTP知识

测吧(北京)科技有限公司

测试

牛刀低代码开发实战—在线报工管理

牛刀专业低代码

低代码 专业低代码 起步牛刀低代码 牛刀低代码 牛刀专业低代码

摆脱自研难题,AUI Kit助力企业快速搭建专属互动课堂

阿里云视频云

云计算 视频云

字节跳动 Spark 支持万卡模型推理实践

字节跳动云原生计算

机器学习 spark 云原生

软件测试/测试开发/全日制 | 从前端到后端:Python全栈开发的入门指南

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | Python全栈开发中的WebSocket实践:实现实时通信和互动性

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |前后端分离与Python全栈开发的协同工作

测吧(北京)科技有限公司

测试

天谋科技联合 OpenCloudOS 完成技术兼容互认证

Apache IoTDB

软件测试/测试开发/全日制 | 学习使用ORM简化数据库操作

测吧(北京)科技有限公司

测试

软件测试/测试开发全日制培训|Pytest跳过用例和失败重试

霍格沃兹测试开发学社

软件测试/测试开发|什么是pytest,我们为什么选择pytest?

霍格沃兹测试开发学社

软件测试/测试开发/全日制 | 数据库设计与Python全栈开发的默契合作

测吧(北京)科技有限公司

测试

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