AI业务运行过程中可能存在算子溢出的情况,此时若直接进行精度比对操作则会造成比对结果不准确。通过执行查看溢出算子数据,可以检测并收集溢出的算子信息,生成算子溢出数据文件和溢出算子的dump文件。
当生成的算子溢出数据文件和溢出算子的dump文件的落盘时间与算子溢出的时间不一致时,在这两个文件中则无法第一时间定位到第一个溢出的算子。
为了帮助用户快速定位溢出算子,本章节介绍的Top溢出算子解析,可以对生成的Debug file和溢出算子的dump文件进行分析,并展示TopN溢出算子的关键信息。
算子溢出检测命令行格式如下:
python3 msaccucmp.py overflow -d dump_path -out output_path [-n topn]
命令行参数说明如表1所示。
该功能通过msaccucmp.py脚本实现,脚本存放在${INSTALL_DIR}/tools/operator_cmp/compare,${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Ascend-cann-toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/ascend-toolkit/latest。
参数名 |
参数说明 |
是否必选 |
---|---|---|
-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指定的结果文件存放路径,请确保操作用户具有读写权限。
python3 msaccucmp.py overflow -d /MyApp20/dump -out /MyApp20/out -n 3
执行算子溢出检测结果overflow_summary_{timestamp}.txt文件内容如图1所示。
结果文件信息中,根据展示数据从上到下顺序,展示信息如下: