接口函数说明
ptdbg工具提供如下接口函数用于精度比对过程的配置。
函数 |
描述 |
参数说明与示例 |
---|---|---|
set_dump_path |
用于设置dump文件的路径(不包含文件名)。 |
|
set_dump_switch |
设置dump范围。 |
详细dump模式说明和函数配置样例可参考数据dump模式说明。 |
seed_all |
固定随机数。 |
|
set_backward_input |
设置反向算子级别dump时需要的反向输入的路径。 |
backward_input:必选,该输入文件为首次运行训练dump得到反向API输入的.npy文件。该参数需配合set_dump_switch参数使用。 函数配置样例如下: set_backward_input(["acl_dump_xxx//Functional_conv2d_1_backward_input.0.npy"]) 更多样例可以参考单卡场景步骤5。 |
register_hook |
用于注册dump回调函数或溢出检测。 |
进行dump比对时,函数的基础配置方法如下: register_hook(model, acc_cmp_dump) 进行溢出检测时,函数的基础配置方法如下: register_hook(model, overflow_check) 溢出检测的更多样例可以参考溢出检测场景步骤2。 |
compare |
将GPU/CPU/NPU的dump文件进行比对,仅支持比较单张卡dump下来的数据。 |
|
parse |
提取dump文件信息中的堆栈信息及数据统计信息。 |
|
compare_distributed |
将GPU/CPU/NPU的dump文件进行比对,支持单卡和多卡,可同时比对多卡的dump数据。多机场景需要每个设备单独执行比对操作。可自动检索和匹配对应卡和进程所dump的数据文件,再进行比对。单机单卡时与compare函数二选一。 |
|
set_overflow_check_switch |
配置溢出检测范围。默认不配置该函数,全量进行溢出检测。仅支持NPU环境。 |
|
dump.json配置示例
{ "dump": { "dump_list":[], "dump_path":"/home/HwHiAiUser/dump/output", "dump_mode":"all", "dump_op_switch":"on" } }
字段名 |
说明 |
---|---|
dump_list |
待dump数据的API模型。为空,无需配置。 |
dump_path |
dump数据文件存储到运行环境的目录,主要用于指定算子 dump数据路径。支持配置绝对路径或相对路径。
注意:
dump_path需要是一个已存在的目录。 |
dump_mode |
dump数据模式。配置如下(通常配置为all即可):
|
dump_op_switch |
单API模型dump数据开关。通常配置为“on”。
|
比对脚本compare.py配置示例
单机单卡场景配置示例
from ptdbg_ascend import compare dump_result_param={ "npu_pkl_path": "./npu/ptdbg_dump_v2.0/rank0/dump.pkl", "bench_pkl_path": "./cpu/ptdbg_dump_v2.0/rank0/dump.pkl", "npu_dump_data_dir": "./npu/ptdbg_dump_v2.0/rank0/dump", "bench_dump_data_dir": "./cpu/ptdbg_dump_v2.0/rank0/dump" "is_print_compare_log": True } compare(dump_result_param, "./out")
多卡场景配置示例:
from ptdbg_ascend import compare_distributed npu_dump_path = "npu/ptdbg_dump_v2.0" bench_dump_path = "cpu/ptdbg_dump_v2.0" compare_distributed(npu_dump_path, bench_dump_path, "./output")
字段名 |
说明 |
---|---|
npu_pkl_path |
指定NPU dump目录下的.pkl文件。 |
bench_pkl_path |
指定CPU、GPU或NPU dump目录下的.pkl文件。 |
npu_dump_data_dir |
指定NPU dump目录下的dump数据目录。 |
bench_dump_data_dir |
指定CPU、GPU或NPU dump目录下的dump数据目录。 |
is_print_compare_log |
配置是否开启日志打屏,可选。 |
compare的参数说明可参考表1中compare一栏。
最终比对生成的csv文件中主要包括以下的几个属性:NPU Name、Bench Name、NPU Tensor Dtype、Bench Tensor Dtype、NPU Tensor Shape、Bench Tensor Shape、Cosine(余弦相似)、MaxAbsError(最大绝对误差)。
其中主要使用算子Name、Dtype、Shape用于描述算子的基本特征,Cosine、MaxAbsError作为评价计算精度的主要评估指标。