Skip to main content

aclprofInit

aclfvSearch

函数功能

特征1:N或N:M检索。同步接口。

Atlas 200/500 A2推理产品不支持该接口。

约束说明

  • 非线程安全,N:M场景不允许多线程同时添加\检索\删除。

  • N:M场景或1:N场景,不添加底库,调用aclfvSearch接口检索时,返回结果数量为0。

  • 调用本接口,内部会默认创建一个Stream,用于接口内任务同步执行,在接口执行完成后,该Stream资源会被自动释放。

    受硬件限制,Stream总数有限,请参见aclrtCreateStream处的说明。

函数原型

aclError aclfvSearch(****aclfvSearchType type, aclfvSearchInput *searchInput, aclfvSearchResult *searchRst)

参数说明

参数名输入/输出说明
type输入特征检索场景类型。
searchInput输入检索输入信息的指针。 需提前调用aclfvCreateSearchInput接口创建aclfvSearchInput类型的数据。
searchRst输出检索输出结果的指针。 需提前调用aclfvCreateSearchResult接口创建aclfvSearchResult类型的数据,该数据中queryCnt参数应与检索输入信息searchInput中的queryCnt参数相同。 检索输出返回的结果数量通过aclfvCreateSearchInput接口的topk参数设置,但与调用aclfvInit接口进行初始化时设置的topK结果数量最大值有关,若调用aclfvCreateSearchInput接口设置的topk参数值大于或等于初始化时设置的topK结果数量最大值,则在返回检索输出结果时,按初始化时设置的topK结果数量最大值返回检索结果;若调用aclfvCreateSearchInput接口设置的topk参数值小于初始化时设置的topK结果数量最大值,则在返回检索输出结果时,按实际通过aclfvCreateSearchInput接口设置的topk参数值返回检索结果。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: 特征向量检索

功能介绍

功能

该章节描述通过Profiling AscendCL API采集并落盘性能数据,实现将采集到的Profiling数据写入文件,再使用Profiling工具解析该文件(请参见《性能分析工具使用指南》下的“高级功能>数据解析与导出”),并展示性能分析数据。

包括以下两种接口调用方式:

  • aclprofInit接口、aclprofStart接口、aclprofStop接口、aclprofFinalize接口配合使用,实现该方式的性能数据采集。该方式可获取AscendCL的接口性能数据、AI Core上算子的执行时间、AI Core性能指标数据等。目前这些接口为进程级控制,表示在进程内任意线程调用该接口,其它线程都会生效。

    一个进程内,可以根据需求多次调用这些接口,基于不同的Profiling采集配置,采集数据。

  • 调用aclInit接口,在AscendCL初始化阶段,通过*.json 文件传入要采集的Profiling数据。该方式可获取AscendCL的接口性能数据、AI Core上算子的执行时间、AI Core性能指标数据等。

    一个进程内,只能调用一次aclInit接口,如果要修改Profiling采集配置,需修改*.json文件中的配置。详细使用说明请参见aclInit接口处的说明,不在本章节描述。

总体约束

不能与Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)的接口交叉调用:aclprofInit接口和aclprofFinalize接口之间不能调用aclprofModelSubscribe接口、aclprofGet*接口、aclprofModelUnSubscribe接口。

