
接口内设置Mask【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkitCounter模式前n个数据计算采用Counter模式进行前n个数据计算接口内部会先调用SetMaskCount然后根据接口参数count调用SetVectorMask再进行计算计算完成后调用ResetMask、SetMaskNorm恢复系统默认Normal模式。调用示例uint64_t count 128; half addsValue 1.0; AscendC::Addshalf, true(dstLocal, srcLocal, addsValue, count);如图1所示采用Counter模式进行前n个数据计算通过count参数指定参与计算的元素数量为128接口内部会自动完成Mask的设置。图1Counter模式进行前n个数据计算示例高维切分连续计算在Counter模式连续计算中Mask寄存器中的值只有低64bit有效被当做参与计算的元素数量。高维切分矢量计算接口的repeatTime参数会被忽略由系统内部根据元素数量自动计算。调用示例half addsValue 1.0; uint8_t repeatTimes 1; AscendC::UnaryRepeatParams repeatParams{2, 2, 16, 16}; AscendC::SetMaskCount(); uint64_t mask[2] {130, 0}; AscendC::Addshalf, true(dstLocal, srcLocal, addsValue, mask, repeatTimes, repeatParams); AscendC::SetMaskNorm();如图2所示采用Counter模式下的高维切分连续计算接口mask数组中仅低64bit有效表示参与计算的元素总数为130。该模式接口内部的repeatTimes参数无效系统根据mask值自动计算迭代次数。repeatParams参数配置表示DataBlock间存在间隔迭代间连续。图2Counter模式进行高维切分连续计算示例Normal模式在Normal计算模式中Mask寄存器会作为每个Repeat的掩码使用。只有高维切分支持此模式在接口上区分为逐bit模式和连续模式。注Normal为默认模式。若未发生模式切换则无需重复配置该模式。高维切分逐bit计算调用示例half addsValue 1.0; int8_t repeatTimes 1; UnaryRepeatParams repeatParams {2, 2, 16, 16}; uint64_t mask[2] {0x69A569A569A569A5, 0x69A569A569A569A5}; AscendC::Addshalf, true(dstLocal, srcLocal, addsValue, mask, repeatTimes, repeatParams);如图3所示采用Normal模式进行逐bit计算时mask参数以位数组形式控制每个元素是否参与计算详细展示了第一个DataBlock中元素的计算过程。repeatParams参数配置表示DataBlock间存在间隔迭代间连续。图3Normal模式高维切分逐bit计算示例高维切分连续计算调用示例half addsValue 1.0; int8_t repeatTimes 1; UnaryRepeatParams repeatParams{2, 2, 16, 16}; uint64_t mask 128; AscendC::Addshalf, true(dstLocal, srcLocal, addsValue, mask, repeatTimes, repeatParams);如图4所示采用Normal模式进行连续计算时mask参数表示迭代内连续参与计算的元素数量为128。repeatParams参数配置表示DataBlock间存在间隔迭代间连续。图4Normal模式进行高维切分连续计算示例[!NOTE]说明当数据类型为half操作数为16位时每次迭代内能够处理的元素个数mask∈[0, 128]。当mask128时仍按一次repeat128元素执行不支持超过128元素的mask控制。【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考