news 2026/6/22 5:21:26

CANN/asc-devkit SIMD逻辑或函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-devkit SIMD逻辑或函数

Or

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

x

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

x

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品 AI Core

x

Atlas 推理系列产品 Vector Core

x

Atlas 训练系列产品

x

功能说明

本节介绍两种接口,分别用于对RegTensor和MaskReg进行操作:

  • 对RegTensor操作:

    根据mask对输入数据srcReg0、srcReg1按位求或(|)操作,将结果写入dstReg。计算公式如下:

  • 对MaskReg操作:

    将两个输入MaskReg的有效bits进行逻辑或运算得到新的MaskReg。

函数原型

  • 对RegTensor操作

    template <typename T = DefaultType, MaskMergeMode mode = MaskMergeMode::ZEROING, typename U> __simd_callee__ inline void Or(U& dstReg, U& srcReg0, U& srcReg1, MaskReg& mask)
  • 对MaskReg操作

    __simd_callee__ inline void Or(MaskReg& dst, MaskReg& src0, MaskReg& src1, MaskReg& mask)

参数说明

返回值说明

约束说明

调用示例

  • 对RegTensor操作

    template <typename T> __simd_vf__ inline void OrVF(__ubuf__ T* dstAddr, __ubuf__ T* src0Addr, __ubuf__ T* src1Addr, uint32_t count, uint32_t oneRepeatSize, uint16_t repeatTimes) { AscendC::Reg::RegTensor<T> srcReg0; AscendC::Reg::RegTensor<T> srcReg1; AscendC::Reg::RegTensor<T> dstReg; AscendC::Reg::MaskReg mask; for (uint16_t i = 0; i < repeatTimes; i++) { AscendC::Reg::LoadAlign(srcReg0, src0Addr + i * oneRepeatSize); AscendC::Reg::LoadAlign(srcReg1, src1Addr + i * oneRepeatSize); mask = AscendC::Reg::UpdateMask<T>(count); AscendC::Reg::Or(dstReg, srcReg0, srcReg1, mask); AscendC::Reg::StoreAlign(dstAddr + i * oneRepeatSize, dstReg, mask); } }
  • 对MaskReg操作

    template <typename T> __simd_vf__ inline void OrVF(__ubuf__ T* dstAddr, __ubuf__ T* srcAddr, uint32_t count, uint32_t oneRepeatSize, uint16_t repeatTimes) { AscendC::Reg::RegTensor<T> srcReg; AscendC::Reg::MaskReg src0 = AscendC::Reg::CreateMask<T, AscendC::Reg::MaskPattern::ALLF>(); AscendC::Reg::MaskReg src1 = AscendC::Reg::CreateMask<T, AscendC::Reg::MaskPattern::ALL>(); AscendC::Reg::MaskReg dst; AscendC::Reg::MaskReg mask; for (uint16_t i = 0; i < repeatTimes; ++i) { mask = AscendC::Reg::UpdateMask<T>(count); AscendC::Reg::LoadAlign(srcReg, srcAddr + i * oneRepeatSize); AscendC::Reg::Or(dst, src0, src1, mask); AscendC::Reg::Adds(srcReg, srcReg, 0, dst); AscendC::Reg::StoreAlign(dstAddr + i * oneRepeatSize, srcReg, mask); } }

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 11:55:01

tacit vs Bootstrap:为什么无类CSS框架是未来趋势

tacit vs Bootstrap&#xff1a;为什么无类CSS框架是未来趋势 【免费下载链接】tacit CSS framework for dummies, without a single CSS class: nicely renders properly formatted HTML5 pages 项目地址: https://gitcode.com/gh_mirrors/ta/tacit 在现代网页开发中&a…

作者头像 李华
网站建设 2026/5/20 11:52:08

FontForge终极指南:免费开源字体编辑器从零到精通

FontForge终极指南&#xff1a;免费开源字体编辑器从零到精通 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge FontForge是一款完全免费的开源字体编辑器&#xff0c;…

作者头像 李华
网站建设 2026/5/20 11:50:34

2026届最火的十大降重复率神器解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 针对学术研究范畴而言&#xff0c;论文具备的原创性属于用以衡量它价值的关键标准。跟随人工…

作者头像 李华
网站建设 2026/5/20 11:48:21

英特尔下放18A制程,拉开一场AI PC普及战

作者&#xff1a;金旺在AI PC走向大众普及的关键时间节点&#xff0c;英特尔做出了一个重要决定&#xff1a;将最先进的18A 制程&#xff0c;从定位极致体验的第三代英特尔酷睿Ultra处理器&#xff08;Panther Lake&#xff09;&#xff0c;首次下放到了面向主流市场的第三代英…

作者头像 李华
网站建设 2026/5/20 11:47:04

Ubuntu开机ACPI错误终极指南:从nomodeset到acpi=off,哪个参数真正适合你?

Ubuntu开机ACPI错误深度解析&#xff1a;参数选择与系统调优实战 当你按下电源键期待Ubuntu系统平稳启动时&#xff0c;屏幕上突然闪现的ACPI BIOS错误信息足以让任何技术爱好者心头一紧。这种电源管理相关的底层错误不仅可能导致系统无法正常启动&#xff0c;更棘手的是网络上…

作者头像 李华