接口约束说明

  • 调用接口要求
    • aclprofInit接口必须在aclInit接口之后、模型加载之前调用。

      如果已经通过aclInit接口配置了Profiling信息,则调用aclprofInit接口、aclprofStart接口、aclprofStop接口、aclprofFinalize时,会返回报错。

      如果没有调用aclprofInit接口,调用aclprofStart接口、aclprofStop接口、aclprofFinalize时,会返回报错。

    • aclprofStart接口在模型执行之前调用,若在模型执行过程中调用aclprofStart接口,Profling采集到的数据为调用aclprofStart接口之后的数据,可能导致数据不完整。

      调用aclprofStart接口时,可以指定从一个Device上采集性能数据,也可以指定从多个Device上采集性能数据。

      一个用户APP进程内,如果连续调用多次aclprofStart接口,指定重复的Profiling配置,或指定的Device重复,会返回报错。

    • 在用户APP的进程生命周期内,aclprofInit接口与aclprofFinalize接口配对使用,建议只调用一次,如该组合多次调用可以改变保存性能数据的文件的路径。

    • aclprofStart接口与aclprofStop接口需配对使用。

    • aclprofSetConfig接口必须在aclprofStart接口之前调用。一个APP进程内,可以根据需要选择一次或多次调用aclprofSetConfig接口。

    • 调用aclFinalize并接收到正常退出码后为执行完毕,其他情况为非正常。由于性能数据采集不支持多进程并发执行,为确保驱动关闭正常,需要在前一个性能数据采集用例完全执行完毕之后再执行下一轮采集。建议在aclFinalize接口返回值上加入异常处理操作,方便展示执行状态与问题定位。

  • 接口调用顺序

父主题: Profiling AscendCL API(通过Profiling AscendCL API采集并落盘性能数据)

aclprofInit

函数功能

初始化Profiling,目前用于设置保存性能数据的文件的路径。同步接口。

约束说明

aclprofFinalize接口配对使用,先调用aclprofInit接口再调用aclprofFinalize接口。

函数原型

aclError aclprofInit(const char *profilerResultPath, size_t length)

参数说明

参数名输入/输出说明
profilerResultPath输入指定保存性能数据的文件的路径,此路径为绝对路径。
length输入profilerResultPath的长度,单位为Byte,最大长度不超过4096字节。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用示例,参见Profiling性能数据采集

父主题: Profiling AscendCL API(通过Profiling AscendCL API采集并落盘性能数据)

aclprofSetConfig

函数功能

aclprofCreateConfig接口的扩展接口,用于设置性能数据采集参数。同步接口。

该接口支持多次调用,用户需要保证数据的一致性和准确性。

约束说明

先调用aclprofSetConfig接口再调用aclprofStart接口,可根据需求选择调用该接口。

函数原型

aclError aclprofSetConfig(aclprofConfigType configType, const char *config, size_t configLength)

参数说明

参数名输入/输出说明
configType输入用户选择如下多个宏进行逻辑或(例如:ACL_PROF_SYS_HARDWARE_MEM_FREQ | ACL_PROF_SYS_IO_FREQ),作为configType参数值。每个宏表示某一类性能数据,详细说明如下:
- ACL_PROF_STORAGE_LIMIT :指定落盘目录允许存放的最大文件容量,有效取值范围为[200, 4294967295],单位为MB。
- ACL_PROF_SYS_HARDWARE_MEM_FREQ:片上内存的带宽及内存信息采集频率、LLC的读写带宽数据采集频率以及acc_pmu数据和SOC传输带宽信息采集频率,范围[1,100]。
- ACL_PROF_LLC_MODE:LLC Profiling采集事件。可以设置为:
- read:读事件,三级缓存读速率。
- write:写事件,三级缓存写速率。默认为read。
- ACL_PROF_SYS_IO_FREQ:NIC采集频率,范围[1,100]。 容器场景下本参数不生效。
- ACL_PROF_DVPP_FREQ:DVPP采集频率,范围[1,100]。
config输入指定配置项参数值。
configLength输入config的长度,单位为Byte,最大长度不超过256字节。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: Profiling AscendCL API(通过Profiling AscendCL API采集并落盘性能数据)

aclprofStart

函数功能

下发Profiling请求,使能对应数据的采集。同步接口。

用户可根据需要,在模型执行过程中按需调用aclprofStart接口,Profling采集到的数据为调用该接口之后的数据。

约束说明

aclprofStop接口配对使用,先调用aclprofStart接口再调用aclprofStop接口。

函数原型

aclError aclprofStart(aclprofConfig *profilerConfig)

参数说明

参数名输入/输出说明
profilerConfig输入指定Profiling配置数据。 需提前调用aclprofCreateConfig接口创建aclprofConfig类型的数据。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用示例,参见Profiling性能数据采集

父主题: Profiling AscendCL API(通过Profiling AscendCL API采集并落盘性能数据)

在线提单