news 2026/5/9 16:58:42

CANN/pyasc矩阵乘加API文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/pyasc矩阵乘加API文档

asc.language.basic.mmad

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

asc.language.basic.mmad(dst: LocalTensor, fm: LocalTensor, filter: LocalTensor, params: MmadParams) → None

asc.language.basic.mmad(dst: LocalTensor, fm: LocalTensor, filter: LocalTensor, bias: LocalTensor, params: MmadParams) → None

完成矩阵乘加(C += A * B)操作。矩阵ABC分别为A2/B2/CO1中的数据。 ABC矩阵的数据排布格式分别为ZZ,ZN,NZ。

对应的 Ascend C 函数原型

template <typename T, typename U, typename S> __aicore__ inline void Mmad(const LocalTensor<T>& dst, const LocalTensor<U>& fm, const LocalTensor<S>& filter, const MmadParams& mmadParams)
template <typename T, typename U, typename S, typename V> __aicore__ inline void Mmad(const LocalTensor<T>& dst, const LocalTensor<U>& fm, const LocalTensor<S>& filter, const LocalTensor<V>& bias, const MmadParams& mmadParams)

参数说明

  • dst:结果输出 Tensor,类型为 LocalTensor。
    • 用于存放矩阵乘累加的结果。
    • 必须位于 CO1 存储位置(TPosition.CO1)
    • 元素数据类型需与累加结果类型匹配。
  • fm:左矩阵(A 矩阵)输入,类型为 LocalTensor。
    • 表示矩阵乘法中的左操作数。
    • 必须位于 A2 存储位置(TPosition.A2)
    • 需要按照满足 Mmad 格式要求的 A2 布局存储。
  • filter:右矩阵(B 矩阵)输入,类型为 LocalTensor。
    • 表示矩阵乘法中的右操作数。
    • 必须位于 B2 存储位置(TPosition.B2)
    • 需要按照符合指令格式的 B2 分块布局排布。
  • bias(可选):偏置项,类型为 LocalTensor。
    • 用于执行 dst += fm × filter + bias 的计算。
    • 当提供 bias 时,将使用带偏置版本的指令。
  • params:MmadParams 类型的矩阵乘参数。
    • m:左矩阵Height,取值范围:m∈[0, 4095] 。默认值为0。
    • n:右矩阵Width,取值范围:n∈[0, 4095] 。默认值为0。
    • k:左矩阵Width、右矩阵Height,取值范围:k∈[0, 4095] 。默认值为0。
    • cmatrixInitVal:配置C矩阵初始值是否为0。默认值true。
    • cmatrixSource:配置C矩阵初始值是否来源于C2(存放Bias的硬件缓存区)。默认值为false。
    • isBias:该参数废弃,新开发内容不要使用该参数。
    • fmOffset:预留参数。
    • enSsparse:预留参数。
    • enWinogradA:预留参数。
    • enWinogradB:预留参数。
    • unitFlag:预留参数。
    • kDirectionAlign:预留参数。

约束说明

  • dst只支持位于CO1,fm只支持位于A2,filter只支持位于B2。
  • 当M、K、N中的任意一个值为0时,该指令不会被执行。
  • 当M = 1时,会默认开启GEMV(General Matrix-Vector Multiplication)功能。在这种情况下,Mmad API从L0A Buffer读取数据时,会以ND格式进行读取,而不会将其视为ZZ格式。所以此时左矩阵需要直接按照ND格式进行排布。
  • 操作数地址对齐要求请参见 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址对齐约束”。

调用示例

  • 基本 Mmad(无 bias)
    @asc.jit def kernel_mmad_basic(): dst = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.CO1, addr=0, tile_size=1024) fm = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.A2, addr=0, tile_size=1024) filter = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.B2, addr=0, tile_size=1024) params = asc.MmadParams(4, 4, 4) asc.mmad(dst, fm, filter, params)
  • Mmad 带 bias
    @asc.jit def kernel_mmad_bias(): dst = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.CO1, addr=0, tile_size=1024) fm = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.A2, addr=0, tile_size=1024) filter = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.B2, addr=0, tile_size=1024) bias = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.VECIN, addr=0, tile_size=1024) params = asc.MmadParams(4, 4, 4) asc.mmad(dst, fm, filter, bias, params)

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

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

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

CANN/AMCT快速安装指南

环境部署 【免费下载链接】amct AMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。 项目地址: https://gitcode.com/cann/amct 使用AMCT工具之前&#xff0c;请先参考下面步骤完成基础环境搭建和源码下载&#xff0c;确保已经安装NPU固件、驱动和CANN软件&#xff08…

作者头像 李华
网站建设 2026/5/9 16:55:32

企业如何利用Taotoken实现多团队API Key管理与访问审计

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业如何利用Taotoken实现多团队API Key管理与访问审计 在将大模型能力集成到内部产品或研发流程时&#xff0c;技术团队常面临一个…

作者头像 李华
网站建设 2026/5/9 16:55:21

人本主义AGI技术路径:从神经形态计算到价值对齐的工程实践

1. 项目概述&#xff1a;当AGI遇见人本主义最近和几位做认知科学和哲学的朋友聊天&#xff0c;话题总绕不开一个核心&#xff1a;我们这群搞技术的人&#xff0c;是不是在创造AGI&#xff08;通用人工智能&#xff09;的路上&#xff0c;把“人”给弄丢了&#xff1f;大家讨论的…

作者头像 李华
网站建设 2026/5/9 16:54:35

AI/ML实战技巧库:从数据预处理到LLM应用的高效工作流

1. 项目概述与核心价值最近在GitHub上发现一个挺有意思的仓库&#xff0c;叫business-science/free-ai-tips。这名字起得挺直白&#xff0c;就是一个专门分享免费生成式AI和机器学习技巧的宝库。我自己在数据科学和AI应用领域摸爬滚打了十几年&#xff0c;深知这个领域知识迭代…

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

基于Monaco Editor与React构建现代Web代码编辑器的核心技术解析

1. 项目概述&#xff1a;一个面向开发者的现代代码编辑器最近在GitHub上看到一个挺有意思的项目&#xff0c;叫ashutoshpaliwal26/code-editor。乍一看名字&#xff0c;你可能会想&#xff0c;市面上代码编辑器不是已经够多了吗&#xff1f;从重量级的VS Code、IntelliJ IDEA&a…

作者头像 李华