昇腾社区首页
中文
注册

Model仿真打点

功能介绍

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

使用方法

  1. 先在Kernel代码中的目标指令位置分别打上TRACE_START/TRACE_STOP,示例如下,起始/终止接口的说明详见Trace接口说明
    TRACE_START(0x1);
    DataCopy(zGm, zLocal, this->totalLength);
    TRACE_STOP(0x1);
  2. 参考CAModel性能仿真中的命令行或API方式,执行算子仿真流程。
  3. 在CAModel仿真结果trace图上查看打点结果。

    图1所示,其中USER_DEFINE_1_DELAY表示DataCopy指令下发到指令开始执行的时间,USER_DEFINE_1表示指令执行的时间。

    图1 仿真打点示意图

Trace接口说明

表1 TRACE_START接口说明表

函数原型

#define TRACE_START(apid)

函数功能

起始位置打点。

参数(IN)

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

参数(OUT)

NA

-

返回值

NA

-

使用约束

  • TRACE_START/TRACE_STOP需配套使用,若Trace图上未显示打点,则说明两者没有配对。
  • 不支持跨核使用,例如TRACE_START在AI Cube打点,则TRACE_STOP打点也需要在AI Cube上,不能在AI Vector上。

调用示例

TRACE_START(0x2);
Add(zLocal, xLocal, yLocal, dataSize);
TRACE_STOP(0x2);
表2 TRACE_STOP接口说明表

函数原型

#define TRACE_STOP(apid)

函数功能

终止位置打点。

参数(IN)

apid

取值需与TRACE_START接口参数取值保持一致,否则影响打点结果。

参数(OUT)

None

-

返回值

NA

-

使用约束

  • TRACE_START/TRACE_STOP需配套使用,若Trace图上未显示打点,则说明两者没有配对。
  • 不支持跨核使用,例如TRACE_START在AI Cube打点,则TRACE_STOP打点也需要在AI Cube上,不能在AI Vector上。

调用示例

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