Data Preparation数据准备性能分析。
- 仅支持集群训练场景的数据准备过程进行性能分析。
- MindStudio不支持集群场景的数据采集,可通过Merge Reports导入已采集的PROF_XXX的父目录来展示集群场景性能数据。
数据准备过程可以分为三个阶段:数据处理pipeline、训练数据发送至Device以及Device侧读取训练数据。
数据准备过程中,MindStudio性能分析工具通过迭代间隙的识别,实现了训练数据发送至Device以及Device侧读取训练数据两个阶段的性能瓶颈分析,如
图1所示包含
Data Queues(数据队列图,是分析判断的重要依据)和
Data Acquisition(取数据算子耗时图)。
- Data Queues的纵坐标为Device侧读取训练数据时队列的长度。如果数据队列长度为0,则训练会一直等待,直到队列中有数据才会开始某个迭代的训练,该迭代可能存在性能瓶颈;如果数据队列长度大于0,则训练可以快速读取数据,数据准备不是该迭代的瓶颈所在;如果图中存在波动的曲线,则表示训练从队列读取数据时存在延迟,可能存在性能瓶颈。
- Data Acquisition的纵坐标表示取数据算子从Host侧取数据到队列中的耗时,如果耗时较长,则可能存在性能瓶颈。
图1 Data Preparation
图中各字段说明如表1所示。
表1 字段说明
字段 |
说明 |
Rank ID |
集群场景的节点ID。 |
Apply |
数据导出按钮。当选择某个Rank ID并单击该按钮时,导出该节点的Data Preparation。 |
Data Queues |
数据队列图。 |
Proportion of empty queues: */* |
队列为空比例:空队列数/总队列数。为数据队列图横纵坐标信息的汇总值。 |
Iteration |
迭代。 |
Data Acquisition |
取数据算子耗时图。 |
Average duration: *ms |
平均总耗时,单位为ms。为取数据算子耗时图横纵坐标信息的汇总后的平均值。 |
Time(ms) |
取数据算子耗时。 |