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.