总体说明

接口简介

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类型数据的采集。
msptiActivityDisable 停止收集特定类型的Activity Record。
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返回的错误和结果代码。