Skip to content

PrintTimeStamp

产品支持情况

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

功能说明

头文件路径为:"basic_api/kernel_operator_dump_tensor_intf.h"

提供时间戳打点功能,用于在算子Kernel代码中标记关键执行点。调用后会打印如下信息:

  • descId:用户自定义标识符,用于区分不同打点位置;
  • rsv:保留值,默认为0,无需关注;
  • timeStamp:当前系统cycle数,用于计算时间差,时间换算规则可参考GetSystemCycle(ISASI)
  • pcPtr:pc指针数值,若无特殊需求,用户无需关注。
  • entry:算子开始执行的cycle数,若无特殊需求,用户无需关注。

打印示例如下:

descId is 11, rsv is 0, timeStamp is 815603975350485, pcPtr is 19792358553124, entry is 815603975328116.

注意 该接口主要用于调试分析,开启后会对算子性能产生一定影响,通常在调试阶段使用,生产环境建议关闭。
默认情况下,该功能关闭,开发者可以通过修改CMakeList.txt文件或xxx.cmake文件,在target_compile_definitions命令中增加-DASCENDC_TIME_STAMP_ON来开启打点功能。示例如下:

Text
target_compile_definitions({kernel_target_name} PRIVATE
  -DASCENDC_TIME_STAMP_ON
)

函数原型

C++
__aicore__ inline void PrintTimeStamp(uint32_t descId)

参数说明

参数名称输入/输出描述
descId输入用户自定义标识符(自定义数字),用于区分不同打点位置。
注意:[0,0xffff]是预留给Ascend C内部各个模块使用的id值,用户自定义的descId建议使用大于0xffff的数值。

返回值说明

约束说明

可以参考utils目录SIMD约束下的asc_time_stamp说明。

调用示例

C++
AscendC::PrintTimeStamp(65577);

打印结果如下:

// 一些框架内部的打点信息
descId is 65577, rsv is 0, timeStamp is 13806084506158, pcPtr is 20619064414544, entry is 13806084502126.

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