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

CANN asc-devkit向量反量化函数

asc_deq_int162b8

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

产品支持情况

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

功能说明

将int16_t类型转换为int8_t或uint8_t类型,并将数据存放在每个DataBlock的上半块或下半块。使用该接口前需要调用asc_set_deq_scale接口设置量化参数。

  • asc_deq_int162b8_h:将数据存放在每个DataBlock的上半块。
  • asc_deq_int162b8_l:将数据存放在每个DataBlock的下半块。

如下图所示:

计算公式如下:

$$ dst_i = (src_i*scale)+offset $$

函数原型

  • 前n个数据计算

    __aicore__ inline void asc_deq_int162b8_h(__ubuf__ int8_t* dst, __ubuf__ int16_t* src, uint32_t count) __aicore__ inline void asc_deq_int162b8_h(__ubuf__ uint8_t* dst, __ubuf__ int16_t* src, uint32_t count) __aicore__ inline void asc_deq_int162b8_l(__ubuf__ int8_t* dst, __ubuf__ int16_t* src, uint32_t count) __aicore__ inline void asc_deq_int162b8_l(__ubuf__ uint8_t* dst, __ubuf__ int16_t* src, uint32_t count)
  • 高维切分计算

    __aicore__ inline void asc_deq_int162b8_h(__ubuf__ int8_t* dst, __ubuf__ int16_t* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint8_t dst_repeat_stride, uint8_t src_repeat_stride) __aicore__ inline void asc_deq_int162b8_h(__ubuf__ uint8_t* dst, __ubuf__ int16_t* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint8_t dst_repeat_stride, uint8_t src_repeat_stride) __aicore__ inline void asc_deq_int162b8_l(__ubuf__ int8_t* dst, __ubuf__ int16_t* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint8_t dst_repeat_stride, uint8_t src_repeat_stride) __aicore__ inline void asc_deq_int162b8_l(__ubuf__ uint8_t* dst, __ubuf__ int16_t* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint8_t dst_repeat_stride, uint8_t src_repeat_stride)
  • 同步计算

    __aicore__ inline void asc_deq_int162b8_h_sync(__ubuf__ int8_t* dst, __ubuf__ int16_t* src, uint32_t count) __aicore__ inline void asc_deq_int162b8_h_sync(__ubuf__ uint8_t* dst, __ubuf__ int16_t* src, uint32_t count) __aicore__ inline void asc_deq_int162b8_l_sync(__ubuf__ int8_t* dst, __ubuf__ int16_t* src, uint32_t count) __aicore__ inline void asc_deq_int162b8_l_sync(__ubuf__ uint8_t* dst, __ubuf__ int16_t* src, uint32_t count)

参数说明

参数名输入/输出描述
dst输出目的操作数(矢量)的起始地址。
src输入源操作数(矢量)的起始地址。
count输入参与计算的元素个数。
repeat输入迭代次数。
dst_block_stride输入目的操作数单次迭代内不同DataBlock间地址步长。
src_block_stride输入源操作数单次迭代内不同DataBlock间地址步长。
dst_repeat_stride输入目的操作数相邻迭代间相同DataBlock的地址步长。
src_repeat_stride输入源操作数相邻迭代间相同DataBlock的地址步长。

返回值说明

流水类型

PIPE_V

约束说明

  • dst、src的起始地址需要32字节对齐。
  • 操作数地址重叠约束请参考通用地址重叠约束。

调用示例

constexpr uint64_t total_length = 128; // total_length指参与计算的数据长度 __ubuf__ int16_t src[total_length]; __ubuf__ int8_t dst[total_length]; float scale = 1.0; // 量化参数为1 int16_t offset = 0; // 不带偏移 bool sign_mode = true; // 量化结果带符号(dst为int8_t类型) asc_set_deq_scale(scale, offset, sign_mode); // 计算公式为dst = src asc_deq_int162b8_h(dst, src, total_length); // 将src转换为int8_t类型并存放在dst每个DataBlock的下半块 asc_deq_int162b8_l(dst, src, total_length); // 将src转换为int8_t类型并存放在dst每个DataBlock的上半块

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

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

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

相关文章:

  • 泾县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 2026年北京有害生物防制服务商深度横评:从应急消杀升级到科学防制体系 - 企业名录优选推荐
  • OpenCalib:自动驾驶多传感器外参标定工具箱深度解析与技术实现
  • 深度探索WinBtrfs:Windows环境下的Btrfs文件系统完整解决方案
  • 琅琊区黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐 - 莘州文化
  • 5分钟掌握ToolsFx:终极数据安全与密码学工具箱解决方案
  • 环烷基变压器油技术参数解析与场景适配全指南 - 奔跑123
  • 2026高效之选:专业的食品加工压滤机江苏厂家推荐 - 品牌2025
  • 2026年建筑模板、覆膜板与小红板优质厂家甄选指南top5 - 深度智识库
  • Vue Tree List 使用教程:3分钟上手Vue树形组件,轻松构建层级数据界面
  • Giter8高级技巧:掌握条件渲染和动态参数配置的终极指南
  • 内存安全分析与数据提取:Windows进程内存扫描技术在微信数据库解密中的应用
  • 大学生班级|基于SprinBoot+vue的大学生班级管理系统(源码+数据库+文档)
  • 需求跟踪矩阵的定义和作用
  • Aeneas音频文本对齐工具:3分钟实现专业级音画同步的终极指南
  • 如何快速掌握APK逆向:APKToolGUI图形化工具的完整实战教程
  • 2026年北京消杀公司怎么选?A级资质、HACCP合规、零风险保障完全指南 - 企业名录优选推荐
  • 多组学空间分析:肿瘤微环境的临床转化新视角
  • awesome-canvas项目贡献指南:如何成为Canvas开源社区的一员
  • Diamond社区贡献指南:如何参与开源项目开发
  • 如何快速生成黑苹果SMBIOS信息:GenSMBIOS完整指南
  • Octopress版本升级终极指南:从3.0到最新版本的平滑迁移技巧
  • 观察不同时段通过Taotoken调用大模型API的响应速度变化
  • 实验二:Windows下的路由器和xxx服务器和管理
  • 当系统崩溃时,如何用Rescuezilla快速恢复你的数字世界?[特殊字符]
  • AMD显卡用户如何轻松运行本地大语言模型?ollama-for-amd项目全解析
  • 在西安卖金实录:跑了5家店,最后选了福运来 - 黄金回收
  • 国内用户ChatGPT网络错误终极解法:DNS污染检测→代理隧道加密强度校验→WebSocket心跳保活配置(仅限本文公开)
  • LeagueAkari:3个终极技巧让你的英雄联盟游戏效率翻倍
  • 如何3分钟完成B站m4s视频无损转换:跨平台解决方案完全指南