查看训练作业资源占用情况
如何查看训练作业资源使用详情
- 在ModelArts管理控制台的左侧导航栏中选择“模型训练 > 训练作业”。
- 在训练作业列表中,单击作业名称进入训练作业详情页面。
- 在训练作业详情页面,单击“资源占用情况”页签查看计算节点的资源使用情况,最多可显示最近三天的数据。在“资源占用情况”窗口打开时,会定期向后台获取最新的资源使用率数据并刷新。
操作一:如果训练作业使用多个计算节点,可以通过实例名称的下拉框切换节点。
操作二:单击图例“cpuUsage”、“gpuMemUsage”、“gpuUtil”、“memUsage”“npuMemUsage”、“npuUtil”,可以添加或取消对应参数的使用情况图。
操作三:鼠标悬浮在图片上的时间节点,可查看对应时间节点的占用率情况。
图1 资源占用情况
表1 参数说明 参数
说明
cpuUsage
cpu使用率。
gpuMemUsage
gpu内存使用率。
gpuUtil
gpu使用情况。
memUsage
内存使用率。
npuMemUsage
npu内存使用率。
npuUtil
npu使用情况。
如何判断训练作业资源利用率高低
在模型训练的训练作业列表页可以查看作业资源利用率情况。当作业worker-0实例的GPU/NPU的平均利用率低于50%时,在训练作业列表中会进行告警提示。
此处的作业资源利用率只涉及GPU和NPU资源。作业worker-0实例的GPU/NPU平均利用率计算方法:将作业worker-0实例的各个GPU/NPU加速卡每个时间点的利用率汇总取平均值。
如何提高训练作业资源利用率
- 适当增大batch_size:较大的batch_size可以让GPU/NPU计算单元获得更高的利用率,但是也要根据实际情况来选择batch_size,防止batch_YLLsize过大导致内存溢出。
- 提升数据读取的效率:如果读取一个batch数据的时间要长于GPU/NPU计算一个batch的时间,就有可能出现GPU/NPU利用率上下浮动的情况。建议优化数据读取和数据增强的性能,例如将数据读取并行化,或者使用NVIDIA Data Loading Library(DALI)等工具提高数据增强的速度。
- 模型保存不要太频繁:模型保存操作一般会阻塞训练,如果模型较大,并且较频繁地进行保存,就会影响GPU/NPU利用率。同理,其他非GPU/NPU操作尽量不要阻塞训练主进程太多的时间,如日志打印,保存训练指标信息等。