CANN/ge 动态shape配置 动态shape【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/geINPUT_SHAPE模型输入的shape信息。此参数实际对应的options参数为ge.inputShape。参数取值模型为固定shapeINPUT_SHAPE参数为可选配置若模型为单个输入则shape信息为input_name:n,c,h,w。若模型有多个输入则shape信息为input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2不同输入之间使用英文分号分隔input_name必须是转换前的网络模型中的节点名称。模型为非固定shapeINPUT_SHAPE参数必须配置若原始模型中输入数据的某个或某些维度值不固定当前支持通过设置shape分档或设置shape范围两种方式转换模型。设置shape分档静态shape包括设置batch_size档位、设置分辨率档位、设置动态维度档位。设置INPUT_SHAPE参数时将对应维度值设置为-1同时配合使用DYNAMIC_BATCH_SIZE设置batch_size档位或DYNAMIC_IMAGE_SIZE设置分辨率档位或DYNAMIC_DIMS设置动态维度档位参数。详细用法请参考DYNAMIC_BATCH_SIZE、DYNAMIC_IMAGE_SIZE、DYNAMIC_DIMS参数说明。设置shape范围动态shape。Atlas 200I/500 A2 推理产品不支持设置shape范围。IPV350不支持设置shape范围。设置INPUT_SHAPE参数时可将对应维度的值设置为范围例如1~10设置的range值范围必须有效。支持按照name设置input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2例如input_name1:8~20,3,5,-1;input_name2:5,3~9,10,-1。指定的节点必须放在双引号中节点中间使用英文分号分隔。input_name必须是转换前的网络模型中的节点名称。如果用户知道data节点的name推荐按照name设置。支持按照index设置n1,c1,h1,w1;n2,c2,h2,w2例如8~20,3,5,-1;5,3~9,10,-1。可以不指定节点名节点按照索引顺序排列节点中间使用英文分号分隔。按照index设置shape范围时data节点需要设置属性index说明是第几个输入index从0开始。如果用户不想指定维度的范围或具体取值则可以将其设置为-1表示此维度可以使用0的任意取值该场景下取值上限为int64数据类型表达范围但受限于host和device侧物理内存的大小用户可以通过增大内存来支持。模型shape为标量非动态分档场景shape为标量的输入可选配置例如模型有两个输入input_name1为标量即shape为[]形式input_name2输入shape为[n2,c2,h2,w2]则shape信息为input_name1:;input_name2:n2,c2,h2,w2不同输入之间使用英文分号分隔input_name必须是转换前的网络模型中的节点名称标量的输入如果配置则配置为空。动态分档场景如果模型输入中既有标量shape又有支持动态分档的shape则标量输入不能忽略必须配置。例如模型有三个输入分别为A:[-1,c1,h1,w1]、B:[]、C:[n2,c2,h2,w2]则shape信息为A:-1,c1,h1,w1;B:;C:n2,c2,h2,w2标量输入B必须配置。配置示例固定shape例如某网络的输入shape信息输入1****input_0_0 [16,32,208,208]输入2input_1_0 [16,64,208,208]则INPUT_SHAPE的配置信息为{ge::ir_option::INPUT_SHAPE, input_0_0:16,32,208,208;input_1_0:16,64,208,208}非固定shape静态shape设置batch_size档位的示例请参见DYNAMIC_BATCH_SIZE。设置分辨率档位的示例请参见DYNAMIC_IMAGE_SIZE。设置指定维度档位的示例请参见DYNAMIC_DIMS。非固定shape动态shape设置shape范围的示例{ge::ir_option::INPUT_SHAPE, input_0_0:1~10,32,208,208;input_1_0:16,64,100~208,100~208}详细使用示例以及使用注意事项请参见更多特性动态输入shape范围。shape为标量非动态分档场景shape为标量的输入可选配置。例如模型有两个输入input_name1为标量input_name2输入shape为[16,32,208,208]配置示例为{ge::ir_option::INPUT_SHAPE, input_name1:;input_name2:16,32,208,208}上述示例中的input_name1为可选配置**。**动态分档场景shape为标量的输入必须配置。例如模型有三个输入shape信息分别为A:[-1,32,208,208]、B:[]、C:[16,64,208,208]则配置示例为A为动态分档输入此处以设置batch_size档位为例{ge::ir_option::INPUT_SHAPE, A:-1,32,208,208;B:;C:16,64,208,208}, {ge::ir_option::DYNAMIC_BATCH_SIZE, 1,2,4}[!NOTE]说明如果模型转换时通过该参数设置了shape的范围使用应用工程进行模型推理时需要在模型执行接口之前调用aclmdlSetDatasetTensorDesc接口用于设置真实的输入Tensor描述信息输入shape范围模型执行之后调用aclmdlGetDatasetTensorDesc接口获取模型动态输出的Tensor描述信息再进一步调用aclTensorDesc下的操作接口获取输出Tensor数据占用的内存大小、Tensor的Format信息、Tensor的维度信息等。关于aclmdlSetDatasetTensorDesc、aclmdlGetDatasetTensorDesc等接口的具体使用方法请参见《GE图引擎 API》。产品支持情况全量芯片支持。DYNAMIC_BATCH_SIZE设置动态batch档位参数适用于执行推理时每次处理图片数量不固定的场景。此参数实际对应的options参数为ge.dynamicBatchSize。该参数需要与INPUT_SHAPE配合使用不能与DYNAMIC_IMAGE_SIZE、DYNAMIC_DIMS同时使用且只支持N在shape首位的场景即shape的第一位设置为-1。如果N在非首位场景下请使用DYNAMIC_DIMS参数进行设置。参数取值档位数例如1,2,4,8。参数值格式指定的参数必须放在双引号中档位之间使用英文逗号分隔。参数值约束针对Ascend 950PR/Ascend 950DT档位数约束为档位数取值范围为(1, 256]即必须设置至少2个档位最多支持256档配置每个档位数值建议限制为[1~2048]。针对如下产品档位数约束为档位数取值范围为(1,100]即必须设置至少2个档位最多支持100档配置每个档位数值建议限制为[1~2048]。Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品Atlas 200I/500 A2 推理产品Atlas 推理系列产品Atlas 训练系列产品配置示例INPUT_SHAPE中的“-1”表示设置动态batch。{ge::ir_option::INPUT_FORMAT, NHWC}, {ge::ir_option::INPUT_SHAPE, data:-1,3,416,416}, {ge::ir_option::DYNAMIC_BATCH_SIZE, 1,2,4,8}详细使用示例以及使用注意事项请参见更多特性 动态BatchSize。产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Atlas A2 训练系列产品/Atlas A2 推理系列产品支持Atlas 200I/500 A2 推理产品支持Atlas 推理系列产品支持Atlas 训练系列产品支持IPV350不支持DYNAMIC_IMAGE_SIZE设置输入图片的动态分辨率参数。适用于执行推理时每次处理图片宽和高不固定的场景。此参数实际对应的options参数为ge.dynamicImageSize。该参数需要与INPUT_SHAPE配合使用不能与DYNAMIC_BATCH_SIZE、DYNAMIC_DIMS同时使用。参数取值imagesize1_height,imagesize1_width;imagesize2_height,imagesize2_width。参数值格式指定的参数必须放在双引号中档位之间英文分号分隔每档内参数使用英文逗号分隔。参数值约束针对Ascend 950PR/Ascend 950DT档位数约束为档位数取值范围为(1, 256]即必须设置至少2个档位最多支持256档配置。针对如下产品档位数约束为档位数取值范围为(1,100]即必须设置至少2个档位最多支持100档配置。Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品Atlas 200I/500 A2 推理产品Atlas 推理系列产品Atlas 训练系列产品配置示例INPUT_SHAPE中的“-1”表示设置动态分辨率。{ge::ir_option::INPUT_FORMAT, NCHW}, {ge::ir_option::INPUT_SHAPE, data:8,3,-1,-1}, {ge::ir_option::DYNAMIC_IMAGE_SIZE, 416,416;832,832}详细使用示例以及使用注意事项请参见更多特性 动态分辨率。产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Atlas A2 训练系列产品/Atlas A2 推理系列产品支持Atlas 200I/500 A2 推理产品支持Atlas 推理系列产品支持Atlas 训练系列产品支持IPV350不支持DYNAMIC_DIMS设置ND格式下动态维度的档位。适用于执行推理时每次处理任意维度的场景。此参数实际对应的options参数为ge.dynamicDims。该参数需要与INPUT_SHAPE配合使用不能与DYNAMIC_BATCH_SIZE、DYNAMIC_IMAGE_SIZE同时使用。参数取值通过dim1,dim2,dim3;dim4,dim5,dim6;dim7,dim8,dim9的形式设置。参数值格式所有档位必须放在双引号中档位之间使用英文分号分隔每档内参数使用英文逗号分隔每档中的dim值与INPUT_SHAPE参数中的-1标识的参数依次对应INPUT_SHAPE参数中有几个-1则每档必须设置几个维度。参数值约束针对Ascend 950PR/Ascend 950DT档位数约束为档位数取值范围为(1, 256]即必须设置至少2个档位最多支持256档配置建议配置为3~4档。针对如下产品档位数约束为档位数取值范围为(1,100]即必须设置至少2个档位最多支持100档配置建议配置为3~4档。Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品Atlas 200I/500 A2 推理产品Atlas 推理系列产品Atlas 训练系列产品配置示例{ge::ir_option::INPUT_FORMAT, ND}, {ge::ir_option::INPUT_SHAPE, data:1,-1}, {ge::ir_option::DYNAMIC_DIMS, 4;8;16;64} // 模型编译时支持的data算子的shape为1,4; 1,8; 1,16;1,64 {ge::ir_option::INPUT_FORMAT, ND}, {ge::ir_option::INPUT_SHAPE, data:1,-1,-1}, {ge::ir_option::DYNAMIC_DIMS, 1,2;3,4;5,6;7,8} // 模型编译时支持的data算子的shape为1,1,2; 1,3,4; 1,5,6; 1,7,8详细使用示例以及使用注意事项请参见更多特性 动态维度。产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Atlas A2 训练系列产品/Atlas A2 推理系列产品支持Atlas 200I/500 A2 推理产品支持Atlas 推理系列产品支持Atlas 训练系列产品支持IPV350不支持AC_PARALLEL_ENABLE动态shape图中是否允许AI CPU算子和AI Core算子并行运行。此参数实际对应的options参数为ac_parallel_enable。动态shape图中开关开启时系统自动识别图中可以和AI Core并发的AI CPU算子不同引擎的算子下发到不同流上实现多引擎间的并行从而提升资源利用效率和动态shape执行性能。参数取值1允许AI CPU和AI Core算子间的并行运行。0默认AI CPU算子不会单独分流。配置示例{ge::ir_option::AC_PARALLEL_ENABLE, 1}产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Atlas A2 训练系列产品/Atlas A2 推理系列产品支持Atlas 200I/500 A2 推理产品不支持Atlas 推理系列产品支持Atlas 训练系列产品支持IPV350不支持【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考