news 2026/5/9 19:47:30

CANN/runtime msproftx扩展接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/runtime msproftx扩展接口

19-02 msproftx扩展接口

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

本章节描述 msproftx 扩展接口,用于自定义性能标记(Stamp)、范围标记及调用栈标记。

  • void *aclprofCreateStamp():创建msproftx事件标记。
  • aclError aclprofSetStampTraceMessage(void *stamp, const char *msg, uint32_t msgLen):为msproftx事件标记携带字符串描述,在Profiling解析并导出结果中msprof_tx summary数据展示。
  • aclError aclprofMark(void *stamp):msproftx标记瞬时事件。
  • aclError aclprofMarkEx(const char *msg, size_t msgLen, aclrtStream stream):aclprofMarkEx打点接口。
  • aclError aclprofPush(void *stamp):msproftx用于记录事件发生的时间跨度的开始时间。
  • aclError aclprofPop():msproftx用于记录事件发生的时间跨度的结束时间。
  • aclError aclprofRangeStart(void *stamp, uint32_t *rangeId):msproftx用于记录事件发生的时间跨度的开始时间。
  • aclError aclprofRangeStop(uint32_t rangeId):msproftx用于记录事件发生的时间跨度的结束时间。
  • aclError aclprofRangePushEx(aclprofEventAttributes *attr):在Torch场景下,msproftx上报Tensor信息。
  • aclError aclprofRangePop():在Torch场景下,msproftx上报Tensor信息。
  • void aclprofDestroyStamp(void *stamp):释放msproftx事件标记。

扩展接口使用说明

  • 调用接口要求:msproftx功能相关接口须在aclprofStart接口与aclprofStop接口之间调用。其中配对使用的接口有:aclprofCreateStamp/aclprofDestroyStamp、aclprofPush/aclprofPop、aclprofRangeStart/aclprofRangeStop。
  • 接口调用顺序aclprofStart接口(指定Device 0和Device 1)-->aclprofCreateStamp接口-->aclprofSetStampTraceMessage接口-->aclprofMark接口-->(aclprofPush接口-->aclprofPop接口)或(aclprofRangeStart接口-->aclprofRangeStop接口)-->aclprofDestroyStamp接口-->aclprofStop接口(与aclprofStart接口的aclprofConfig数据保持一致)。

aclprofCreateStamp

void *aclprofCreateStamp()

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

创建msproftx事件标记。后续调用aclprofMark、aclprofSetStampTraceMessage、aclprofPush和aclprofRangeStart接口时需要以描述该事件的指针作为输入,表示记录该事件发生的时间跨度。

返回值说明

  • 返回void类型的指针,表示成功。
  • 返回nullptr,表示失败。

约束说明

与aclprofDestroyStamp接口配对使用,需提前调用aclprofStart接口。




aclprofSetStampTraceMessage

aclError aclprofSetStampTraceMessage(void *stamp, const char *msg, uint32_t msgLen)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

为msproftx事件标记携带字符串描述,在Profiling解析并导出结果中msprof_tx summary数据展示。

参数说明

参数名输入/输出说明
stamp输入Stamp指针,指代msproftx事件标记。
指定aclprofCreateStamp接口的指针。
msg输入Stamp信息字符串指针。
msgLen输入字符串长度。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

在aclprofCreateStamp接口和aclprofDestroyStamp接口之间调用。




aclprofMark

aclError aclprofMark(void *stamp)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

msproftx标记瞬时事件。

调用此接口后,Profiling自动在Stamp指针中加上当前时间戳,将Event type设置为Mark,表示开始一次msproftx采集。

参数说明

参数名输入/输出说明
stamp输入Stamp指针,指代msproftx事件标记。
指定aclprofCreateStamp接口的指针。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

在aclprofCreateStamp接口和aclprofDestroyStamp接口之间调用。




aclprofMarkEx

aclError aclprofMarkEx(const char *msg, size_t msgLen, aclrtStream stream)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

aclprofMarkEx打点接口。

调用此接口向配置的Stream流上下发打点任务,用于标识Host侧打点与Device侧打点任务的关系。

参数说明

参数名输入/输出说明
msg输入打点信息字符串指针。类型定义请参见aclrtStream。
msgLen输入字符串长度。最大支持127字符。
stream输入指定Stream。
取值详见aclrtStream。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclprofPush

aclError aclprofPush(void *stamp)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

msproftx用于记录事件发生的时间跨度的开始时间。

调用此接口后,Profiling自动在Stamp指针中记录开始的时间戳,将Event type设置为Push/Pop。

参数说明

参数名输入/输出说明
stamp输入Stamp指针,指代msproftx事件标记。
指定aclprofCreateStamp接口的指针。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

  • 与aclprofPop接口成对使用,表示时间跨度的开始和结束。
  • 在aclprofCreateStamp接口和aclprofDestroyStamp接口之间调用。
  • 不能跨线程调用,若需要跨线程可使用aclprofRangeStart/aclprofRangeStop接口。



aclprofPop

aclError aclprofPop()

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

msproftx用于记录事件发生的时间跨度的结束时间。

