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

CANN/asc-devkit:asc_gather_datablock函数

asc_gather_datablock

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

产品支持情况

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

功能说明

给定一个输入的矢量和一个地址偏移矢量,根据偏移地址按照DataBlock的粒度将输入矢量收集到目的矢量中。

函数原型

  • 高维切分计算

    __aicore__ inline void asc_gather_datablock(__ubuf__ uint16_t* dst, __ubuf__ uint16_t* src, __ubuf__ uint32_t* src_offset, uint16_t dst_repeat_stride, uint8_t dst_block_stride, uint8_t repeat) __aicore__ inline void asc_gather_datablock(__ubuf__ uint32_t* dst, __ubuf__ uint32_t* src, __ubuf__ uint32_t* src_offset, uint16_t dst_repeat_stride, uint8_t dst_block_stride, uint8_t repeat)
  • 同步计算

    __aicore__ inline void asc_gather_datablock_sync(__ubuf__ uint16_t* dst, __ubuf__ uint16_t* src, __ubuf__ uint32_t* src_offset, uint16_t dst_repeat_stride, uint8_t dst_block_stride, uint8_t repeat) __aicore__ inline void asc_gather_datablock_sync(__ubuf__ uint32_t* dst, __ubuf__ uint32_t* src, __ubuf__ uint32_t* src_offset, uint16_t dst_repeat_stride, uint8_t dst_block_stride, uint8_t repeat)

参数说明

参数名输入/输出描述
dst输出目的操作数(矢量)的起始地址。
src输入源操作数(矢量)的起始地址。
src_offset输入每个Datablock在源操作数中的地址偏移。
dst_repeat_stride输入目的操作数相邻迭代间相同DataBlock的地址步长。
dst_block_stride输入目的操作数单次迭代内不同DataBlock间地址步长。
repeat输入迭代次数。

返回值说明

流水类型

PIPE_V

约束说明

  • src_offset取值应保证src元素类型位宽对齐。
  • src加上src_offset偏移后的地址不能超出Unified Buffer (UB)大小数据的范围。
  • dst、src的起始地址需要32字节对齐。
  • 操作数地址重叠约束请参考通用地址重叠约束。

调用示例

constexpr uint64_t total_length = 128; // total_length指参与计算的数据长度 __ubuf__ uint32_t src_offset[total_length * sizeof(uint32_t) / 32]; __ubuf__ uint32_t dst[total_length]; __ubuf__ uint32_t src[total_length]; asc_gather_datablock(dst, src, src_offset, 8, 1, 2); // src [1, 2, 3, ..., 126, 127, 128] 128个uint32_t类型数据 // src_offset [0, 32, 64, ..., 416, 448, 480] // dst [1, 2, 3, ..., 126, 127, 128]

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

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

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

相关文章:

  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务
  • LSPatch:免Root实现Android应用功能扩展的终极方案
  • Hermes WebUI扩展系统架构深度解析:安全可控的自定义功能集成方案
  • CANN/asc-devkit向量大于标量比较函数
  • 团队博客 4:Sprint 2——功能扩展与深化
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • 3分钟掌握微信语音转换:Silk v3解码器完整使用指南
  • CANN/Ascend C数据块最小规约函数
  • 2026年宁波GEO获客优化服务商盘点:本土实力阵营解析 - 起跑123
  • Roo Code Memory Bank终极指南:让AI助手记住你的项目上下文
  • VAC进程监控模块完全解析:3种扫描类型与虚拟方法表技术揭秘
  • MC68F375 QSMCM模块深度解析:从寄存器配置到队列SPI实战
  • 团队博客 5:Sprint 3——收官与优化
  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • 从0到1搭建图像采集流程:pic-gather快速上手指南
  • 2026年宁波GEO获客优化服务商调研与合规推荐 - 起跑123
  • 为什么麦克斯韦方程组如此重要?Intuitive-Guide-to-Maxwells-Equations揭示电磁学的奥秘
  • Paralayout快速开始:5种安装方法让你轻松集成iOS布局工具
  • 5个高效管理远程服务器的实用技巧:使用Viking提升运维效率
  • 3秒极速观影:Jav-Play浏览器扩展终极指南
  • 10分钟完成黑苹果配置:OpCore Simplify终极图形化工具完全指南
  • 枚举类三大应用场景 - -z-w-h
  • 如何安装和配置Google Translate Mac客户端:5分钟快速上手教程 [特殊字符]
  • 终极指南:用YOLOv9快速构建高性能目标检测系统
  • 从零到一:Docker化Magento开发环境的革命性实践
  • 3步解锁免费LLM API宝藏:开发者必知的终极资源指南
  • express-winston性能优化:减少日志开销的7个最佳实践
  • 2026苏州防水补漏维修团队实测盘点TOP4:苏州业主房屋渗漏修缮靠谱选择 - 宅安选房屋修缮
  • winget只下载不安装
  • WebView控制完全掌握:JSBrowser中前进/后退/刷新功能的实现方法