产品 |
是否支持 |
|---|---|
Ascend 950PR/Ascend 950DT |
√ |
√ |
|
√ |
|
√ |
|
x |
|
x |
|
x |
推荐使用asc_time_stamp接口进行时间戳的获取,该接口同时适用于C语言和C++语言编程。
提供时间戳打点功能,用于在算子Kernel代码中标记关键执行点。调用后会打印如下信息:
打印示例如下:
1 | descId is 11, rsv is 0, timeStamp is 815603975350485, pcPtr is 19792358553124, entry is 815603975328116. |
该功能主要用于调试和性能分析,开启后会对算子性能产生一定影响,生产环境建议关闭。
默认情况下,该功能关闭,开发者可以按需通过增加-DASCENDC_TIME_STAMP_ON编译选项的方式,开启打点功能。
1 | __aicore__ inline void PrintTimeStamp(uint32_t descId) |
参数名 |
输入/输出 |
描述 |
|---|---|---|
descId |
输入 |
用户自定义标识符(自定义数字),用于区分不同打点位置。 注意:
[0, 0xffff]是预留给Ascend C内部各个模块使用的id值,用户自定义的descId建议使用大于0xffff的数值。 |
无
1 | AscendC::PrintTimeStamp(65577); |
打印结果如下(Dump信息头等仅在使用自定义算子工程时才会打印):
1 2 3 | opType=AddCustom, DumpHead: AIV-0, CoreType=AIV, block dim=8, total_block_num=8, block_remain_len=1047136, block_initial_space=1048576, rsv=0, magic=5aa5bccd ...// 一些框架内部的打点信息 descId is 65577, rsv is 0, timeStamp is 13806084506158, pcPtr is 20619064414544. |