- [object Object]Ascend 950PR/Ascend 950DT[object Object]:支持
- [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:支持
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:支持
- [object Object]Atlas 200I/500 A2 推理产品[object Object]:不支持
- [object Object]Atlas 推理系列产品[object Object]:不支持
- [object Object]Atlas 训练系列产品[object Object]:不支持
接口功能:实现AMP(Automatic Mixed Precision)训练中的动态Scale更新逻辑。根据当前scale值、growth tracker计数器以及是否发现Inf/NaN,动态调整loss scale大小。
计算公式:
说明:
- 当found_inf不为0时,scale乘以backoff_factor回退,growth_tracker重置为0
- 当found_inf为0且growth_tracker + 1等于growth_interval时,scale乘以growth_factor增长
- 如果增长后的new_scale溢出(inf/nan),则保持当前scale不变,growth_tracker重置为0
- 其他情况下,scale保持不变,growth_tracker递增1
使用场景:AMP训练中的动态损失缩放(Dynamic Loss Scaling),用于在FP16/BF16混合精度训练中防止梯度下溢。
每个算子分为,必须先调用"aclnnAmpUpdateScaleGetWorkspaceSize"接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用"aclnnAmpUpdateScale"接口执行计算。
[object Object]
[object Object]
确定性计算:
- aclnnAmpUpdateScale默认确定性实现。
数据类型约束:current_scale与found_inf的数据类型必须一致;updated_scale的数据类型必须与current_scale一致。
shape约束:所有输入输出张量均为标量,shape为 [1]。
growthInterval约束:growthInterval取值范围为[1, 2147483647]。
Inf/NaN优先级:found_inf不为0时,直接执行回退逻辑,忽略growth_tracker状态。
溢出保护:当scale增长后的新值溢出(inf/nan)时,保持当前scale不变,growth_tracker重置为0。
[object Object]