算子溢出分析

命令格式说明

算子溢出检测命令行格式如下:

python3 msaccucmp.py overflow -d dump_path -out output_path [-n topn]

命令行参数说明如表1所示。

表1 算子溢出检测命令行参数说明

参数名

参数说明

是否必选

-d

--dump_path

Debug file和溢出算子的dump文件所在目录。

请参见TensorFlow 1.15网络模型迁移和训练指南中的“手工迁移和训练>更多特性>溢出数据采集”章节获取文件目录。

目录下如果缺少dump文件,则会导致-out输出时缺少npy文件;如果目录下没有Debug file,则表示无溢出。

-out

--output_path

算子溢出分析结果文件输出目录。

输出文件包括:

  • Debug file生成的json文件。过程文件,用于提取结果文件中topn溢出算子的算子名称和溢出信息。
  • 溢出算子的dump数据生成的npy文件,包含算子的输入输出数据。过程文件,用于提取结果文件中算子溢出的关键信息。
  • 算子溢出检测分析结果文件,汇总topn溢出算子的信息。结果文件,命名格式为“overflow_summary_时间戳.txt”。

缺少npy文件,会导致结果文件解析不到溢出算子的输入输出信息。

-n

--topn

解析溢出的前N个算子,取值范围为1~5,默认值为1。

分析步骤

使用以下步骤进行算子溢出分析之前请参见TensorFlow 1.15网络模型迁移和训练指南中的“手工迁移和训练>更多特性>溢出数据采集”章节,对dump文件进行算子溢出检测,并生成Debug file和溢出算子的dump文件。

算子溢出检测命令行方式操作步骤:

-out指定的结果文件存放路径,请确保HwHiAiUser用户具有读写权限。

  1. 以HwHiAiUser用户登录开发环境。
  2. 进入/home/HwHiAiUser/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare目录。
  3. 执行算子溢出检测命令。

    python3 msaccucmp.py overflow -d /MyApp20/dump -out /MyApp20/out -n 3

    执行算子溢出检测结果overflow_summary_*.txt文件内容如图1所示。

    图1 溢出算子结果信息

    结果文件信息中,根据展示数据从上到下顺序,展示信息如下:

    • 从1到n表示解析出到第一个溢出的算子到第n个溢出的算子;
    • 每个溢出算子的类型和名称;
    • 算子的溢出信息,包括:溢出类型,溢出的任务ID,流ID和溢出错误码;
    • timestamp为算子溢出的时间戳;
    • *.input.*.npy为溢出算子的输入数据的npy文件;
    • *.input.*.npy文件名下方展示的是文件中算子溢出的输入关键信息,包括数据格式,数据维度,数据类型,最大值,最小值和均值;
    • *.output.*.npy为溢出算子的输出数据的npy文件;
    • *.output.*.npy文件名下方展示的是文件中算子溢出的输出关键信息,包括数据格式,数据维度,数据类型,最大值,最小值和均值。