Top溢出算子解析
针对TensorFlow模型训练过程中可能存在算子溢出的情况,此时若直接进行精度比对操作则会造成比对结果不准确。通过执行采集溢出算子数据,可以检测并收集溢出的算子信息,生成算子溢出数据文件和溢出算子的dump文件。
当生成的算子溢出数据文件和溢出算子的dump文件的落盘时间与算子溢出的时间不一致时,在这两个文件中则无法第一时间定位到第一个溢出的算子。
为了帮助用户快速定位溢出算子,本章节介绍的Top溢出算子解析,可以对生成的Debug file和溢出算子的dump文件进行分析,并展示TopN溢出算子的关键信息。
命令格式说明
算子溢出检测命令行格式如下:
python3 msaccucmp.py overflow -d dump_path -out output_path [-n topn]
命令行参数说明如表1所示。
该功能通过msaccucmp.py脚本实现,脚本存放在$HOME/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare目录下。
参数名 |
参数说明 |
是否必选 |
---|---|---|
-d --dump_path |
Debug file和溢出算子的dump文件所在目录。 请参见采集溢出算子数据获取文件目录。 目录下如果缺少dump文件,则会导致-out输出时缺少npy文件;如果目录下没有Debug file,则表示无溢出。 |
是 |
-out --output_path |
算子溢出分析结果文件输出目录。 输出文件包括:
缺少npy文件,会导致结果文件解析不到溢出算子的输入输出信息。 |
是 |
-n --topn |
解析溢出的前N个算子,取值范围为1~5,默认值为1。 |
否 |
执行步骤
使用以下步骤进行算子溢出分析之前请参见采集溢出算子数据,对dump文件进行算子溢出检测,并生成Debug file和溢出算子的dump文件。
算子溢出检测命令行方式操作步骤:

-out指定的结果文件存放路径,请确保操作用户具有读写权限。
- 登录CANN工具安装环境。
- 进入$HOME/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare目录。
- 执行算子溢出检测命令。
python3 msaccucmp.py overflow -d /MyApp20/dump -out /MyApp20/out -n 3
执行算子溢出检测结果overflow_summary_{timestamp}.txt文件内容如图1所示。
结果文件信息中,根据展示数据从上到下顺序,展示信息如下:
- 从1到n表示解析出第一个溢出的算子到第n个溢出的算子。
- 每个溢出算子的类型和名称。
- 算子的溢出信息,包括:溢出类型,溢出的任务ID,流ID和溢出错误码。
- timestamp为算子溢出的时间戳。
- *.input.*.npy为溢出算子的输入数据的npy文件。
- *.input.*.npy文件名下方展示的是文件中算子溢出的输入关键信息,包括数据格式,数据维度,数据类型,最大值,最小值和均值。
- *.output.*.npy为溢出算子的输出数据的npy文件。
- *.output.*.npy文件名下方展示的是文件中算子溢出的输出关键信息,包括数据格式,数据维度,数据类型,最大值,最小值和均值。