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

CANN/Ascend C按位与操作API

And

【免费下载链接】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

功能说明

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

  • 对RegTensor操作:

    根据mask对输入数据srcReg0、srcReg1执行按元素与( & )操作,将结果写入dstReg。计算公式如下:

  • 对MaskReg操作:

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

函数原型

  • 对RegTensor操作

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

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

参数说明

返回值说明

约束说明

调用示例

  • 对RegTensor操作

    template <typename T> __simd_vf__ inline void AndVF(__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++) { mask = AscendC::Reg::UpdateMask<T>(count); AscendC::Reg::LoadAlign(srcReg0, src0Addr + i * oneRepeatSize); AscendC::Reg::LoadAlign(srcReg1, src1Addr + i * oneRepeatSize); AscendC::Reg::And(dstReg, srcReg0, srcReg1, mask); AscendC::Reg::StoreAlign(dstAddr + i * oneRepeatSize, dstReg, mask); } }
  • 对MaskReg操作

    template <typename T> __simd_vf__ inline void AndVF(__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::And(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/784075/

相关文章:

  • 构建AI模型开放框架:从可复现性到社区协作的完整指南
  • 西北企业画册设计印刷突围秘诀:松林森彩印如何用海德堡机器打破传统工厂交期魔咒 - 企业名录优选推荐
  • 从芬兰研究看儿童AI认知误区:三类典型误解与教学应对策略
  • 用Python手把手实现电力系统潮流计算(牛顿-拉夫逊法实战)
  • 做TK怕BGM侵权?10年海外MCN亲测!5个商用音乐网免费又安全,告别静音下架 - 拾光而行
  • TTC-RL技术解析:提升大语言模型推理准确率的实时强化学习方法
  • SlimeNexus:基于Spring Boot与Vue的Minecraft服务器一体化运维管理平台
  • AI智能体安全部署指南:从Docker容器化到权限控制实战
  • 3步搭建个人游戏云:Sunshine开源串流服务器彻底解放你的游戏硬件
  • 从太湖到北极:环境工程师带你用Python分析PFAS污染数据与时空分布
  • 西安不干胶标签定制哪家强?2026年陕西印刷厂一站式服务能力横评 - 企业名录优选推荐
  • V2M-Zero:零配对视频配乐生成技术解析
  • 2026采购手册:国内信号隔离器十大品牌口碑榜 - 仪表人叶工
  • 生成式闭环AI:从自动化实验到自主科学发现的新范式
  • Degrees of Lewdity 中文本地化完整指南:从零开始安装中文版游戏
  • 不止于MemTest:stressapptest在服务器内存压测与故障复现中的高阶玩法
  • 别再被FilterMask和FilterCode搞晕了!手把手教你配置Autosar CAN硬件滤波(附TC397实战)
  • 网带清洗机选型参考:主流靠谱供应商技术对比 - 奔跑123
  • Playwright元素定位避坑指南:为什么你的nth(1)总报错?
  • 基于LLaMA 3与QLoRA构建台湾本地化大语言模型实战指南
  • 2026年降AI率收藏工具合集:3个免费实测有效去AI痕迹方法 - 降AI实验室
  • Llama模型转ONNX:从PyTorch到跨平台部署的完整指南
  • 网带输送机选型指南:3家合规供应商技术实测对比 - 奔跑123
  • NPU 多流优化案例手册
  • CANN/atvoss内核调度运行接口
  • 解放你的学习时间:用AI将B站视频瞬间变成可搜索的文字笔记
  • 2026年5月南京搬家物流厂家最新推荐:搬家、货运、大件运输优选指南 - 海棠依旧大
  • ChatGPT Copilot:全模型AI编程副驾在VS Code中的深度集成与应用
  • 魔兽争霸3冰封王座下载指南(2026实测)|安装+汉化+常见坑一次讲完 - PC修复电脑医生
  • 链板输送机选型指南:4家合规企业技术参数实测对比 - 奔跑123