news 2026/5/9 22:45:38

CANN量化矩阵乘法算子实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN量化矩阵乘法算子实现

应用场景说明

【免费下载链接】cann-recipes-harmony-infer本项目为鸿蒙开发者提供基于CANN平台的业务实践案例,方便开发者参考实现端云能力迁移及端侧推理部署。项目地址: https://gitcode.com/cann/cann-recipes-harmony-infer

应用层部署大模型面临两大瓶颈:一是模型物理尺寸过大,影响下载;二是不同手机内存差异大且整体有限,约束了模型运行。为了解决这一难题, CANN与支付宝xNN合作中, 提出基于AscendC的 NPU 版本2 比特量化QuantMatmul解决方案。此方案在支付宝端侧大模型中得到应用实践并验证满足精度要求。

QuantMatMulCustom自定义算子样例说明

本样例通过Ascend C编程语言实现了QuantMatMulCustom算子,并按照不同的算子调用方式分别给出了对应的端到端实现。在开发者自研(2bit/3bit/4bit)量化算法(不同于硬件厂商提供的量化算法)在端侧NPU上部署场景,可以使用本样例的QuantMatMulCutom算子实现自定义量化的反量化计算和矩阵乘计算。
使用框架调用QuantMatMulCustom自定义算子。
按照工程创建->算子实现->编译部署>算子调用的流程完成算子开发。整个过程都依赖于算子工程:基于工程代码框架完成算子核函数的开发和Tiling实现,通过工程编译脚本完成算子的编译部署,继而实现单算子调用或第三方框架中的算子调用。

算子描述

QuantMatMulCustom算子对应的数学表达式为:
$$ C = A * ((B + offset) * scale) $$ $A$ 为feature map $B$ 为量化的weight $offset$ 为量化的偏移 $scale$ 为量化的缩放因子 $C$ 为计算输出

算子规格描述

以下描述,假设matmul计算的规格为 $A_{(M,K)} B_{(K,N)} = C_{(M,N)}$ | 矩阵 | 数据类型 | 维度 | 大小 | 转置 | | :--- | :---------------- | :-------------------------------- | :--------------- | :--- | | A | fp16 | M:仅支持1/16/32/48/64;K:128的倍数 | 总大小不超过448KB | 不支持 | | B | int4b_t | K: 128的倍数; N:128的倍数 | N/A | 不支持 | | C | fp16 | N/A | N/A | 不支持 |

支持的产品型号

本样例支持如下产品型号:

  • Kirin X90 处理器系列产品
  • Kirin 9030 处理器系列产品

编译安装执行

参考ascendc算子工程编译部署

【免费下载链接】cann-recipes-harmony-infer本项目为鸿蒙开发者提供基于CANN平台的业务实践案例,方便开发者参考实现端云能力迁移及端侧推理部署。项目地址: https://gitcode.com/cann/cann-recipes-harmony-infer

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

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

Source Han Serif CN终极指南:免费开源中文字体完整配置手册

Source Han Serif CN终极指南:免费开源中文字体完整配置手册 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是否正在寻找一款高质量、完全免费且支持商业使用的专业中文…

作者头像 李华
网站建设 2026/5/9 22:38:31

数据网格架构:云原生时代的数据管理新范式

数据网格架构:云原生时代的数据管理新范式 一、数据网格的概念与价值 1.1 数据网格的定义 数据网格(Data Mesh)是一种去中心化的数据架构模式,将数据视为产品,由各个业务域自主管理和提供数据服务。与传统的集中式数据…

作者头像 李华
网站建设 2026/5/9 22:34:39

LeetCode 括号生成题解

LeetCode 括号生成题解 题目描述 数字 n 代表生成括号的对数,请你写一个函数,使其能够生成所有可能的且有效的括号组合。 示例: 输入:n 3输出:["((()))","(()())","(())()","()((…

作者头像 李华
网站建设 2026/5/9 22:31:33

5分钟学会清理Windows驱动垃圾:DriverStoreExplorer完全指南

5分钟学会清理Windows驱动垃圾:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统盘空间越来越少,却找不到罪魁…

作者头像 李华
网站建设 2026/5/9 22:30:33

OmniBox:构建私有AI知识中枢的RAG架构与部署实践

1. 项目概述:一个全能的AI知识中枢如果你和我一样,每天被海量的信息淹没——浏览器标签页开了一堆,PDF、文档、会议录音散落在各处,想找某个知识点时却像大海捞针——那你一定需要一个能帮你“收集一切,然后提问”的工…

作者头像 李华
网站建设 2026/5/9 22:23:37

CANN算子库变更日志

CHANGELOG 【免费下载链接】ops-transformer 本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-transformer 本文档记录各版本的重要变更,版本按时间倒序排列。 8.5.0-beta.1 发布…

作者头像 李华