当前位置: 首页 > 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.jsqmd.com/news/1120201/

相关文章:

  • CANN/Ascend C Conv3D Tiling构造函数
  • MCPJungle与Context7集成教程:获取开源库文档从未如此简单
  • 如何免费高效浏览E-Hentai?Android平台终极神器EhViewer使用指南
  • Juggl:Obsidian终极图视图插件 - 革命性知识图谱可视化工具完全指南
  • svu与CI/CD集成实战:自动化发布流程的终极解决方案
  • 大一数学竞赛备赛终极指南:nwpu-cram题型与技巧全解析
  • jinjava错误处理:调试和修复模板问题的完整指南
  • SENet-Tensorflow实战教程:在CIFAR-10数据集上训练ResNeXt模型
  • BigFunctions贡献指南:如何为开源社区添加新的函数
  • Instatic与AI写作:内容生成与优化工具集成指南
  • GhostDB核心架构揭秘:从LRU缓存到AOF持久化的完整实现
  • 如何快速下载E-Hentai画廊:E-Hentai Downloader完整使用指南
  • CTFshow Web37-40 PHP代码审计:伪协议与命令执行绕过实战
  • 3分钟掌握gInk:Windows上最高效的免费屏幕标注工具完全指南
  • CANN/GE FlowMsg类API参考
  • NVMeFix高级配置:自定义APST参数与PCI ASPM优化教程
  • CANN白盒设计网络搜索
  • Claude Opus 4.6与Sonnet 4.6选型指南:从业务约束出发的模型决策逻辑
  • nwpu-cram人工智能算法:遗传算法与应用完整指南
  • Leela Chess Zero vs 传统象棋引擎:为什么神经网络是未来的趋势
  • CANN/HCCL文档总览
  • InVesalius:革命性3D医学影像重建软件,轻松实现从2D切片到立体模型的完整指南
  • 大模型时代Debug新范式(2024最新实践白皮书):基于372个真实AI项目故障日志的根因分析
  • 如何参与MNIST对抗性攻击挑战:从零开始的完整教程
  • TVA:具身智能的动力引擎与能力底座(13)
  • jqjq错误处理机制:try/catch和错误恢复的实现
  • 九大网盘直链解析工具:免费高速下载完全指南
  • OCR对抗攻击实战:基于水印的身份证识别攻击,成功率超90%(附PyTorch代码)
  • NixOps4状态管理深度解析:从JSON模式到持久化策略
  • 四大主流大模型实战评测:长文本、多模态与中文语义深度对比