基础API通用说明

  • 本章节对基础API中的tensor高维切分计算接口做解释说明。如果您不需要使用此类接口,可略过该章节。
  • 下文中的Repeat times、Block stride、Repeat stride、mask为通用描述,其命名不一定与具体指令中的参数命名完全对应。

    比如,单次迭代内不同block间地址步长Block stride参数,在单目指令中,对应为dstBlkStride、srcBlkStride参数;在双目指令中,对应为dstBlkStride、src0BlkStride、src1BlkStride参数。

    您可以在具体接口的参数说明中,找到参数含义的描述。

使用tensor高维切分计算API可充分发挥硬件优势,支持开发者控制指令的迭代执行和操作数的地址间隔,功能更加灵活。

矢量计算通过Vector计算单元完成,矢量计算的源操作数和目的操作数均通过Unified Buffer(UB)来进行存储。Vector计算单元每个迭代会从UB中取出8datablock(每个datablock数据块内部地址连续,长度32Byte),进行计算,并写入对应的8个datablock中。下图为单次迭代内的8个datablock进行Exp计算的示意图。

图1 单次迭代内的8个datablock进行Exp计算示意图

下文中给出了Block stride、Repeat stride、mask配置的详细配置说明和示例。

Block stride(同一迭代内不同datablock的地址步长)

Repeat stride(相邻迭代间相同datablock的地址步长)

mask参数

mask用于控制每次迭代内参与计算的元素。可通过连续模式和逐比特模式两种方式进行设置。