文件最后提交记录最后更新时间
add msptiActivityIsEnabled Co-authored-by: hehongzhe<935062458@qq.com> # message auto-generated for no-merge-commit merge: !103 merge master into master add msptiActivityIsEnabled Created-by: hhz0 Commit-by: hehongzhe Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** mspti增加msptiActivityIsEnabled接口,用于查询指定类型的Activity Kind是否已使能 - **修改内容:** mspti增加msptiActivityIsEnabled接口,用于查询指定类型的Activity Kind是否已使能 ---- ## 2. 功能验证 - [x] **功能自验** - [x] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ![image.png](https://raw.gitcode.com/user-images/assets/8528170/d279a37a-48bf-4e0a-8695-bb3ae005c0a2/image.png 'image.png') ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!1037 天前
add msptiActivityIsEnabled Co-authored-by: hehongzhe<935062458@qq.com> # message auto-generated for no-merge-commit merge: !103 merge master into master add msptiActivityIsEnabled Created-by: hhz0 Commit-by: hehongzhe Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** mspti增加msptiActivityIsEnabled接口,用于查询指定类型的Activity Kind是否已使能 - **修改内容:** mspti增加msptiActivityIsEnabled接口,用于查询指定类型的Activity Kind是否已使能 ---- ## 2. 功能验证 - [x] **功能自验** - [x] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ![image.png](https://raw.gitcode.com/user-images/assets/8528170/d279a37a-48bf-4e0a-8695-bb3ae005c0a2/image.png 'image.png') ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!1037 天前
README.md

C API总体说明

接口简介

Profiling模块提供msPTI C接口,用于实现采集各模块性能数据。

msPTI API的功能介绍和使用示例请参见msPTI工具

头文件路径:${INSTALL_DIR}/include/mspti。

库文件路径:${INSTALL_DIR}/lib64/libmspti.so。

${INSTALL_DIR}请替换为CANN Toolkit开发套件包安装后文件存储路径。以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/cann。

接口列表

具体接口如下:

表 1 Activity API

接口 说明
Function类型 Function说明
msptiActivityRegisterCallbacks 向MSPTI注册回调函数,用于Activity Buffer处理。
msptiActivityEnable 用于使能指定类型Activity Kind数据的采集。
msptiActivityDisable 停止采集指定类型Activity Kind的数据。
msptiActivityIsEnabled 查询指定类型Activity Kind的采集是否使能。
msptiActivityGetNextRecord 依次从Activity Buffer获取Activity Record数据。
msptiActivityFlushAll 订阅者手动Flush Activity Buffer中记录的数据。
msptiActivityFlushPeriod 设置Flush的执行周期。
msptiActivityPushExternalCorrelationId 为调用线程推送外部关联ID。
msptiActivityPopExternalCorrelationId 为调用线程拉取外部关联ID。
msptiActivityEnableMarkerDomain 开启对应域打点的采集。
msptiActivityDisableMarkerDomain 关闭对应域打点的采集。
Typedef类型 Typedef说明
msptiBuffersCallbackRequestFunc 向MSPTI注册回调函数,申请Activity Buffer的存储空间。
msptiBuffersCallbackCompleteFunc 向MSPTI注册回调函数,释放Activity Buffer中的数据。
Enumeration类型 Enumeration说明
msptiActivityKind MSPTI支持的所有Activity类型。
msptiActivityFlag Activity Record的活动标记。
msptiActivitySourceKind 标记Activity数据来源。
msptiActivityMemoryOperationType 内存操作类型的枚举类。
msptiActivityMemoryKind 内存类型的枚举类。
msptiActivityMemcpyKind 内存拷贝类型的枚举类。
msptiExternalCorrelationKind 支持关联的外部API的类型。
msptiCommunicationDataType 记录通信算子的数据类型。
Data Structure类型 Data Structure说明
msptiActivity Activity Record的基础结构体。
msptiActivityApi Activity Record类型MSPTI_ACTIVITY_KIND_API对应的结构体。
msptiActivityHccl Activity Record类型MSPTI_ACTIVITY_KIND_HCCL对应的结构体。
msptiActivityKernel Activity Record类型MSPTI_ACTIVITY_KIND_KERNEL对应的结构体。
msptiActivityMarker Activity Record类型MSPTI_ACTIVITY_KIND_MARKER对应的结构体。
msptiActivityMemory Activity Record类型MSPTI_ACTIVITY_KIND_MEMORY对应的结构体。
msptiActivityMemset Activity Record类型MSPTI_ACTIVITY_KIND_MEMSET对应的结构体。
msptiActivityMemcpy Activity Record类型MSPTI_ACTIVITY_KIND_MEMCPY对应的结构体。
msptiActivityExternalCorrelation Activity Record类型MSPTI_ACTIVITY_KIND_EXTERNAL_CORRELATION对应的结构体。
msptiActivityCommunication Activity Record类型MSPTI_ACTIVITY_KIND_COMMUNICATION对应的结构体。
Union类型 Union说明
msptiObjectId 用于识别Marker的进程ID、线程ID、Device ID、Stream ID。

Activity Record:NPU的Profiling记录,使用结构体表示,如msptiActivityApi、msptiActivityMarker等。

Activity Buffer:用于缓存Activity Record数据,并将一个或多个Activity Record从MSPTI传输到客户端。用户根据业务需要提供空的Activity Buffer缓冲区,以确保Activity Record不会被遗漏。

表 2 Callback API

接口 说明
Function类型 Function说明
msptiSubscribe 通过该接口向MSPTI注册回调函数。
msptiUnsubscribe 向MSPTI注销当前订阅者。
msptiEnableCallback 为特定domainCallbackId的订阅者开启或关闭回调。
msptiEnableDomain 为特定domain的订阅者开启或关闭所有回调。
Typedef类型 Typedef说明
msptiCallbackFunc 回调函数类型。
msptiCallbackId 标识callback跟踪函数的ID。
msptiSubscriberHandle 订阅者的句柄。
Enumeration类型 Enumeration说明
msptiCallbackDomain 相关API函数或CANN驱动程序活动的回调点。
msptiApiCallbackSite 指定API调用中发出回调的点,如回调的开始和回调的结束。
msptiCallbackIdRuntime Runtime API函数的索引定义。
msptiCallbackIdHccl 通信API函数的索引的简要定义。
Data Structure类型 Data Structure说明
msptiCallbackData 用于指定传递到回调函数的数据。

表 3 Result Codes

接口 说明
Enumeration类型 Enumeration说明
msptiResult MSPTI返回的错误和结果代码。