文档
注册

dump模式说明

  1. seed_all和set_dump_path在训练主函数main一开始就调用,避免随机数固定不全。
  2. register_hook须在set_dump_path之后调用,避免dump数据路径设置错误。
  3. 进行CPU数据dump时,请安装torch包而非npu_torch包,避免工具无法识别使用场景,导致失败。
  4. 在进行NPU dump采集时,默认算子下发和执行异步进行,因此在算子级别dump前需要将ASCEND_LAUNCH_BLOCKING开启,需要在执行运行命令前配置环境变量。可参考以下命令。
    export ASCEND_LAUNCH_BLOCKING=1

目前ptdbg工具提供了以下数据dump模式,可以在set_dump_switch函数中配置不同的参数来设置:

set_dump_switch(switch, mode='all', scope=[], api_list=[], filter_switch='ON', dump_mode='all')

设置dump范围。建议在register_hook函数之后的脚本内任意位置插入,但进行精度问题排查建议,先从第一个迭代开始的位置调用并dump整网数据。

函数示例

以下均以dump部分API数据为例,API名可以从首次dump整网数据的结果csv文件中的NPU Name或Bench Name列获取。

  1. dump指定API/API列表。
    set_dump_switch("ON", mode="list", scope=["Tensor_permute_1_forward", "Tensor_transpose_2_forward", "Torch_relu_3_backward"])  
  2. dump指定范围。以下样例代码会dump Tensor_abs_1_forward到 Tensor_transpose_3_forward之间的所有API。
    set_dump_switch("ON", mode="range", scope=["Tensor_abs_1_forward", "Tensor_transpose_3_forward"])  
  3. STACK模式,只dump堆栈信息。以下样例代码dump "Tensor_abs_1_forward" 到 "Tensor_transpose_3_forward" 之间所有API的STACK信息。
    set_dump_switch("ON", mode="stack", scope=["Tensor_abs_1_forward", "Tensor_transpose_3_forward"])  
  4. dump指定前向API的ACL级别数据。
    register_hook(model, acc_cmp_dump, dump_mode='acl', dump_config='./dump.json')
    set_dump_switch("ON", mode="acl", scope=["Tensor_permute_1_forward"])

    需要配置register_hook的dump_mode='acl'和dump_config配置文件。

  5. dump指定反向API的ACL级别数据。
    register_hook(model, acc_cmp_dump, dump_mode='acl', dump_config='./dump.json')
    set_dump_switch("ON", mode="acl", scope=["Functional_conv2d_1_backward"])
    set_backward_input(["./npu_dump/dump_conv2d_v2.0/rank0/dump/Functional_conv2d_1_backward_input.0.npy"])

    需要配置register_hook的dump_mode='acl'和dump_config配置文件,并通过set_backward_input设置反向API输入的.npy文件。

  6. dump指定API/API列表的算子级别的输入输出数据。
    set_dump_switch("ON", mode="acl", scope=["Tensor_abs_1_forward"])  
  7. dump指定某一类API的API级别输入输出数据。
    set_dump_switch("ON", mode="api_list", api_list=["relu"])  

    mode="api_list"时不配置scope。

  8. dump全部api级别输入输出数据以及相应堆栈信息。
    set_dump_switch("ON", mode="api_stack")

    mode="api_stack"时不配置scope。

  9. dump全部API级别输入输出数据并包含bool和整型的tensor以及浮点、bool和整型的标量,默认不配置为ON,会过滤bool和整型数据。
    set_dump_switch("ON", filter_switch="OFF")

    配置filter_switch="OFF"同时也可以配置mode、scope和api_list,除dump ACL级别数据。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词