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

CANN/asc-devkit SIMD数据加载API

asc_loadalign_brc_elem2datablock

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

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT

功能说明

对齐数据搬运接口,从UB连续对齐搬入目的操作数,实现元素到DataBlock广播搬入模式:加载(VL/DataBlock)B的数据,并将每个元素(16bit/32bit)广播到一个DataBlock(32B)中。

支持三种偏移方式:

  • 偏移固定传入0,由用户自行更新源操作数的地址。
  • 通过int32_t传入偏移,用户可以选择更新偏移或者更新源操作数的地址。
  • 通过iter_reg地址寄存器传入偏移,用户可以选择更新偏移或者更新源操作数的地址。

函数原型

  • 偏移固定传入0,由用户自行更新源操作数的地址
    __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_int16_t& dst, __ubuf__ int16_t* src) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_uint16_t& dst, __ubuf__ uint16_t* src) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_half& dst, __ubuf__ half* src) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_bfloat16_t& dst, __ubuf__ bfloat16_t* src) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_int32_t& dst, __ubuf__ int32_t* src) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_uint32_t& dst, __ubuf__ uint32_t* src) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_float& dst, __ubuf__ float* src)
  • 通过int32_t传入偏移
    __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_int16_t& dst, __ubuf__ int16_t* src, int32_t offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_uint16_t& dst, __ubuf__ uint16_t* src, int32_t offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_half& dst, __ubuf__ half* src, int32_t offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_bfloat16_t& dst, __ubuf__ bfloat16_t* src, int32_t offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_int32_t& dst, __ubuf__ int32_t* src, int32_t offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_uint32_t& dst, __ubuf__ uint32_t* src, int32_t offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_float& dst, __ubuf__ float* src, int32_t offset)
  • 通过iter_reg地址寄存器传入偏移
    __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_uint16_t& dst, __ubuf__ uint16_t* src, iter_reg offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_int16_t& dst, __ubuf__ int16_t* src, iter_reg offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_bfloat16_t& dst, __ubuf__ bfloat16_t* src, iter_reg offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_half& dst, __ubuf__ half* src, iter_reg offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_uint32_t& dst, __ubuf__ uint32_t* src, iter_reg offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_int32_t& dst, __ubuf__ int32_t* src, iter_reg offset) __simd_callee__ inline void asc_loadalign_brc_elem2datablock(vector_float& dst, __ubuf__ float* src, iter_reg offset)

参数说明

参数名输入/输出描述
dst输出目的操作数(矢量数据寄存器)。
src输入源操作数(矢量)的起始地址。
offset输入偏移量。

矢量数据寄存器的详细说明请参见reg数据类型定义.md。

返回值说明

流水类型

PIPE_V

约束说明

调用示例

vector_half dst; __ubuf__ half* src; asc_loadalign_brc_elem2datablock(dst, src);

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

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

http://www.gsyq.cn/news/1632182.html

相关文章:

  • SENet-Tensorflow实战教程:在CIFAR-10数据集上训练ResNeXt模型
  • Instatic与AI写作:内容生成与优化工具集成指南
  • 如何快速下载E-Hentai画廊:E-Hentai Downloader完整使用指南
  • nwpu-cram人工智能算法:遗传算法与应用完整指南
  • CANN/GE FlowMsg类API参考
  • CANN/HCCL文档总览
  • TVA:具身智能的动力引擎与能力底座(13)
  • 九大网盘直链解析工具:免费高速下载完全指南
  • OCR对抗攻击实战:基于水印的身份证识别攻击,成功率超90%(附PyTorch代码)
  • 如何参与MNIST对抗性攻击挑战:从零开始的完整教程
  • NixOps4状态管理深度解析:从JSON模式到持久化策略
  • nwpu-cram计算机组成原理实验:Cache设计完全指南
  • ZFS-inplace-rebalancing调试技巧:解决常见问题的完整清单
  • Offix深度解析:革命性GraphQL离线客户端与服务器解决方案
  • 参数优化文档介绍
  • 如何快速掌握SQL日期时间函数:SQL Ultimate Course时间数据处理完整指南
  • 终极音乐解析指南:4个PHP文件搞定四大平台音乐地址
  • SQL子查询完全指南:SQL Ultimate Course查询嵌套技巧
  • InVesalius多平台部署指南:在Linux、Windows和MacOS上高效运行医学影像软件
  • p5数据可视化实战:用创意编程呈现你的数据故事
  • 西工大软院大一计算机基础课程设计:nwpu-cram终极指南 [特殊字符]
  • 如何快速上手Cosmos-Transfer1-DiffusionRenderer:5分钟安装与配置教程
  • IpaDownloadTool最佳实践:企业应用分发的合规使用指南
  • 如何快速上手gh_mirrors/yo/yolo_research:3步完成你的第一个目标检测模型训练
  • 如何快速使用ZFS-inplace-rebalancing实现ZFS池数据均衡
  • 通达信益盟操盘线
  • 静态网站社交媒体集成:Instatic元标签与分享功能完全指南
  • CANN/ge GE Python Graph API
  • 自动驾驶笔记:为什么说2026年是激光雷达普及的关键年?
  • Laravel Vonage Notification Channel完全指南:如何在5分钟内实现短信通知功能