迭代轨迹数据

迭代轨迹数据step_trace_*.csv。单算子场景(如PyTorch场景)下无此性能数据文件。

step_trace_*.csv文件内容格式示例(示例仅展示部分参数,详情请参见表1)如下:

关键字段说明如下。

表1 字段说明

字段名

字段解释

Iteration ID

以Graph为粒度统计的迭代ID,每个Graph执行一次,Iteration ID加1,当一个脚本被编译为多个Graph时,该ID与脚本层面的Step ID不一致。

FP Start(us)

FP开始时间,单位us。

BP End(us)

BP结束时间,单位us。

Iteration End(us)

每轮迭代结束的时间,单位us。

Iteration Time(us)

迭代耗时,单位us。

FP to BP Time(us)

FP/BP计算耗时(BP End - FP Start),单位us。

Iteration Refresh(us)

迭代更新拖尾耗时(Iteration End - BP End),单位us。

Data Aug Bound(us)

数据增强拖尾耗时(本轮迭代FP Start - 上一个迭代Iteration End),单位us。如果计算第一轮数据增强拖尾时没有上一轮迭代的Iteration End数据,那么第一轮迭代的数据增强拖尾数据值默认为N/A。

Model ID

某轮迭代的模型中的图ID。

Reduce Start(us)

集合通信开始时间,单位us。

Reduce Duration(us)

集合通信耗时,可能存在多组集合通信耗时,本示例按照系统默认切分策略是分为两段集合通信时间,Reduce Start表示开始时间,Reduce Duration表示由开始到结束时间,单位us。如果非多P环境,则没有Reduce数据。

注:离线推理场景下不采集FP(训练网络迭代轨迹正向算子的开始位置)和BP(训练网络迭代轨迹反向算子的结束位置),采集结果将显示FP Start、BP End、FP_BP Time、Iteration Refresh和Data_aug Bound为NA。

迭代轨迹数据即训练任务及AI软件栈的软件信息,实现对训练任务的性能分析。以默认的两段式梯度切分为例,通过打印出训练任务中关键节点fp_start/bp_end/Reduce Start/Reduce Duration(us)的时间,达到把一个迭代的执行情况描述清楚的目的。

如图,如果需要确定梯度切分策略,则需要计算图中bp_end - allreduce1_end的大小。根据已获取的迭代轨迹数据,我们需要使用第一组集合通信时间来计算,具体公式如下:(BP End – Reduce End)/ freq。