精度预检

前提条件

完成精度数据采集,得到NPU环境的精度数据。

执行预检

  1. 将NPU环境下dump的精度数据拷贝至GPU环境。
  2. 分别在GPU和NPU环境下使用run_ut命令执行预检操作。(预检场景GPU环境需要使用NPU环境拷贝的精度数据)
    msprobe -f pytorch run_ut -api_info ./dump_data/step0/rank/dump.json

    出现Successfully completed run_ut/multi_run_ut日志表示预检完成,此时执行路径会生成两个csv文件,分别为accuracy_checking_details_{timestamp}.csv和accuracy_checking_result_{timestamp}.csv,这两个文件是NPU或GPU分别与CPU比对的结果。该结果为预检的中间结果,需要完成下一步,才能得到预检的最终结果。

    图1 预检结果
  3. 将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. 预检结果分析。

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

    • api_precision_compare_details_{timestamp}.csv文件会标明每个API是否通过测试
    • api_precision_compare_result_{timestamp}.csv文件会更详细的标明API在各种比对算法下的达标情况,示例如下:
      图2 预检结果比对

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