Skip to main content

功能介绍

函数: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采集并落盘性能数据)

函数:set_config

C函数原型aclError aclprofSetConfig(aclprofConfigType configType, const char *config, size_t configLength)
Python函数ret = acl.prof.set_config(config_type, config)
函数功能acl.prof.create_config接口的扩展接口,用于设置性能数据采集参数。同步接口。 该接口支持多次调用,用户需要保证数据的一致性和准确性。
输入说明config_type:int,用户选择如下多个常量进行逻辑或(例如:ACL_PROF_SYS_HARDWARE_MEM_FREQ | ACL_PROF_SYS_IO_FREQ),作为config_type参数值。每个常量表示某一类性能数据,详细说明如下:
- ACL_PROF_STORAGE_LIMIT = 1:指定落盘目录允许存放的最大文件容量,有效取值范围为[200MB, 4294967296MB]。
- ACL_PROF_SYS_HARDWARE_MEM_FREQ = 3:片上内存、LLC的读写带宽数据采集频率以及acc_pmu数据和SOC传输带宽信息采集频率,范围[1,100]。 不同产品支持情况不同,请以实际实现为准。
- ACL_PROF_LLC_MODE = 4:LLC Profiling采集事件。
- read:读事件,三级缓存读速率。
- write:写事件,三级缓存写速率。默认为read。
- ACL_PROF_SYS_IO_FREQ = 5:NIC采集频率,范围[1,100]。 容器场景下本参数不生效。
- ACL_PROF_DVPP_FREQ = 7:DVPP采集频率,范围[1,100]。
config:str,配置项的参数值。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明先调用acl.prof.set_config接口再调用acl.prof.start接口,可根据需求选择调用该接口。

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

在线提单