设置网络模型的精度模式。
关联参数示意图如图1所示。
设置具体算子精度模式场景下:
参数值:
如果网络模型中存在部分算子,并且该算子实现不支持float32,比如某算子仅支持float16类型,则该参数不生效,仍然使用支持的float16;如果该算子不支持float32,且又配置了黑名单(precision_reduce = false),则会使用float32的AI CPU算子;如果AI CPU算子也不支持,则执行报错。
表示网络模型中算子支持float16和float32时,强制选择float16。
保持原图精度。
bfloat16类型仅在以下产品型号支持:
Atlas A2训练系列产品/Atlas 800I A2推理产品
配置为allow_mix_precision或allow_mix_precision_fp16,效果等同,均表示使用混合精度float16和float32数据类型来处理神经网络的过程。allow_mix_precision_fp16为新版本中新增的,语义更清晰,便于理解。
针对网络模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。
若配置了该种模式,则可以在OPP软件包安装路径${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json内置优化策略文件中查看“precision_reduce”参数的取值:
表示使用混合精度bfloat16和float32数据类型来处理神经网络的过程。针对原始模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到bfloat16,从而在精度损失很小的情况下提升系统性能并减少内存使用;如果算子不支持bfloat16和float32,则使用AI CPU算子进行计算;如果AI CPU算子也不支持,则执行报错。
若配置了该种模式,则可以在OPP软件包安装路径${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json内置优化策略文件中查看“precision_reduce”参数的取值:
该选项仅在以下产品型号支持:
Atlas A2训练系列产品/Atlas 800I A2推理产品
该选项仅在以下产品型号支持:
Atlas A2训练系列产品/Atlas 800I A2推理产品
参数默认值如下:
所配置的精度模式不同,网络模型精度以及性能有所不同,具体为:
精度高低排序:force_fp32>must_keep_origin_dtype>allow_fp32_to_fp16>allow_mix_precision>force_fp16
性能优劣排序:force_fp16>=allow_mix_precision>allow_fp32_to_fp16>must_keep_origin_dtype>force_fp32
--precision_mode=force_fp16
无。