CastLayout#
产品支持情况#
Ascend 950PR/Ascend 950DT:支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
功能说明#
CastLayout定义了vf.astype、vf.exp_sub和vf.muls_cast中源操作数和目的操作数位宽不同时,位宽小的元素在寄存器中的排布方式。
单条指令计算量以位宽更大的数据类型为准,layout用于控制位宽小的元素在寄存器中的排布位置。
原型定义#
class CastLayout(enum.Enum):
ZERO = ... # 结果写入偶数半区(PART_EVEN)
ONE = ... # 结果写入奇数半区(PART_ODD)
TWO = ... # 第三半区(FP4类型4x扩展/缩窄时使用)
THREE = ... # 第四半区(FP4类型4x扩展/缩窄时使用)
调用示例#
import pypto_pro.language as pl
@pl.vector_function
def vf_kernel():
dst = vf.astype(src, dtype=pl.DT_INT8, layout=pl.CastLayout.ZERO,
round_mode=pl.VFRoundMode.CAST_RINT, saturate=pl.SaturateMode.OFF)