
算子编译与图编译【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/geEXCLUDE_ENGINES设置图编译时不使用某个或某些加速引擎。多个以“|”分隔。此参数实际对应的options参数为ge.exec.exclude_engines。NPU集成了多种硬件加速器也叫加速引擎比如AiCore/AiVec/AiCpu按照优先级排列等在图编译阶段会按照优先级为算子选择合适的引擎即当同一个算子被多种引擎支持时会选择优先级高的那个。EXCLUDE_ENGINES提供了排除某个引擎的功能比如在一次训练过程中为避免数据预处理图和主训练图抢占AiCore可以给数据预处理图配置不使用AiCore引擎。参数取值“AiCore”AI Core硬件加速引擎“AiVec”Vector Core硬件加速引擎“AiCpu”AI CPU硬件加速引擎配置示例{ge::ir_option::EXCLUDE_ENGINES, AiCore|AiVec}产品支持情况全量芯片支持。OP_COMPILER_CACHE_MODE用于配置算子编译磁盘缓存模式。此参数实际对应的options参数为ge.op_compiler_cache_mode。参数取值enable默认值表示启用算子编译缓存。启用后可以避免针对相同编译参数及算子参数的算子重复编译从而提升编译速度。force启用算子编译缓存功能区别于enable模式force模式下会强制刷新缓存即先删除已有缓存再重新编译并加入缓存。比如当用户的python变更、依赖库变更、算子调优后知识库变更等需要先指定为force用于先清理已有的缓存后续再修改为enable模式以避免每次编译时都强制刷新缓存。disable表示禁用算子编译缓存算子重新编译。配置示例{ge::ir_option::OP_COMPILER_CACHE_MODE, enable}使用说明如果要自行指定算子编译磁盘缓存的路径则需要与OP_COMPILER_CACHE_DIR配合使用。启用算子编译缓存功能时可以通过配置文件算子编译完成后会在OP_COMPILER_CACHE_DIR参数指定路径下自动生成op_cache.ini文件、环境变量两种方式来设置缓存文件夹的磁盘空间大小通过配置文件op_cache.ini设置若op_cache.ini文件不存在则需要手动创建。打开该文件增加如下信息#配置文件格式必须包含自动生成的文件中默认包括如下信息手动创建时需要输入 [op_compiler_cache] #限制某个芯片下缓存文件夹的磁盘空间的大小默认值为500取值需为整数单位为MB max_op_cache_size500 #设置需要保留缓存的空间大小比例取值范围[1,100]默认值为50单位为百分比例如取值为80表示缓存空间不足时删除缓存文件保留80%缓存空间 remain_cache_size_ratio50上述文件中的max_op_cache_size和remain_cache_size_ratio参数取值都有效时op_cache.ini文件才会生效。当编译缓存文件大小超过“max_op_cache_size”的设置值且超过半小时缓存文件未被访问时缓存文件就会老化算子编译时不会因为编译缓存文件大小超过设置值而中断所以当“max_op_cache_size”设置过小时会出现实际编译缓存文件大小超过此设置值的情况。若需要关闭编译缓存老化功能可将“max_op_cache_size”设置为“-1”此时访问算子缓存时不会更新访问时间算子编译缓存不会老化磁盘空间使用默认大小500MB。若多个使用者使用相同的缓存路径建议使用配置文件的方式进行设置该场景下op_cache.ini文件会影响所有使用者。通过环境变量设置该场景下开发者可以通过环境变量ASCEND_MAX_OP_CACHE_SIZE来限制某个芯片下缓存文件夹的磁盘空间的大小当编译缓存空间大小达到ASCEND_MAX_OP_CACHE_SIZE设置的取值且超过半个小时缓存文件未被访问时缓存文件就会老化。可通过环境变量ASCEND_REMAIN_CACHE_SIZE_RATIO设置需要保留缓存的空间大小比例。配置示例如下# ASCEND_MAX_OP_CACHE_SIZE环境变量默认值为500取值需为整数单位为MB export ASCEND_MAX_OP_CACHE_SIZE500 # ASCEND_REMAIN_CACHE_SIZE_RATIO环境变量取值范围[1,100]默认值为50单位为百分比例如取值为80表示缓存空间不足时删除缓存文件保留80%缓存空间 export ASCEND_REMAIN_CACHE_SIZE_RATIO50通过环境变量配置只对当前用户生效。若需要关闭编译缓存老化功能可将环境变量“ASCEND_MAX_OP_CACHE_SIZE”设置为“-1”此时访问算子缓存时不会更新访问时间算子编译缓存不会老化磁盘空间使用默认大小500MB。若同时配置了op_cache.ini文件和环境变量则优先读取op_cache.ini文件中的配置项若op_cache.ini文件和环境变量都未设置则读取系统默认值默认磁盘空间大小500MB默认保留缓存空间的50%。由于force选项会先删除已有缓存所以不建议在程序并行编译时设置否则可能会导致其他模型因使用的缓存内容被清除而编译失败。建议模型最终发布时设置编译缓存选项为disable或者force。如果算子调优后知识库变更则需要通过设置为force来刷新缓存否则无法应用新的调优知识库从而导致调优应用执行失败。调试开关打开的场景OP_DEBUG_LEVEL配置非0值会忽略OP_COMPILER_CACHE_MODE参数的配置不启用算子编译缓存功能算子全部重新编译。OP_DEBUG_CONFIG配置非空且未配置OP_DEBUG_LIST字段会忽略OP_COMPILER_CACHE_MODE参数的配置不启用算子编译缓存功能算子全部重新编译。OP_DEBUG_CONFIG配置非空且配置文件中配置了OP_DEBUG_LIST字段列表中的算子忽略OP_COMPILER_CACHE_MODE参数的配置继续重新编译。列表外的算子如果OP_COMPILER_CACHE_MODE参数配置为enable或force则启用缓存功能若配置为disable则不启用缓存功能仍旧重新编译。产品支持情况全量芯片支持。OP_COMPILER_CACHE_DIR用于配置算子编译磁盘缓存的目录。此参数实际对应的options参数为ge.op_compiler_cache_dir。参数值格式路径支持大小写字母a-zA-Z、数字0-9、下划线_、中划线-、句点.、中文字符。默认值$HOME/atc_data配置示例{ge::ir_option::OP_COMPILER_CACHE_MODE, enable}, {ge::ir_option::OP_COMPILER_CACHE_DIR, /home/test/data/atc_data}使用约束如果要自行指定算子编译磁盘缓存的路径则需要与OP_COMPILER_CACHE_MODE配合使用。如果参数指定的路径存在且有效则在指定的路径下自动创建子目录kernel_cache如果指定的路径不存在但路径有效则先自动创建目录然后在该路径下自动创建子目录kernel_cache。用户请不要在默认缓存目录下存放其他自有内容自有内容在软件包安装或升级时会同默认缓存目录一并被删除。通过该参数指定的非默认缓存目录无法删除软件包安装或升级时不会被删除。算子编译磁盘缓存路径除OP_COMPILER_CACHE_DIR参数设置的方式外还可以配置环境变量ASCEND_CACHE_PATH几种方式优先级为配置参数“OP_COMPILER_CACHE_DIR”环境变量ASCEND_CACHE_PATH默认存储路径。关于环境变量ASCEND_CACHE_PATH的详细说明请参见《环境变量参考》。产品支持情况全量芯片支持。OPTIMIZATION_SWITCH算子编译时融合规则Pass的控制开关该参数适用于所有融合规则。此参数实际对应的options参数为ge.optimizationSwitch。参数取值Passname1:on;Passname2:off可以拼接多个key-value键值对key为Pass名称value为on表示开或off表示关不支持大小写模式匹配多组配置使用英文分号分隔。可配置的融合规则请参见融合规则列表。配置示例{ge::ir_option::OPTIMIZATION_SWITCH, Passname1:on;Passname2:off}产品支持情况全量芯片支持。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考