Skip to content

TRACE_START

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品AI Core:支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:支持

功能说明

SIMD场景下,通过仿真器进行算子性能仿真时,可对算子任意运行阶段打点,从而分析不同指令的流水图,以便进一步性能调优。

用于表示起始位置打点,一般与TRACE_STOP配套使用。

注意 该功能主要用于调试和性能分析,开启后会对算子性能产生一定影响,通常在调测阶段使用,生产环境建议关闭。 默认情况下,该功能关闭,开发者可以按需通过如下方式开启打点功能。 修改Kernel直调工程cmake目录下的npu_lib.cmake文件,在ascendc_compile_definitions命令中增加-DASCENDC_TRACE_ON编译选项,来开启打点功能。示例如下:

Text
// 打开算子的打点功能
ascendc_compile_definitions(ascendc_kernels_${RUN_MODE} PRIVATE
   -DASCENDC_TRACE_ON
)

函数原型

Text
#define TRACE_START(TraceId apid)
#define TRACE_START(pipe_t pipe, TraceId apid)

参数说明

参数名输入/输出描述
apid输入当前预留了十个用户自定义的类型:
0x0:USER_DEFINE_0
0x1:USER_DEFINE_1
0x2:USER_DEFINE_2
0x3:USER_DEFINE_3
0x4:USER_DEFINE_4
0x5:USER_DEFINE_5
0x6:USER_DEFINE_6
0x7:USER_DEFINE_7
0x8:USER_DEFINE_8
0x9:USER_DEFINE_9
pipe输入指定打点所在的pipeline类型,取值请参考硬件流水类型

仅Ascend 950PR/Ascend 950DT生效,其他产品上不生效。

返回值说明

约束说明

  • TRACE_START/TRACE_STOP需配套使用,若Trace图上未显示打点,则说明两者没有配对。
  • 不支持跨核使用,例如TRACE_START在AI Cube打点,则TRACE_STOP打点也需要在AI Cube上,不能在AI Vector上。
  • 宏支持所有的产品型号,但实际调用时需与调测工具支持的型号保持一致。
  • 仅支持Kernel直调工程,不支持自定义算子工程下开启打点功能。

调用示例

在Kernel代码中特定指令位置打上TRACE_START/TRACE_STOP:

Text
TRACE_START(0x2);
Add(zLocal, xLocal, yLocal, dataSize);
TRACE_STOP(0x2);

免责声明:本站内容由 asc-devkit 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区