资讯详情

CANN/ge ATC工具精度模式参数说明

📅 2026/9/10 3:43:39 | 华诺云谱 👁 阅读
CANN/ge ATC工具精度模式参数说明
--precision_mode【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge产品支持情况全量芯片支持。功能说明设置网络模型的精度模式。关联参数该参数不能与--precision_mode_v2参数同时使用建议使用--precision_mode_v2参数--precision_mode_v2是新版本中新增的选项值语义更清晰便于理解。当取值为allow_mix_precision时如果用户想要在内置优化策略基础上进行调整自行指定哪些算子允许降精度哪些算子不允许降精度则需要参见--modify_mixlist参数设置。推理场景下使用--precision_mode参数设置整个网络模型的精度模式可能会有个别算子存在性能或精度问题该场景下可以使用--keep_dtype参数使原始网络模型编译时保持个别算子的计算精度不变但--precision_mode参数取值为must_keep_origin_dtype时--keep_dtype不生效。参数取值参数值force_fp32/cube_fp16in_fp32out配置为force_fp32或cube_fp16in_fp32out效果等同该选项用来表示AI Core中该算子既支持float32又支持float16数据类型时系统内部都会根据算子类型不同选择不同的处理方式。cube_fp16in_fp32out为新版本中新增的对于矩阵计算类算子该选项语义更清晰。对于矩阵计算类算子系统内部会按算子实现的支持情况处理 1. 优先选择输入数据类型为float16且输出数据类型为float32 2. 如果1中的场景不支持则选择输入数据类型为float32且输出数据类型为float32 3. 如果2中的场景不支持则选择输入数据类型为float16且输出数据类型为float16 4. 如果3中的场景不支持则报错。对于矢量计算类算子表示原图中算子精度为float16或bfloat16强制选择float32。如果原图中存在部分算子在AI Core中该算子的实现不支持float32比如某算子仅支持float16类型则该参数不生效仍然使用支持的float16如果在AI Core中该算子的实现不支持float32且又配置了黑名单precision_reduce false则会使用float32的AI CPU算子如果AI CPU算子也不支持则执行报错。force_fp16默认值表示原图中算子精度为float16、bfloat16和float32时强制选择float16。allow_fp32_to_fp16对于矩阵类算子如果原图中算子精度为float32优先降低精度到float16如果AI Core中算子不支持float16则继续选择float32如果AI Core中算子不支持float32则使用AI CPU算子进行计算如果AI CPU算子也不支持则执行报错。如果原图中算子精度为bfloat16则优先使用原图精度bfloat16如果AI Core中算子不支持bfloat16则选择float32如果AI Core中算子不支持float32则直接降低精度到float16如果AI Core中算子不支持float16则使用AI CPU算子进行计算如果AI CPU算子也不支持则执行报错。对于矢量类算子优先保持原图精度如果原图中算子精度为float32则优先使用原图精度float32如果AI Core中算子不支持float32则直接降低精度到float16如果AI Core中算子不支持float16则使用AI CPU算子进行计算如果AI CPU算子也不支持则执行报错。如果原图中算子精度为bfloat16则优先使用原图精度bfloat16如果AI Core中算子不支持bfloat16则选择float32如果AI Core中算子不支持float32则直接降低精度到float16如果AI Core中算子不支持float16则使用AI CPU算子进行计算如果AI CPU算子也不支持则执行报错。must_keep_origin_dtype保持原图精度。如果原图中某算子精度为float16AI Core中该算子的实现不支持float16、仅支持float32和bfloat16则系统内部会自动采用高精度float32。如果原图中某算子精度为float16AI Core中该算子的实现不支持float16、仅支持bfloat16则会使用float16的AI CPU算子如果AI CPU算子也不支持则执行报错。如果原图中某算子精度为float32AI Core中该算子的实现不支持float32类型、仅支持float16类型则会使用float32的AI CPU算子如果AI CPU算子也不支持则执行报错。allow_mix_precision/allow_mix_precision_fp16配置为allow_mix_precision或allow_mix_precision_fp16效果等同均表示使用混合精度float16、bfloat16和float32数据类型来处理神经网络的过程。allow_mix_precision_fp16为新版本中新增的语义更清晰便于理解。针对原始模型中float32和bfloat16数据类型的算子按照内置的优化策略自动将部分float32和bfloat16的算子降低精度到float16从而在精度损失很小的情况下提升系统性能并减少内存使用。若配置了该种模式则可以在${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/xxx/aic-xxx-ops-info-*.json内置优化策略文件中查看“precision_reduce”参数的取值若取值为true白名单则表示允许将当前float32和bfloat16类型的算子降低精度到float16。若取值为false黑名单则不允许将当前float32和bfloat16类型的算子降低精度到float16相应算子仍旧使用float32或bfloat16精度。若网络模型中算子没有配置该参数灰名单当前算子的混合精度处理机制和前一个算子保持一致即如果前一个算子支持降精度处理当前算子也支持降精度如果前一个算子不允许降精度当前算子也不支持降精度。allow_mix_precision_bf16表示使用混合精度bfloat16和float32数据类型来处理神经网络的过程。针对原始模型中float32数据类型的算子按照内置的优化策略自动将部分float32的算子降低精度到bfloat16从而在精度损失很小的情况下提升系统性能并减少内存使用如果AI Core中算子不支持bfloat16和float32则使用AI CPU算子进行计算如果AI CPU算子也不支持则执行报错。若配置了该种模式则可以在${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/xxx/aic-xxx-ops-info-*.json内置优化策略文件中查看“precision_reduce”参数的取值若取值为true白名单则表示允许将当前float32类型的算子降低精度到bfloat16。若取值为false黑名单则不允许将当前float32类型的算子降低精度到bfloat16相应算子仍旧使用float32精度。若网络模型中算子没有配置该参数灰名单当前算子的混合精度处理机制和前一个算子保持一致即如果前一个算子支持降精度处理当前算子也支持降精度如果前一个算子不允许降精度当前算子也不支持降精度。allow_fp32_to_bf16如果原图中算子精度为float32则优先使用原图精度float32如果AI Core中算子不支持float32则降低精度到bfloat16如果AI Core中算子不支持bfloat16则使用AI CPU算子进行计算如果AI CPU算子也不支持则执行报错。如果原图中算子精度为bfloat16则优先使用原图精度bfloat16如果AI Core中算子不支持bfloat16则选择float32如果AI Core中算子不支持float32则使用AI CPU算子进行计算如果AI CPU算子也不支持则执行报错。上述路径中的${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例安装后文件默认存储路径为/usr/local/Ascend/cann。xxx请根据实际产品进行选择。参数值约束该版本不支持bfloat16类型对应选项也不支持。bfloat16数据类型仅支持以下产品类型Atlas A2 训练系列产品/Atlas A2 推理系列产品Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas 200I/500 A2 推理产品Ascend 950PR/Ascend 950DT该参数默认为性能优先后续推理时可能会导致精度溢出问题。如果推理时出现精度问题可以参见《应用开发 (CC)》中的“模型推理 精度/性能优化 模型推理精度提升建议”进行定位。如果用户聚焦精度问题可以修改为其他取值比如must_keep_origin_dtype。推荐配置及收益所配置的精度模式不同网络模型精度以及性能有所不同具体为精度高低排序force_fp32must_keep_origin_dtypeallow_fp32_to_fp16allow_mix_precisionforce_fp16性能优劣排序force_fp16allow_mix_precisionallow_fp32_to_fp16must_keep_origin_dtypeforce_fp32示例atc --precision_modeforce_fp16 ...使用约束混合精度场景下如果版本升级后出现推理性能下降建议使用AOE工具重新进行调优调优完成后通过--op_bank_path参数加载算子调优后自定义知识库的路径然后重新进行模型转换。算子调优详情请参见《AOE调优工具》。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。