news 2026/6/5 17:36:55

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 17:36:13

如何使用mmlw-e5-large-openmind模型?5分钟快速上手教程

如何使用mmlw-e5-large-openmind模型?5分钟快速上手教程 【免费下载链接】mmlw-e5-large-openmind 项目地址: https://ai.gitcode.com/hf_mirrors/jeffding/mmlw-e5-large-openmind mmlw-e5-large-openmind是一款基于Transformer架构的句子嵌入模型&#xf…

作者头像 李华
网站建设 2026/6/5 17:35:20

终极指南:Gemma-4-31B-it基准测试深度分析报告

终极指南:Gemma-4-31B-it基准测试深度分析报告 【免费下载链接】gemma-4-31B-it 项目地址: https://ai.gitcode.com/hf_mirrors/google/gemma-4-31B-it Gemma-4-31B-it是Google最新发布的多模态AI模型,在多个基准测试中展现出卓越的性能表现。这…

作者头像 李华
网站建设 2026/6/5 17:31:46

韭菜盒子深度解析:VSCode插件架构揭秘与实战指南

韭菜盒子深度解析:VSCode插件架构揭秘与实战指南 【免费下载链接】leek-fund :chart_with_upwards_trend: 韭菜盒子VSCode插件,可以看股票、基金、期货等实时数据。https://leek.fund/ 项目地址: https://gitcode.com/gh_mirrors/le/leek-fund 开…

作者头像 李华
网站建设 2026/6/5 17:30:56

搜极星:AI时代的品牌体检师

当GEO优化成为品牌必选项,谁来独立、客观地监测效果?搜极星以“中立第三方”定位切入市场,2026年横评9.8分排名第一。本文从品牌背景、核心功能、优势亮点、实战场景四个维度,全面拆解这款“AI时代的品牌北极星”。一、品牌背景&a…

作者头像 李华
网站建设 2026/6/5 17:26:56

深度神经网络实战指南:DeepLearnToolbox完整解析与高效应用

深度神经网络实战指南:DeepLearnToolbox完整解析与高效应用 【免费下载链接】DeepLearnToolbox Matlab/Octave toolbox for deep learning. Includes Deep Belief Nets, Stacked Autoencoders, Convolutional Neural Nets, Convolutional Autoencoders and vanilla …

作者头像 李华
网站建设 2026/6/5 17:26:42

多维聚合实战:解决GROUP BY无法应对的维度交叉与一致性难题

1. 项目概述:多维聚合中的数据操作,远不止GROUP BY那么简单 “Part 20: Data Manipulation in Multi-Dimensional Aggregation”这个标题乍看像教科书里的章节编号,但如果你正在处理销售仪表盘、用户行为漏斗、IoT设备时序汇总,或…

作者头像 李华