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

CANN/asc-devkit asc_select矢量选择函数

asc_select

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

产品支持情况

产品是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

执行矢量选择操作,给定两个源操作数src0和src1,根据条件选择元素,得到目的操作数dst。此接口配合asc_set_cmp_mask(sel_mask)设置,规则为:当sel_mask的比特位是1时,从src0选取;当比特位是0时,从src1选择。

函数原型

  • 前n个数据计算

    __aicore__ inline void asc_select(__ubuf__ half* dst, __ubuf__ half* src0, __ubuf__ half* src1, uint32_t count) __aicore__ inline void asc_select(__ubuf__ float* dst, __ubuf__ float* src0, __ubuf__ float* src1, uint32_t count)
  • 高维切分计算

    __aicore__ inline void asc_select(__ubuf__ half* dst, __ubuf__ half* src0, __ubuf__ half* src1, uint8_t repeat, uint8_t dst_block_stride, uint8_t src0_block_stride, uint8_t src1_block_stride, uint8_t dst_repeat_stride, uint8_t src0_repeat_stride, uint8_t src1_repeat_stride) __aicore__ inline void asc_select(__ubuf__ float* dst, __ubuf__ float* src0, __ubuf__ float* src1, uint8_t repeat, uint8_t dst_block_stride, uint8_t src0_block_stride, uint8_t src1_block_stride, uint8_t dst_repeat_stride, uint8_t src0_repeat_stride, uint8_t src1_repeat_stride)
  • 同步计算

    __aicore__ inline void asc_select_sync(__ubuf__ half* dst, __ubuf__ half* src0, __ubuf__ half* src1, uint32_t count) __aicore__ inline void asc_select_sync(__ubuf__ float* dst, __ubuf__ float* src0, __ubuf__ float* src1, uint32_t count)

参数说明

参数名输入/输出描述
dst输出目的操作数(矢量)的起始地址。
src0输入源操作数0(矢量)的起始地址。
src1输入源操作数1(矢量)的起始地址。
count输入参与计算的元素个数。
repeat输入迭代次数。
dst_block_stride输入目的操作数单次迭代内不同DataBlock间地址步长。
src0_block_stride输入源操作数0单次迭代内不同DataBlock间地址步长。
src1_block_stride输入源操作数1单次迭代内不同DataBlock间地址步长。
dst_repeat_stride输入目的操作数相邻迭代间相同DataBlock的地址步长。
src0_repeat_stride输入源操作数0相邻迭代间相同DataBlock的地址步长。
src1_repeat_stride输入源操作数1相邻迭代间相同DataBlock的地址步长。

返回值说明

流水类型

PIPE_V

约束说明

  • 需要配合asc_set_cmp_mask接口使用。
  • dst、src0、src1的起始地址需要32字节对齐
  • 操作数地址重叠约束请参考通用地址重叠约束。

调用示例

constexpr uint32_t total_length = 256; constexpr uint32_t sel_length = 8; __ubuf__ uint8_t sel_mask[sel_length]; __ubuf__ float dst[total_length]; __ubuf__ float src0[total_length]; __ubuf__ float src1[total_length]; asc_set_cmp_mask(sel_mask); asc_sync_pipe(PIPE_V); asc_select(dst, src0, src1, total_length);

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

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

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

相关文章:

  • sqlite-vss向量距离计算详解:L1、L2、内积等7种度量方式
  • 如何5分钟上手PagePlug:从零开始构建你的第一个Web应用
  • 跟着 MDN 学 HTML day_38:(DocumentFragment 文档片段接口详解)
  • 2026年淮安区域再生资源回收公司最新推荐榜:各类废品回收/废旧物资回收/再生资源回收/废金属回收/废旧家电回收/二手设备回收/废旧木材回收 - 海棠依旧大
  • 08-mcp-tool-calling MCP 工具调用:让大模型连接外部工具服务
  • Translumo终极指南:3分钟掌握免费实时屏幕翻译工具,打破游戏与视频语言壁垒
  • 我的世界基岩版手机版(光影材质包大全)下载国际服集合下载分享
  • 【2026年5月下旬全国各地学术会议推荐】人工智能、教育管理、数据挖掘、电力系统、数字伦理、计算机视觉、图像处理、信息安全、生物医学、机电一体化、土木建筑、物联网、航空航天工程、深度学习等多主题可选!
  • 2026年新疆抖音买单服务商最新推荐榜:抖音买单/抖音聚合支付/乌鲁木齐抖音买单 - 海棠依旧大
  • 2026年碳带厂家推荐排行榜:高温碳带、吊牌碳带、水洗碳带、混合基碳带、耐刮碳带优质之选! - 速递信息
  • STM32H750 双外部Flash IAP升级实战:从内存分配到安全校验
  • NPK文件解包终极指南:如何快速提取网易游戏资源
  • 2026实验室天平|工业天平|防爆天平|电子天平|分析天平哪家好?口碑+售后+性价比盘点 - 品牌推荐大师1
  • 高级java每日一道面试题-2025年12月09日-实战篇[Docker]-如何配置 Docker 的日志驱动?有哪些日志驱动可选?
  • Steam成就管理神器:3步解锁你错过的游戏成就
  • Vercel 开源 Open Agents:把 Claude Code 搬上云,关机也能干活
  • CVNets模型部署实战:生产环境下的最佳实践
  • 先睹为快 | 2026年6月国际学术会议一览表
  • TrollInstallerX终极指南:iOS 14-16.6.1设备快速安装TrollStore的完整教程
  • 2026年淮安洪泽区域再生资源回收优质机构推荐:洪泽区高良涧钱天才废品回收站,覆盖废旧金属、塑料、纸品等全品类回收,以合规经营助力绿色循环 - 海棠依旧大
  • STM32F407驱动24C系列EEPROM避坑指南:从24C01到24C512,一个通用程序搞定所有(附KEIL工程)
  • 聚焦仰睡人群核心需求!6款乳胶枕实测对比,强支撑、无异味,选对枕头护颈椎 - 品牌种草官
  • 2026湖南主任医师评审培训哪个机构靠谱?大数据筛选出3家黑马机构 - 医考机构品牌测评专家
  • Mac上Homebrew安装Gradle后,IDEA配置总失败?可能是这个路径没选对
  • SVG编辑器是什么?公众号SVG发布后如何修改?2026新手公众号SVG怎么使用完整指南推荐3个 - 速递信息
  • 【过程控制实践】矩形脉冲响应曲线法:从理论到Python可视化的完整实现
  • 苏南地区私立复读学校综合实力排行实测盘点 - 速递信息
  • CANN/ops-math reduce_min算子
  • Wat完整使用教程:从基础语法到高级修饰符
  • 从基础到实战:深入解析Matlab中abs函数的应用场景与性能考量