调用此接口后,Profiling自动在Stamp指针中记录采集结束的时间戳。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

  • 与aclprofPush接口成对使用,表示时间跨度的开始和结束。
  • 在aclprofCreateStamp接口和aclprofDestroyStamp接口之间调用。
  • 不能跨线程调用。若需要跨线程可使用aclprofRangeStart/aclprofRangeStop接口。



aclprofRangeStart

aclError aclprofRangeStart(void *stamp, uint32_t *rangeId)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

msproftx用于记录事件发生的时间跨度的开始时间。

调用此接口后,Profiling自动在Stamp指针记录采集开始的时间戳,将Event type设置为Start/Stop,生成一个进程唯一的id,并将Stamp保存在以进程粒度维护的一个map中。

参数说明

参数名输入/输出说明
stamp输入Stamp指针,指代msproftx事件标记。
指定aclprofCreateStamp接口的指针。
rangeId输出msproftx事件标记的唯一标识。用于在跨线程时区分。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

  • 与aclprofRangeStop接口成对使用,表示时间跨度的开始和结束。
  • 在aclprofCreateStamp接口和aclprofDestroyStamp接口之间调用。
  • 可以跨线程调用。



aclprofRangeStop

aclError aclprofRangeStop(uint32_t rangeId)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

msproftx用于记录事件发生的时间跨度的结束时间。

调用此接口后,Profiling自动在Stamp指针中记录采集结束的时间戳。

参数说明

参数名输入/输出说明
rangeId输出msproftx事件标记的唯一标识。用于在跨线程时区分。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

  • 与aclprofRangeStart接口成对使用,表示时间跨度的开始和结束。
  • 在aclprofCreateStamp接口和aclprofDestroyStamp接口之间调用。
  • 可以跨线程调用。



aclprofRangePushEx

aclError aclprofRangePushEx(aclprofEventAttributes *attr)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

在Torch场景下,msproftx上报Tensor信息。

调用此接口后,Profiling判断messageType为MESSAGE_TYPE_TENSOR_INFO时,缓存Tensor信息。

参数说明

参数名输入/输出说明
attr输入需要上报的Tensor信息,结构体详见aclprofEventAttributes。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

与aclprofRangePop接口配对使用,先调用aclprofRangePushEx接口再调用aclprofRangePop接口。




aclprofRangePop

aclError aclprofRangePop()

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

在Torch场景下,msproftx上报Tensor信息。

调用此接口后,Profiling上报缓存的Tensor信息。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

与aclprofRangePushEx接口配对使用,先调用aclprofRangePushEx接口再调用aclprofRangePop接口。




aclprofDestroyStamp

void aclprofDestroyStamp(void *stamp)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

释放msproftx事件标记。

参数说明

参数名输入/输出说明
stamp输入Stamp指针,指代msproftx事件标记。
指定aclprofCreateStamp接口的指针。

返回值说明

约束说明

与aclprofCreateStamp接口配对使用,在aclprofStop接口前调用。

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 19:45:43

AI心智理论:从信念推理到社会智能的技术实现与应用

1. 项目概述:当AI开始“揣测”人心最近和几个做认知科学和复杂系统的朋友聊天,话题总绕不开一个词:“心智理论”。这可不是什么玄学,简单说,就是个体理解自己以及他人拥有信念、欲望、意图等心理状态,并能据…

作者头像 李华
网站建设 2026/5/9 19:42:32

Flutter GetX 状态管理完全指南

Flutter GetX 状态管理完全指南 引言 在 Flutter 开发中,状态管理一直是核心话题。GetX 作为一个轻量级、高性能的状态管理解决方案,以其简洁的语法和强大的功能赢得了广大开发者的青睐。本文将深入探讨 GetX 的核心概念、使用方式以及最佳实践。 Get…

作者头像 李华
网站建设 2026/5/9 19:42:30

AI驱动的网络安全渗透测试:原理、挑战与未来

1. 项目概述:当AI成为“黑客”,我们走到了哪一步?干了十几年网络安全,从手动敲命令到写脚本自动化,再到今天看着大语言模型(LLM)试图理解并执行渗透测试任务,感觉像是见证了一场静默…

作者头像 李华
网站建设 2026/5/9 19:41:32

Linux安全之AIDE文件完整性监控实战配置与策略解析

1. AIDE文件完整性监控的核心价值 第一次接触AIDE是在五年前的一次服务器入侵事件后。当时客户的Web服务器被植入了挖矿程序,但常规的安全检查工具都没能及时发现问题。直到系统性能严重下降时,我们才通过文件比对发现了被篡改的系统文件。那次经历让我深…

作者头像 李华
网站建设 2026/5/9 19:36:33

量子纠错技术H-VEC:原理与应用解析

1. 量子纠错基础与H-VEC技术概述量子计算面临的核心挑战之一是量子比特的脆弱性。与传统比特不同,量子比特会因环境干扰而迅速退相干,导致计算错误。量子纠错(QEC)技术通过将逻辑量子比特编码到多个物理量子比特中,实现…

作者头像 李华