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

CANN/asc-devkit非对齐加载预初始化接口

asc_loadunalign_pre

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

产品支持情况

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

功能说明

用于在进行非对齐数据搬入前的初始化,需配合asc_loadunalign接口使用。

  • asc_loadunalign_pre(不带iter_reg入参):配合asc_loadunalign(不带iter_reg入参)接口使用。

  • asc_loadunalign_pre(带iter_reg入参):配合asc_loadunalign(带iter_reg入参)接口使用。

函数原型

// 不带iter_reg入参 __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int8_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ uint8_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp4x2_e2m1_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp4x2_e1m2_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp8_e8m0_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp8_e5m2_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp8_e4m3fn_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ hifloat8_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int16_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ uint16_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ half* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ bfloat16_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int32_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ uint32_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ float* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int64_t* src) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int4b_t* src) // 带iter_reg入参 __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int8_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ uint8_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp4x2_e2m1_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp4x2_e1m2_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp8_e8m0_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp8_e5m2_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ fp8_e4m3fn_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ hifloat8_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int16_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ uint16_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ half* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ bfloat16_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int32_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ uint32_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ float* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int64_t* src, iter_reg offset) __simd_callee__ inline void asc_loadunalign_pre(vector_load_unalign& dst, __ubuf__ int4b_t* src, iter_reg offset)

参数说明

参数名输入/输出描述
dst输出非对齐寄存器,用于保存非对齐数据,长度32B。
src输入源操作数(矢量)的起始地址。
offset输入地址寄存器,存储地址偏移量。

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

返回值说明

流水类型

PIPE_V

约束说明

调用示例

vector_load_unalign dst; __ubuf__ int8_t* src; asc_loadunalign_pre(dst, src);

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

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

http://www.rkmt.cn/news/1468091.html

相关文章:

  • 从网页到电子书:novel-downloader小说下载器深度技术解析
  • 终极TrollApps指南:重新定义iOS应用自由的开源革命
  • OpenCore Legacy Patcher终极指南:四步让老旧Mac重获新生
  • 3分钟快速汉化Axure RP:告别英文困扰,提升70%工作效率的完整指南
  • 基于SpringBoot2+vue2的人力资源管理系统
  • Qt5.15到Qt6:手把手教你用C++打造一个带文件状态管理的文本编辑器(附完整源码)
  • 10分钟掌握CNEnvAir环境空气质量数据读取:Python实用代码示例
  • ControlNet 与 Midjourney 插画:线稿到 UI 设计稿的精准控制流程
  • 减肥糕点推荐:为什么越来越多人选择杨先生糕点? - 玖叁鹿
  • macOS防火墙LuLu终极指南:三小时掌握开源防火墙的完整实战配置
  • 2026最新最全国内大厂Java面试高频题库!
  • 别再用PyCharm硬扛大图拼接了!实测IDLE内存占用减半,轻松搞定PIL的DecompressionBombWarning
  • Illustrator脚本合集终极指南:如何用免费工具提升10倍设计效率
  • AI Agent赋能达人建联自动化:从数据到精准合作的智能升级之路
  • 2026山西晋城装修设计公司哪家好|晋城装修公司与家装设计服务商甄选参考 - 深度智识库
  • 如何实现语言驱动的零样本目标检测:GroundingDINO架构深度解析
  • 终极部署指南:如何快速上手Qwen2.5-14B大语言模型
  • 惠普OMEN笔记本性能控制终极指南:3步掌握OmenSuperHub开源工具
  • CH32V208GBU6沁恒GPIO:中断一定要声明interrupt;动态开关管脚的中断功能
  • Kronos:如何用Transformer重塑金融市场的语言模型范式
  • OBS Studio虚拟摄像头源码级深度解析:跨平台架构设计与实现原理
  • 智能礼品API网关选型实战:TensorFlow Lite vs. ONNX Runtime vs. 自研轻量引擎(含吞吐量/延迟/功耗三维度压测数据)
  • JS二项检验工具:命令行跑得快,浏览器里也能用,p值秒出
  • Laravel FastLogin安全指南:如何保护生物识别认证系统的7个最佳实践
  • 3分钟在Windows上安装安卓应用:APK安装器的革命性体验
  • MusicFree插件系统完全指南:5分钟搭建个人免费音乐库终极方案
  • Adobe-GenP 3.0:解密Adobe Creative Cloud批量激活的技术实现
  • Gemma-4-31B-it混合注意力机制解析:滑动窗口与全局注意力设计
  • ABB工业机器人控制柜与RobotStudio软件连接通信——操作指南
  • Windows安卓应用安装器:告别模拟器,3分钟快速安装APK的完整指南