CANN/asc-devkit CeilDivision API

📅 2026/7/16 19:50:02
CANN/asc-devkit CeilDivision API
CeilDivision【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品不支持Atlas A2 训练系列产品/Atlas A2 推理系列产品不支持Atlas 200I/500 A2 推理产品不支持Atlas 推理系列产品AI Core不支持Atlas 推理系列产品Vector Core不支持Atlas 训练系列产品不支持功能说明计算两个整数num1和num2相除后向上取整结果。函数原型__aicore__ constexpr inline int32_t CeilDivision(int32_t num1, int32_t num2)参数说明表1参数说明参数名描述num1参数1被除数。num2参数2除数。返回值说明两个整数相除的向上取整结果。约束说明当num2为0时结果为0。该接口仅支持在num1和num2为正数场景下使用。调用示例本示例中使用CeilDivision计算迭代次数repeatTimes通过对数据量count与单次处理数据量进行向上取整除法确保所有数据包括尾块均被完整处理。template typename T __aicore__ inline void AddCustomImpl(__local_mem__ T *dst, __local_mem__ T *src0, __local_mem__ T *src1, uint32_t count) { AscendC::Reg::RegTensorT srcReg0; AscendC::Reg::RegTensorT srcReg1; AscendC::Reg::RegTensorT dstReg; AscendC::Reg::MaskReg mask; constexpr uint32_t oneRepeatSize AscendC::GetVecLen() / sizeof(T); uint16_t repeatTime AscendC::CeilDivision(count, oneRepeatSize); for (uint16_t i 0; i repeatTime; i) { mask AscendC::Reg::UpdateMaskT(count); AscendC::Reg::LoadAlign(srcReg0, src0 i * oneRepeatSize ); AscendC::Reg::LoadAlign(srcReg1, src1 i * oneRepeatSize ); AscendC::Reg::Add(dstReg, srcReg0, srcReg1, mask); AscendC::Reg::StoreAlign(dst i * oneRepeatSize, dstReg, mask); } }【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考