比对步骤(推理场景融合算子精度问题排查)

说明

操作步骤

  1. 开启和关闭算子融合功能的离线模型在昇腾AI处理器上运行生成dump数据。

    数据分别保存在:

    • /home/HwHiAiUser/MyApp_mind/resnet50_on
    • /home/HwHiAiUser/MyApp_mind/resnet50_off

  2. 以HwHiAiUser用户登录开发环境。
  3. 生成json文件。

    Ascend-cann-toolkit安装目录/ascend-toolkit/latest/bin/atc --mode=1 --om=/home/HwHiAiUser/data_on/resnet50.om --json=/home/HwHiAiUser/data/resnet50_on.json

    使用开启算子融合功能的离线模型生成resnet50_on.json文件。

    Ascend-cann-toolkit安装目录/ascend-toolkit/latest/bin/atc --mode=1 --om=/home/HwHiAiUser/data_off/resnet50.om --json=/home/HwHiAiUser/data/resnet50_off.json

    使用关闭算子融合功能的离线模型生成resnet50_off.json文件。

  4. 进入/home/HwHiAiUser/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare目录。
  5. 执行Tensor比对命令。

    由于dump和npy比对数据文件是由多个文件组成,故下文操作步骤中-m-g参数须指定数据文件所在的父目录。如:/home/HwHiAiUser/MyApp_mind/resnet50,其中resnet50文件夹下直接保存比对数据文件。

    目录结构示例如下:

    root@xxx:/home/HwHiAiUser/MyApp_mind/resnet50# tree
    .
    ├── BatchMatMul.bert_encoder_layer_0_attention_self_MatMul_1.24.1614717261785536
    ├── BatchMatMul.bert_encoder_layer_0_attention_self_MatMul.21.1614717261768864
    ├── BatchMatMul.bert_encoder_layer_10_attention_self_MatMul_1.235.1614717263664916
    #仅为示例,此处省略剩余文件名。

    python3 msaccucmp.py compare -m /home/HwHiAiUser/MyApp_mind/resnet50_on -g /home/HwHiAiUser/MyApp_mind/resnet50_off -f /home/HwHiAiUser/data/resnet50_on.json -cf /home/HwHiAiUser/data/resnet50_off.json -out /home/HwHiAiUser/result

    Tensor比对结果result_*.csv文件内容如图1所示。
    图1 融合算子精度问题排查比对结果
    表1 输出参数说明

    参数

    说明

    NPUDump

    表示开启算子融合功能的离线模型的算子名。

    GroundTruth

    表示关闭算子融合功能的离线模型的算子名。