原子操作边界值汇总

概述

本节汇总介绍了原子操作接口在边界值输入下的两类输出结果,以下内容针对如下型号生效:

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

原子操作接口在边界值输入下,有两类输出结果:

  • INF/NAN模式(非饱和模式)

    计算结果是inf、-inf、nan的三类场景,按原样输出。

  • 饱和模式

    通过接口SetSaturationFlag进行设置,饱和模式下:inf和-inf会被饱和为MAX和MIN进行输出,nan会被饱和为0进行输出。

原子操作接口边界值输入下的具体计算结果

注:下表中的MAX/MIN对应操作数对应数据类型下的最大值和最小值。

表1 SetAtomicAdd特殊值/边界值输入的计算结果

src/dst的数据类型 src0的元素取值 src1的元素取值 dst的元素取值
(INF/NAN模式)
dst的元素取值
(饱和模式)
half -65504.0(MIN) -65504.0(MIN)/-inf -inf -65504.0
half -65504.0(MIN) 65504.0(MAX) 0.0 0.0
half -65504.0(MIN) 0.0/-0.0 -65504.0 -65504.0
half -65504.0(MIN) nan nan 0.0
half -65504.0(MIN) inf inf 65504.0
half 65504.0(MAX) 65504.0(MAX)/inf inf 65504.0
half 65504.0(MAX) 0.0/-0.0 65504.0 65504.0
half 65504.0(MAX) nan nan 0.0
half 65504.0(MAX) -inf -inf -65504.0
half 0.0 0.0/-0.0 0.0 0.0
half 0.0 nan nan 0.0
half 0.0 inf inf 65504.0
half 0.0 -inf -inf -65504.0
half -0.0 -0.0 -0.0 -0.0
half -0.0 nan nan 0.0
half -0.0 inf inf 65504.0
half -0.0 -inf -inf -65504.0
half nan nan/inf/-inf nan 0.0
half inf inf inf 65504.0
half inf -inf nan 0.0
half -inf -inf -inf -65504.0

注:dst的元素取值(INF/NAN模式)列结果,与IEEE754理论结果一致。

表2 SetAtomicMax特殊值/边界值输入的计算结果

src/dst的数据类型 src0的元素取值 src1的元素取值 dst的元素取值
(INF/NAN模式)
dst的元素取值
(饱和模式)
half -65504.0(MIN) -65504.0(MIN)/-inf -65504.0 -65504.0
half -65504.0(MIN) 65504.0(MAX) 65504.0 65504.0
half -65504.0(MIN) 0.0 0.0 0.0
half -65504.0(MIN) -0.0 -0.0 -0.0
half -65504.0(MIN) nan nan 0.0
half -65504.0(MIN) inf inf 65504.0
half 65504.0(MAX) 65504.0(MAX)/0.0/-0.0/-inf 65504.0 65504.0
half 65504.0(MAX) nan nan 0.0
half 65504.0(MAX) inf inf 65504.0
half 0.0 0.0/-0.0/-inf 0.0 0.0
half 0.0 nan nan 0.0
half 0.0 inf inf 65504.0
half -0.0 -0.0/-inf -0.0 -0.0
half -0.0 nan nan 0.0
half -0.0 inf inf 65504.0
half nan nan/inf/-inf nan 0.0
half inf inf/-inf inf 65504.0
half -inf -inf -inf -65504.0

注:dst的元素取值(INF/NAN模式)列结果,与IEEE754理论结果一致。

表3 SetAtomicMin特殊值/边界值输入的计算结果说明

src/dst的数据类型 src0的元素取值 src1的元素取值 dst的元素取值
(寄存器非饱和模式)
dst的元素取值
(寄存器饱和模式)
half -65504.0(MIN) -65504.0(MIN)/65504.0(MAX)/0.0/-0.0/inf -65504.0 -65504.0
half -65504.0(MIN) nan nan 0.0
half -65504.0(MIN) -inf -inf -65504.0
half 65504.0(MAX) 65504.0(MAX)/inf 65504.0 65504.0
half 65504.0(MAX) 0.0 0.0 0.0
half 65504.0(MAX) -0.0 -0.0 -0.0
half 65504.0(MAX) nan nan 0.0
half 65504.0(MAX) -inf -inf -65504.0
half 0.0 0.0/inf 0.0 0.0
half 0.0 -0.0 -0.0 -0.0
half 0.0 nan nan 0.0
half 0.0 -inf -inf -65504.0
half -0.0 -0.0/inf -0.0 -0.0
half -0.0 nan nan 0.0
half -0.0 -inf -inf -65504.0
half nan nan/inf/-inf nan 0.0
half inf inf inf 65504.0
half inf -inf -inf -65504.0
half -inf -inf -inf -65504.0

注:dst的元素取值(INF/NAN模式)列结果,与IEEE754理论结果一致。