模型迁移:在NPU上正确使能混合精度
目标
在精度调优前,首先需要确保模型迁移成功且在NPU上功能调通。如果涉及分布式训练,确保正确使能。
特别需要注意的是,在迁移过程中,需要确保正确使能混合精度训练。
参考步骤
混合精度在NPU上使能可以使用如下两种主要方法,以达到性能、精度的最优权衡。需要注意,为了尽可能减少重复改图带来不期望的问题,以下方法需要确保仅使能一种。
- 如果用户参考基准脚本使用了GPU的手动混合精度模式(参考链接),在模型中已经明确定义了所有的算子数据类型。那么迁移到NPU上时也保持同样的方式,并确保NPU的精度配置如下:
针对Atlas 训练系列产品,使用“precision_mode”选项,取值为“allow_fp32_to_fp16”。
针对Atlas A2 训练系列产品,使用“precision_mode_v2”选项,取值为“origin”。
- 如果用户参考基准脚本使用了GPU的自动混合精度模式(参考链接),利用TensoFlow框架或者第三方接口(例如apex)能力,定义模型的算子数据类型。那么迁移到NPU上时也保持同样的方式,并确保NPU的精度配置如下:
针对Atlas 训练系列产品,使用“precision_mode”选项,取值为“allow_fp32_to_fp16”。
针对Atlas A2 训练系列产品,使用“precision_mode_v2”选项,取值为“origin”。
关于“precision_mode”与“precision_mode_v2”选项的默认值及使用约束请参见精度调优。
父主题: 检查迁移后脚本