Skip to main content

函数:create_search_result

函数:destroy_query_table

C函数原型aclError aclfvDestroyQueryTable(aclfvQueryTable *queryTable)
Python函数ret = acl.fv.destroy_query_table(query_table)
函数功能销毁通过acl.fv.create_query_table接口创建的aclfvQueryTable类型的数据。同步接口。 Atlas 200/500 A2推理产品不支持该接口。
输入说明query_table:int,指针地址,待销毁的aclfvQueryTable类型。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 特征向量检索

函数:create_search_input

C函数原型aclfvSearchInput *aclfvCreateSearchInput(aclfvQueryTable *queryTable, aclfvRepoRange *repoRange, uint32_t topk)
Python函数search_input = acl.fv.create_search_input(query_table, repo_range, topk)
函数功能创建aclfvSearchInput类型的数据,表示创建检索任务输入信息。同步接口。 如需销毁aclfvSearchInput类型的数据,请参见函数:destroy_search_input。 Atlas 200/500 A2推理产品不支持该接口。
输入说明- query_table:int,指针地址,检索的输入表信息。 调用acl.fv.create_query_table接口创建aclfvQueryTable类型的数据。
- repo_range:int,指针地址,检索的特征库范围。 调用acl.fv.create_repo_range接口创建aclfvRepoRange类型的数据。
- topk:单个检索请求需要返回的结果数量。
返回值说明**search_input:**int,指针地址。
- 返回aclfvSearchInput类型,表示成功。
- 返回0,表示失败。
约束说明

父主题: 特征向量检索

函数:destroy_search_input

C函数原型aclError aclfvDestroySearchInput(aclfvSearchInput *searchInput)
Python函数ret = acl.fv.destroy_search_input(search_input)
函数功能销毁通过acl.fv.create_search_input接口创建的aclfvSearchInput类型的数据。同步接口。 Atlas 200/500 A2推理产品不支持该接口。
输入说明search_input:int,指针地址,待销毁的aclfvSearchInput类型。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 特征向量检索

函数:create_search_result

C函数原型aclfvSearchResult *aclfvCreateSearchResult(uint32_t queryCnt, uint32_t *resultNum, uint32_t resultNumDataLen, uint32_t *id0, uint32_t *id1, uint32_t *resultOffset, float *resultDistance, uint32_t dataLen)
Python函数search_result = acl.fv.create_search_result(query_cnt, result_num, result_num_data_len, id_0, id_1, result_offset, result_distance, data_len)
函数功能创建aclfvSearchResult类型的数据,表示创建检索结果信息。同步接口。 如需销毁aclfvSearchResult类型的数据,请参见函数:destroy_search_result。 Atlas 200/500 A2推理产品不支持该接口。
输入说明- query_cnt:int,检索请求个数,1:N场景为1。
- result_num:int,每个检索请求的结果个数。
- result_num_data_len:int,resultNum的内存总长度。
- id_0:int,一级库id,总个数为topK*queryCnt。
- id_1:int,二级库id,总个数为topK*queryCnt。
- result_offset:int,每个检索请求的检索结果对应底库的偏移,总个数为topK*queryCnt。
- result_distance:int,每个检索结果与检索请求间的距离,总个数为topK*queryCnt。
- data_len:int,申请的内存大小,计算公式为:topK*queryCnt*4Byte。
返回值说明search_result:int,指针地址。
- 返回aclfvSearchResult类型,表示成功。
- 返回0,表示失败。
约束说明

父主题: 特征向量检索

函数:destroy_search_result

C函数原型aclError aclfvDestroySearchResult(aclfvSearchResult *searchResult)
Python函数ret = acl.fv.destroy_search_result(search_result)
函数功能销毁通过acl.fv.create_search_result接口创建的aclfvSearchResult类型的数据。同步接口。 Atlas 200/500 A2推理产品不支持该接口。
输入说明search_result:int,指针地址,待销毁的aclfvSearchResult类型。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 特征向量检索

功能介绍

功能

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

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

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

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

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

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

总体约束

不能与Profiling pyACL API for Subscription(订阅算子信息的Profiling pyACL API)的接口交叉调用:acl.prof.init接口和acl.prof.finalize接口之间不能调用acl.prof.model_subscribe接口、aclprofGet*接口、acl.prof.model_unsubscribe接口。

接口约束说明

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

函数:create_config

C函数原型aclprofConfig *aclprofCreateConfig(uint32_t *deviceIdlist,uint32_t deviceNums, aclprofAicoreMetrics aicoreMetrics, aclprofAicoreEvents *aicoreEvents, uint64_t dataTypeConfig)
Python函数prof_config = acl.prof.create_config(device_list,aicore_metrics, aicore_events**, data_type_config)**
函数功能创建aclprofConfig类型的数据,表示创建Profiling配置数据。同步接口。 aclProfConfig类型数据可以只创建一次、多处使用,用户需要保证数据的一致性和准确性。 如需销毁aclprofConfig类型的数据,请参见函数:destroy_config
输入说明device_list:Device ID列表。 aicore_metrics:表示aclprofAicoreMetricsaicore_events:表示AI Core事件,目前配置为0。 data_type_config: 用户选择如下多个值进行逻辑或(例如:ACL_PROF_ACL_API|ACL_PROF_AICORE_METRICS),作为data_type_config参数值。每个值表示某一类性能数据,详细说明如下:
- ACL_PROF_ACL_API:表示采集pyACL接口的性能数据,包括的同步异步内存复制时延等。
- ACL_PROF_TASK_TIME:采集算子下发耗时、算子执行耗时数据以及算子基本信息数据,提供更全面的性能分析数据。
- ACL_PROF_TASK_TIME_L0:采集算子下发耗时、算子执行耗时数据。与ACL_PROF_TASK_TIME相比,由于不采集算子基本信息数据,采集时性能开销较小,可更精准统计相关耗时数据。
- ACL_PROF_AICORE_METRICS:表示采集AI Core性能指标数据,逻辑或时必须包括该宏,aicore_metrics入参处配置的性能指标采集项才有效。
- ACL_PROF_TASK_MEMORY:控制CANN算子的内存占用情况采集开关。仅采集GE组件算子。
- ACL_PROF_AICPU:表示采集AI CPU任务的开始、结束数据。
- ACL_PROF_L2CACHE:表示采集L2 Cache数据。
- ACL_PROF_HCCL_TRACE:控制hccl数据采集开关。
- ACL_PROF_MSPROFTX:获取用户和上层框架程序输出的性能数据。
- ACL_PROF_RUNTIME_API:控制runtime api性能数据采集开关。
返回值说明prof_config:int。
- 返回非0值表示成功,返回值为返回aclprofConfig类型的指针地址。
- 返回0表示失败。
约束说明- 使用acl.prof.destroy_config接口销毁aclprofConfig类型的数据,如不销毁会导致内存未被释放。
- 与acl.prof.destroy_config接口配对使用,先调用acl.prof.create_config接口再调用acl.prof.destroy_config接口。

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

在线提单