CastLayout#

产品支持情况#

  • Ascend 950PR/Ascend 950DT:支持

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持

  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持

功能说明#

CastLayout定义了vf.astypevf.exp_subvf.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)