恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
CANN/GE模型配置属性API
首页
资讯中心
/
CANN/GE模型配置属性API
CANN/GE模型配置属性API
发布时间:2026/9/10 21:06:32
aclmdlConfigAttr【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge定义typedef enum { ACL_MDL_PRIORITY_INT32 0, ACL_MDL_LOAD_TYPE_SIZET, ACL_MDL_PATH_PTR, ACL_MDL_MEM_ADDR_PTR, ACL_MDL_MEM_SIZET, ACL_MDL_WEIGHT_ADDR_PTR, ACL_MDL_WEIGHT_SIZET, ACL_MDL_WORKSPACE_ADDR_PTR, ACL_MDL_WORKSPACE_SIZET, ACL_MDL_INPUTQ_NUM_SIZET, ACL_MDL_INPUTQ_ADDR_PTR, ACL_MDL_OUTPUTQ_NUM_SIZET, ACL_MDL_OUTPUTQ_ADDR_PTR, ACL_MDL_WORKSPACE_MEM_OPTIMIZE, ACL_MDL_WEIGHT_PATH_PTR, ACL_MDL_MODEL_DESC_PTR, ACL_MDL_MODEL_DESC_SIZET, ACL_MDL_KERNEL_PTR, ACL_MDL_KERNEL_SIZET, ACL_MDL_KERNEL_ARGS_PTR, ACL_MDL_KERNEL_ARGS_SIZET, ACL_MDL_STATIC_TASK_PTR, ACL_MDL_STATIC_TASK_SIZET, ACL_MDL_DYNAMIC_TASK_PTR, ACL_MDL_DYNAMIC_TASK_SIZET, ACL_MDL_MEM_MALLOC_POLICY_SIZET, ACL_MDL_FIFO_PTR, ACL_MDL_FIFO_SIZET, ACL_MDL_WITHOUT_GRAPH_INT32 } aclmdlConfigAttr;ACL_MDL_PRIORITY_INT32取值说明模型执行的优先级可选项。该选项对应的值为int32类型。数字越小优先级越高取值[0,7]默认值为0。Atlas 训练系列产品docker容器内安装CANN且配置算力分组的场景该枚举值不生效。ACL_MDL_LOAD_TYPE_SIZET取值说明模型加载方式必选项。该选项对应的值为size_t类型。ACL_MDL_LOAD_TYPE_SIZET表示模型加载方式的取值如下ACL_MDL_LOAD_FROM_FILE#define ACL_MDL_LOAD_FROM_FILE 1ACL_MDL_LOAD_FROM_FILE_WITH_MEM#define ACL_MDL_LOAD_FROM_FILE_WITH_MEM 2ACL_MDL_LOAD_FROM_MEM#define ACL_MDL_LOAD_FROM_MEM 3ACL_MDL_LOAD_FROM_MEM_WITH_MEM#define ACL_MDL_LOAD_FROM_MEM_WITH_MEM 4ACL_MDL_LOAD_FROM_FILE_WITH_Q#define ACL_MDL_LOAD_FROM_FILE_WITH_Q 5ACL_MDL_LOAD_FROM_MEM_WITH_Q#define ACL_MDL_LOAD_FROM_MEM_WITH_Q 6注意如果将ACL_MDL_LOAD_TYPE_SIZET设置为ACL_MDL_LOAD_FROM_MEM表示从内存加载模型数据还支持使用ACL_MDL_WEIGHT_PATH_PTR选项指定权重文件目录。ACL_MDL_PATH_PTR取值说明om模型文件路径的指针如果选择从文件加载模型则该选项必选。关于如何获取模型文件请参见《ATC离线模型编译工具》中的“参数说明 基础功能参数 总体选项 --mode”。IPV350上还支持后缀为exeom的模型文件关于om或exeom模型文件的区别如下*.om文件不感知具体的硬件调度能力、包含中间态的抽象数据结构在模型加载阶段再根据具体执行平台的调度特性生成运行时数据结构。*.exeom文件感知具体的硬件调度能力、包含目标执行平台的运行时数据结构这些数据以二进制的形式保存在*.exeom文件中在模型加载阶段加载恢复二进制内容根据用户应用程序传递的数据区地址或实际申请到的数据地址刷新二进制中的地址指针值后将二进制内容直接拷贝至Device达到提升模型加载性能、降低模型加载内存峰值占用的效果。在一些资源受限的场景建议使用*.exeom模型文件增强产品的商用竞争力。ACL_MDL_MEM_ADDR_PTR取值说明模型在内存中的起始地址如果选择从内存加载模型则该选项必选。ACL_MDL_MEM_SIZET取值说明模型在内存中的大小如果选择从内存加载模型则该选项必选与ACL_MDL_MEM_ADDR_PTR选项配合使用。该选项对应的值为size_t类型。ACL_MDL_WEIGHT_ADDR_PTR取值说明Device上模型权值内存存放权值数据的指针如果需要由用户管理权值内存则该选项必选。若不配置该选项则表示由系统管理内存。ACL_MDL_WEIGHT_SIZET取值说明权值内存大小单位为Byte如果需要由用户管理权值内存则该选项必选与ACL_MDL_WEIGHT_ADDR_PTR选项配合使用。该选项对应的值为size_t类型。ACL_MDL_WORKSPACE_ADDR_PTR取值说明Device上模型所需工作内存存放模型执行过程中的临时数据的指针如果需要由用户管理工作内存则该选项必选。若不配置该选项则表示由系统管理内存。当前版本不支持该配置。ACL_MDL_WORKSPACE_SIZET取值说明模型所需工作内存的大小单位为Byte如果需要由用户管理工作内存则该选项必选与ACL_MDL_WORKSPACE_ADDR_PTR选项配合使用。该选项对应的值为size_t类型。当前版本不支持该配置。ACL_MDL_INPUTQ_NUM_SIZET取值说明模型输入队列大小 ,带队列加载模型时该选项必选与ACL_MDL_INPUTQ_ADDR_PTR选项配合使用。该选项对应的值为size_t类型。当前版本不支持该配置。ACL_MDL_INPUTQ_ADDR_PTR取值说明模型输入队列ID的指针带队列加载模型时该选项必选一个模型输入对应一个队列ID。当前版本不支持该配置。ACL_MDL_OUTPUTQ_NUM_SIZET取值说明模型输出队列大小带队列加载模型时该选项必选与ACL_MDL_OUTPUTQ_ADDR_PTR选项配合使用。该选项对应的值为size_t类型。当前版本不支持该配置。ACL_MDL_OUTPUTQ_ADDR_PTR取值说明模型输出队列ID的指针带队列加载模型时该选项必选一个模型输出对应一个队列ID。当前版本不支持该配置。ACL_MDL_WORKSPACE_MEM_OPTIMIZE取值说明是否开启模型工作内存优化功能1开启0不开启。若关注内存规划或内存资源有限时建议选择由系统管理内存的方式加载模型并开启工作内存优化功能此时工作内存中不包含存放模型输入、输出数据的内存工作内存大小会减小达到节省内存的目的。在模型执行前还需要由用户申请存放模型输入、输出数据的内存因此即使在模型加载时开启工作内存优化功能也不会影响后续的模型执行。当前版本不支持该配置。ACL_MDL_WEIGHT_PATH_PTR取值说明权重文件所在目录的指针。对om模型文件大小有限制的场景下通过本参数可实现权重文件外置功能。如果将ACL_MDL_LOAD_TYPE_SIZET设置为ACL_MDL_LOAD_FROM_MEM表示从内存加载模型数据则支持使用ACL_MDL_WEIGHT_PATH_PTR指定权重文件目录。一般对om模型文件大小有限制或模型文件加密的场景下需单独加载权重文件因此需在构建模型时将权重保存在单独的文件中。例如在使用ATC工具生成om文件时将--external_weight参数设置为11表示将原始网络中的Const/Constant节点的权重保存在单独的文件中。**注意**通过ACL_MDL_WEIGHT_PATH_PTR配置权重文件所在目录的指针后在模型加载过程中图引擎Graph Engine简称GE将自行申请一块Device内存读取外置权重文件并将外置权重数据拷贝至该Device内存中模型卸载时会释放该内存。若已调用aclmdlSetExternalWeightAddress接口配置存放外置权重的Device内存由用户自行管理Device内存则无需配置ACL_MDL_WEIGHT_PATH_PTR若针对同一个模型既配置了ACL_MDL_WEIGHT_PATH_PTR也调用了aclmdlSetExternalWeightAddress接口则aclmdlSetExternalWeightAddress接口的优先级更高。ACL_MDL_MODEL_DESC_PTR取值说明存放模型描述信息的内存指针。当前版本不支持该配置。ACL_MDL_MODEL_DESC_SIZET取值说明存放模型描述信息所需的内存大小单位Byte。该选项对应的值为size_t类型。可提前调用aclmdlQueryExeOMDesc接口获取存放模型描述信息所需的内存大小且本选项需与ACL_MDL_MODEL_DESC_PTR选项配合使用。当前版本不支持该配置。ACL_MDL_KERNEL_PTR取值说明存放TBE算子kernel算子的*.o与*.json的内存指针。当前版本不支持该配置。ACL_MDL_KERNEL_SIZET取值说明存放TBE算子kernel算子的*.o与*.json所需的内存大小单位Byte。该选项对应的值为size_t类型。可提前调用aclmdlQueryExeOMDesc接口获取存放TBE算子kernel算子的*.o与*.json所需的内存大小且本选项需与ACL_MDL_KERNEL_PTR选项配合使用。当前版本不支持该配置。ACL_MDL_KERNEL_ARGS_PTR取值说明存放TBE算子kernel参数的内存指针。当前版本不支持该配置。ACL_MDL_KERNEL_ARGS_SIZET取值说明存放TBE算子kernel参数所需的内存大小单位Byte。该选项对应的值为size_t类型。可提前调用aclmdlQueryExeOMDesc接口获取存放TBE算子kernel参数所需的内存大小且本选项需与ACL_MDL_KERNEL_ARGS_PTR选项配合使用。当前版本不支持该配置。ACL_MDL_STATIC_TASK_PTR取值说明存放静态shape任务描述信息的内存指针。当前版本不支持该配置。ACL_MDL_STATIC_TASK_SIZET取值说明存放静态shape任务描述信息所需的内存大小单位Byte。该选项对应的值为size_t类型。可提前调用aclmdlQueryExeOMDesc接口获取存放静态shape任务描述信息所需的内存大小且本选项需与ACL_MDL_STATIC_TASK_PTR选项配合使用。当前版本不支持该配置。ACL_MDL_DYNAMIC_TASK_PTR取值说明存放动态shape任务描述信息的内存指针。当前版本不支持该配置。ACL_MDL_DYNAMIC_TASK_SIZET取值说明存放动态shape任务描述信息所需的内存大小单位Byte。该选项对应的值为size_t类型。可提前调用aclmdlQueryExeOMDesc接口获取存放动态shape任务描述信息所需的内存大小且本选项需与ACL_MDL_DYNAMIC_TASK_PTR选项配合使用。当前版本不支持该配置。ACL_MDL_MEM_MALLOC_POLICY_SIZET取值说明内存分配规则该选项对应的值为size_t类型。当前版本不支持该配置。支持如下取值ACL_MEM_MALLOC_HUGE_FIRST当申请的内存小于等于1M时即使使用该内存分配规则也是申请普通页的内存。当申请的内存大于1M时优先申请大页内存如果大页内存不够则使用普通页的内存。ACL_MEM_MALLOC_HUGE_ONLY配置该选项时表示仅申请大页如果大页内存不够则返回错误。ACL_MEM_MALLOC_NORMAL_ONLY仅申请普通页如果普通页内存不够则返回错误。ACL_MEM_TYPE_LOW_BAND_WIDTH从带宽低的物理内存上申请内存。ACL_MEM_TYPE_HIGH_BAND_WIDTH从带宽高的物理内存上申请内存。此处支持单个取值也支持多个取值位或配置单个取值若配置ACL_MEM_MALLOC_HUGE_FIRST、ACL_MEM_MALLOC_HUGE_ONLY、ACL_MEM_MALLOC_NORMAL_ONLY中的其中一个则系统内部会根据硬件支持情况选择从高带宽或低带宽物理内存申请内存若配置ACL_MEM_TYPE_LOW_BAND_WIDTH或ACL_MEM_TYPE_HIGH_BAND_WIDTH则系统内部会默认采取ACL_MEM_MALLOC_HUGE_FIRST优先申请大页。配置多个取值位或支持这三项ACL_MEM_MALLOC_HUGE_FIRST、ACL_MEM_MALLOC_HUGE_ONLY、ACL_MEM_MALLOC_NORMAL_ONLY与这两项ACL_MEM_TYPE_LOW_BAND_WIDTH、ACL_MEM_TYPE_HIGH_BAND_WIDTH组合例如ACL_MEM_MALLOC_HUGE_FIRST | ACL_MEM_TYPE_HIGH_BAND_WIDTHACL_MDL_FIFO_PTR取值说明模型级别全局内存的起始地址。此处是指Device上的内存。当前版本不支持该配置。若某个模型在推理时其每一层的输入来自上一层的输出以及前面几轮推理结果拼接而成时则需使用模型级别的全局内存将该模型所需的输入数据保存下来供后续推理使用。注意对于同一个模型加载一次并行执行多次推理的场景此时可能存在多个推理任务同时访问模型级别全局内存的情况导致推理结果异常。建议加载一次模型后串行执行多次推理。ACL_MDL_FIFO_SIZET取值说明模型级别全局内存的大小该选项对应的值为size_t类型。当前版本不支持该配置。可提前调用aclmdlQueryExeOMDesc接口获取模型级别全局内存的大小。ACL_MDL_WITHOUT_GRAPH_INT32取值说明模型加载后是否保留计算图及其预缓存信息只支持输入为静态Shape的场景。该选项对应的值为INT32类型取值范围如下0默认值保留计算图及其预缓存信息。1不保留计算图及其预缓存信息。设置为1时模型加载成功后会释放计算图及其预缓存信息用于节省内存但预缓存信息被释放会影响Profiling数据采集以及异常场景下的算子信息获取因此Profiling数据采集场景下需在模型加载前调用aclprofStart接口打开Profling开关否则Profiling功能不可用。异常场景下调用aclmdlCreateAndGetOpDesc接口获取算子描述信息时会失败。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考