当前位置: 首页 > news >正文

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),仅供参考

http://www.jsqmd.com/news/851243/

相关文章:

  • 2026年度佛山南海区宠物医院综合实力排行榜TOP5 - 速递信息
  • 2026年医用微动力系统与无刷电机选型指南:全国医院、代理商与生产企业的深度横评 - 企业名录优选推荐
  • 沧州钢套钢保温钢管厂家排行:实测资质与交付能力对比 - 奔跑123
  • 2026重庆除甲醛优质机构推荐榜:重庆除甲醛公司电话|重庆除甲醛价格|重庆新房除甲醛|重庆甲醛检测|重庆办公室除甲醛|选择指南,建议收藏! - 空气捍卫者
  • 告别单调界面:用C#为你的SolidWorks插件打造一套专业的多尺寸图标资源(附图标包)
  • OpenCV特征匹配总出错?试试RANSAC滤除误匹配,提升SIFT/SURF匹配准确率
  • 企业内训丨AI 正在重构软件测试体系,企业该如何把“智能化测试”真正落地?
  • ToolTemperature 温度过低,AI推算缺失自由度20260520
  • 滚齿机品牌怎么选?这份覆盖选型、精度、售后的采购参考请收好 - 品牌推荐大师
  • d3d8to9通关秘籍:让经典Direct3D 8游戏在现代系统满血复活
  • 2026年医用微动力系统与无刷电机采购指南:全国医院、代理商与生产企业的深度选型方案 - 企业名录优选推荐
  • 从CARIS 9到11.4:老用户快速上手指南,重点看Georeference Bathymetry这个新核心
  • 2026年全国医用微动力系统与无刷电机服务商深度选型指南 - 企业名录优选推荐
  • 河北聚氨酯保温钢管厂家排行:实测资质与应用维度对比 - 奔跑123
  • 永久保存微信聊天记录的完整指南:WeChatMsg让珍贵记忆永不丢失
  • 2026年医用微动力系统与无刷电机全国采购指南|从西安三才到全链路定制解决方案 - 企业名录优选推荐
  • 2026年河南带人飞行热气球出租公司推荐:河南郑飞航空体育有限公司,航空热气球租赁/带人飞行热气球租赁专业服务商精选 - 品牌推荐官
  • 2026年美国留学中介机构哪家好,申请成功率高者优选 - 速递信息
  • 深入理解YYImage:iOS高性能图像处理框架的终极设计指南 [特殊字符]
  • 2026年医用微动力系统全国采购指南:从西安到全国,如何选择自主可控的手术动力设备厂家 - 企业名录优选推荐
  • 终极指南:3分钟快速掌握qmc-decoder,免费解锁QQ音乐加密格式
  • Python依赖管理新标杆:UV工具安装与实战指南
  • 从内存条到手机主板:聊聊不同场景下PCB过孔尺寸选择的那些“潜规则”
  • 如何在Windows 11 LTSC企业版上快速恢复微软商店功能
  • League Akari:英雄联盟玩家必备的终极自动化工具包完整指南
  • 2026实木设备维修改装/全屋定制设备维修改装升级安装调试公司推荐 - 速递信息
  • 亨得利正规手表深度养护价格全公开:2026年5月最新收费标准,从百达翡丽到雪铁纳一次讲清(附南京/北京/上海/深圳/杭州/无锡七大官方门店深度保养项目明细) - 亨得利腕表维修中心
  • 从‘余弦曲线’到‘训练重启’:一文搞懂PyTorch中CosineAnnealingLR与WarmRestarts的异同与选型
  • 沧州地区聚氨酯保温钢管厂家综合实力排行一览 - 奔跑123
  • SAP MD61/MD62/MD63屏幕增强实战:手把手教你给计划独立需求加自定义客户字段