CANN/asc-devkit时间戳打印接口
PrintTimeStamp【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品√Atlas 推理系列产品 AI CorexAtlas 推理系列产品 Vector CorexAtlas 训练系列产品x功能说明推荐使用asc_time_stamp接口进行时间戳的获取该接口同时适用于C语言和C语言编程。提供时间戳打点功能用于在算子Kernel代码中标记关键执行点。调用后会打印如下信息descId:用户自定义标识符用于区分不同打点位置rsv 保留值默认为0无需关注timeStamp :当前系统cycle数用于计算时间差时间换算规则可参考GetSystemCycle(ISASI).md)pcPtrpc指针数值若无特殊需求用户无需关注。entry算子开始执行的cycle数若无特殊需求用户无需关注。打印示例如下descId is 11, rsv is 0, timeStamp is 815603975350485, pcPtr is 19792358553124, entry is 815603975328116.[!CAUTION]注意 该功能主要用于调试和性能分析开启后会对算子性能产生一定影响生产环境建议关闭。 默认情况下该功能关闭开发者可以按需通过增加-DASCENDC_TIME_STAMP_ON编译选项的方式开启打点功能。函数原型__aicore__ inline void PrintTimeStamp(uint32_t descId)参数说明参数名输入/输出描述descId输入用户自定义标识符自定义数字用于区分不同打点位置。注意[0, 0xffff]是预留给Ascend C内部各个模块使用的id值用户自定义的descId建议使用大于0xffff的数值。返回值说明无约束说明该功能仅用于NPU上板调试。暂不支持算子入图场景的打印。单次调用本接口打印的数据总量不可超过1MB还包括少量框架需要的头尾信息通常可忽略。使用时应注意如果超出这个限制则数据不会被打印。在使用自定义算子工程进行工程化算子开发时一个算子所有使用Dump功能的接口在每个核上Dump的数据总量不可超过1MB。请开发者自行控制待打印的内容数据量超出则不会打印。调用示例AscendC::PrintTimeStamp(65577);打印结果如下Dump信息头等仅在使用自定义算子工程时才会打印opTypeAddCustom, DumpHead: AIV-0, CoreTypeAIV, block dim8, total_block_num8, block_remain_len1047136, block_initial_space1048576, rsv0, magic5aa5bccd ...// 一些框架内部的打点信息 descId is 65577, rsv is 0, timeStamp is 13806084506158, pcPtr is 20619064414544.【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考