昇腾社区首页
中文
注册

精度预检

前提条件

完成精度数据采集,得到MindSpore或PyTorch训练场景昇腾NPU环境的精度数据。

执行预检

  1. (可选)数据准备。
    • PyTorch训练场景将昇腾NPU环境下dump的精度数据拷贝至GPU环境。(用于保证预检执行的精度数据一致)
    • MindSpore训练场景无需执行此步骤。
  2. 启动预检。
    • MindSpore训练场景直接在昇腾NPU环境下执行预检。
      msprobe -f mindspore run_ut -api_info ./dump_data/step0/rank/dump.json -o ./checker_result
    • PyTorch训练场景分别在GPU和昇腾NPU环境下使用run_ut命令执行预检操作。(预检场景GPU环境需要使用昇腾NPU环境拷贝的精度数据)
      msprobe -f pytorch run_ut -api_info ./dump_data/step0/rank/dump.json -o ./checker_result

    出现如下日志表示预检完成。

    Successfully completed run_ut/multi_run_ut

    此时-o参数指定的路径下会生成两个csv文件,分别为accuracy_checking_details_{timestamp}.csv和accuracy_checking_result_{timestamp}.csv。

    • 对于MindSpore训练场景,accuracy_checking_result_{timestamp}.csv标明每个API是否通过测试。对于其中没有通过测试的或者特定感兴趣的API,根据其API Name字段在accuracy_checking_details_{timestamp}.csv中查询其各个输出的达标情况以及比较指标。
      图1 accuracy_checking_result
      图2 accuracy_checking_details

      MindSpore的预检结果详细介绍请参见“预检结果”。

    • 对于PyTorch训练场景,这两个文件是预检的中间结果,需要完成下一步,才能得到预检的最终结果。
  3. 预检结果比对。(仅PyTorch训练场景支持)

    将NPU和GPU的预检结果进行比对,查看NPU数据中是否存在精度问题的API。

    可以将GPU环境上的accuracy_checking_details_{timestamp}.csv文件传到昇腾NPU环境,执行如下命令。
    msprobe -f pytorch api_precision_compare -npu ./npu/accuracy_checking_details_{timestamp}.csv -gpu ./gpu/accuracy_checking_details_{timestamp}.csv -o ./compare_result/accuracy_checking
  4. 预检结果分析。(仅PyTorch训练场景支持)

    api_precision_compare会在./compare_result/accuracy_checking目录下生成两个csv文件。

    • api_precision_compare_details_{timestamp}.csv文件会标明每个API是否通过测试。
    • api_precision_compare_result_{timestamp}.csv文件会更详细的标明API在各种比对算法下的达标情况,示例如下。
      图3 api_precision_compare_result_{timestamp}
      图4 api_precision_compare_details_1
      图5 api_precision_compare_details_2

      更多比对结果字段含义请参见“预检结果比对”。