SetMaskCount
功能说明
设置mask模式为counter模式。
该模式下,设置的Mask用于指示矢量计算指令要操作的元素的具体数量,实际repeat times由VECTOR计算单元自动推断;该场景下,矢量计算指令中的参数repeat time无效。
函数原型
__aicore__ inline void SetMaskCount()
参数说明
无。
返回值
无。
支持的型号
Atlas推理系列产品AI Core
Atlas推理系列产品Vector Core
Atlas A2训练系列产品/Atlas 800I A2推理产品
约束说明
- 设置Mask的模式为counter后,需要结合SetVectorMask指令来设置Mask,并在使用完之后调用SetMaskNorm将Mask模式恢复为normal模式。
- 结合vector指令使用时,需要调用tensor高维切分计算接口的连续stride模式(repStride = 8,blkStride = 1),并且isSetMask设置为false,功能与vector指令的tensor前n个数据计算接口一致,且此时vector指令入参repeat time无效。
调用示例
以Add指令为例:
LocalTensor<float> dstLocal; LocalTensor<float> src0Local; LocalTensor<float> src1Local; int32_t len = 128; // 参与计算的元素个数 SetMaskCount(); SetVectorMask(len); // dstBlkStride, src0BlkStride, src1BlkStride = 1, 单次迭代内数据连续读取和写入 // dstRepStride, src0RepStride, src1RepStride = 8, 相邻迭代间数据连续读取和写入 // 功能等同Add(dstLocal, src0Local, src1Local, len); Add<float, false>(dstLocal, src0Local, src1Local, 0, 1, { 1, 1, 1, 8, 8, 8 });
父主题: 寄存器设置