aclprofGetOpDescSize
功能介绍
功能
该章节描述使用订阅算子信息的Profiling AscendCL API采集性能数据,实现将采集到的Profiling数据解析后写入管道,由用户读入内存,再由用户调用AscendCL的接口获取性能数据。
接口调用方式:aclprofModelSubscribe接口、aclprofGet*接口、aclprofModelUnSubscribe接口配合使用,实现该方式的性能数据采集,当前支持获取网络模型中算子的性能数据,包括算子名称、算子类型名称、算子执行时间等。
总体约束
不能与Profiling AscendCL API(通过Profiling AscendCL API采集并落盘性能数据)的接口交叉调用:aclprofModelSubscribe接口和aclprofModelUnSubscribe接口之间不能调用aclprofInit接口、aclprofStart接口、aclprofStop接口和aclprofFinalize接口。
接口约束说明
- 接口调用要求:
-
aclprofModelSubscribe接口在模型执行之前调用,若在模型执行过程中调用aclprofModelSubscribe接口,Profling采集到的数据为调用aclprofModelSubscribe接口之后的数据,可能导致数据不完整。
-
aclprofModelSubscribe接口需与aclprofModelUnSubscribe接口配对使用,不能在调用aclprofModelUnSubscribe接口前,多次调用
aclprofModelSubscribe接口重复订阅相同的模型。
-
不能调用aclprofModelSubscribe接口订阅不存在的模型ID。
-
不能调用aclprofModelUnSubscribe接口取消订阅不存在的模型ID或未订阅过的模型ID。
-
如果在同一个Device上加载了多个模型,只能对多个模型下发同样的订阅配置。
-
- 接口调用顺序:
-
建议的接口调用顺序如下:
模型加载-->aclprofModelSubscribe接口-->aclprofGetOpDescSize接口-->aclprofGetOpNum接口-->aclprofGetOpType/aclprofGetOpName/aclprofGetOpStart/aclprofGetOpEnd/aclprofGetOpDuration/aclprofGetModelId接口-->aclprofModelUnSubscribe接口
-
错误的接口调用顺序示例如下,以重复定义同一个模型为例:
模型1加载-->aclprofModelSubscribe接口(指定模型1)-->aclprofModelSubscribe接口(指定模型1)-->aclprofModelUnSubscribe接口
-
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
aclprofModelSubscribe
函数功能
网络场景下,订阅算子的基本信息,包括算子名称、算子类型、算子执行耗时等。同步接口。
约束说明
与aclprofModelUnSubscribe接口配对使用。
函数原型
aclError aclprofModelSubscribe(uint32_t modelId, const aclprofSubscribeConfig *profSubscribeConfig)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| modelId | 输入 | 待订阅的网络模型的ID。 调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后,会返回模型ID。 |
| profSubscribeConfig | 输入 | 待订阅的配置信息。 需提前调用aclprofCreateSubscribeConfig接口创建aclprofSubscribeConfig类型的数据。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见Profiling性能数据采集。
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
aclprofModelUnSubscribe
函数功能
网络场景下,取消订阅算子的基本信息,包括算子名称、算子类型、算子执行耗时等。同步接口。
约束说明
与aclprofModelSubscribe接口配对使用。
函数原型
aclError aclprofModelUnSubscribe(uint32_t modelId)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| modelId | 输入 | 已订阅的模型的ID。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见Profiling性能数据采集。
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
aclprofGetOpDescSize
函数功能
获取单个算子数据结构的大小,单位为Byte。当前版本中约定每个算子数据结构的大小是一样的。同步接口。
建议用户新建一个线程,在新线程内调用该接口,否则可能阻塞主线程中的其它任务调度。
函数原型
aclError aclprofGetOpDescSize(size_t *opDescSize)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opDescSize | 输出 | 算子数据结构的大小。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见Profiling性能数据采集。
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
aclprofGetOpNum
函数功能
获取指定内存中算子的数量。同步接口。
建议用户新建一个线程,在新线程内调用该接口,否则可能阻塞主线程中的其它任务调度。
函数原型
aclError aclprofGetOpNum(const void *opInfo, size_t opInfoLen, uint32_t *opNumber)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opInfo | 输入 | 指定算子信息的内存地址。 调用aclprofGetOpDescSize接口获取到单个算子数据结构的大小后,用户需按照“单个算子数据结构的大小*整数系数”得到的数值申请内存,用于存放Profiling采集到的算子信息数据,作为本接口的输入。 |
| opInfoLen | 输入 | 算子信息的长度。 |
| opNumber | 输出 | 算子的数量。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见Profiling性能数据采集。
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
aclprofGetOpTypeLen
函数功能
获取算子类型的字符串长度,用于内存申请。同步接口。
建议用户新建一个线程,在新线程内调用该接口,否则可能阻塞主线程中的其它任务调度。
函数原型
aclError aclprofGetOpTypeLen(const void *opInfo, size_t opInfoLen, uint32_t index, size_t *opTypeLen)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opInfo | 输入 | 包含算子信息的地址。 |
| opInfoLen | 输入 | 算子信息的长度。 |
| index | 输入 | 指定获取第几个算子的算子类型名称。 用户调用aclprofGetOpNum接口获取算子数量后,这个index的取值范围:[0, (算子数量-1)]。 |
| opTypeLen | 输出 | opType的长度。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见Profiling性能数据采集。
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
aclprofGetOpType
函数功能
获取指定算子的算子类型名称。同步接口。
建议用户新建一个线程,在新线程内调用该接口,否则可能阻塞主线程中的其它任务调度。
函数原型
aclError aclprofGetOpType(const void *opInfo, size_t opInfoLen, uint32_t index, char *opType, size_t opTypeLen)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opInfo | 输入 | 包含算子信息的地址。 |
| opInfoLen | 输入 | 算子信息的长度。 |
| index | 输入 | 指定获取第几个算子的算子类型名称。 用户调用aclprofGetOpNum接口获取算子数量后,这个index的取值范围:[0, (算子数量-1)]。 |
| opType | 输出 | 算子类型名称。 |
| opTypeLen | 输入 | opType的实际内存申请长度。取值范围建议不小于aclprofGetOpTypeLen,否则内容会有截断。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见Profiling性能数据采集。
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
在线提单