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

CANN/catlass Matmul Fixpipe Opti 样例介绍

CATLASS Matmul Fixpipe Opti 样例介绍

【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass

原型设计

名称/Name类型/Class数据类型/Dtype维度/Dims格式/Format描述/Description
matAinTensorhalf[m, k]ND左矩阵
matBinTensorhalf[n, k]ND右矩阵
matCoutTensorfloat[m, n]ND输出矩阵

样例实现

CATLASS46_ascend950_matmul_fixpipe_opti样例算子是基于CATLASS Gemm API实现的昇腾亲和Matmul算子,针对Fixpipe非对齐搬出场景优化设计,关键算子组件包括以下几部分:

  • Example组装:matmul_fixpipe_opti.cpp

  • Kernel实现

    • 主Kernel文件:matmul_mix_fixpipe_opti.hpp
  • Block组件,包含:

    • 通用的mmad组件block_mmad_pingpong_tla.hpp
    • 针对Fixpipe优化的后处理组件block_epilogue_fixpipe.hpp;
    • ASWT分核策略BlockSchedulerAswt

方案设计

当前Fixpipe存在N轴非对齐写入性能不佳的问题,在K值较小、MN值较大的Matmul场景中,易引发Fixpipe Bound。针对上述问题,Fixpipe可基于Ascend 950硬件新特性(Ascend 950新增了L0C Buffer到UB的数据通路),通过使能dualDstCtrl,将Cube核L0C Buffer中的结果数据拆分为两路,并行写入两个Vector核(一个Cube核对应两个Vector核)的专属UB中,再使用DataCopyPad基础指令将UB中的数据搬运到Global Memory中。每个Vector核的UB支持独立开启Double Buffer以实现数据读写的流水线重叠,在向Global Memory传输数据的同时,持续接收来自L0C Buffer的数据,有效提升数据吞吐效率。

性能收益

在使用相同的tileShape和scheduler策略情况下,本算子(matmul_fixpipe_opti)相较于使用Fixpipe直接搬出Global Memory的传统算子方法 (matmul_fixpipe),性能对比及收益如下表。 |[M, N, K]|matmul_fixpipe|matmul_fixpipe_opti|加速比|备注| |---------|--------------|-------------------|-------|----| |[567, 488, 399]| 6.53us | 6.34us | 1.03 | MN非对齐| |[1226, 1557, 399]| 15.06us | 12.05us | 1.25 | MN非对齐 | |[2058, 2038, 256]| 20.69us | 12.64us | 1.64 | MN非对齐 | |[2048, 2048, 256]| 11.97us | 12.09us | 0.99 | MN对齐 | |[2058, 2048, 256]| 13.81us | 12.38us | 1.12 | M非对齐 | |[2048, 2038, 256]| 19.09us | 12.35us | 1.55 | N非对齐 |

由表格结果可知,在M、N非对齐场景,特别是在N轴非对齐的情况下,matmul_fixpipe_opti的性能相较于基础版本的matmul_fixpipe实现了正向提升;且M、N值越大,K值越小,性能提升越显著。

说明

  • L1TileShape: [256, 256, 128]
  • L0TileShape: [256, 256, 64]
  • scheduler策略:ASWT
  • 测试环境说明:NPU型号为Ascend 950,CANN包版本为9.0.0。

【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass

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

http://www.jsqmd.com/news/783641/

相关文章:

  • 2026年汽修加盟品牌横向评测指南:正规靠谱、高口碑品牌怎么找? - 阿喂嘞lvv
  • 保姆级教程:用Matlab FDA插件设计FIR滤波器,并导出COE系数到Vivado实现
  • 2026年武汉双眼皮医生排行榜:综合实力强的医生推荐 - 华Sir1
  • 天津AI SEO服务机构排行 适配AI搜索新生态 - 资讯焦点
  • 从MoE架构到多模态融合:解析AI技术演进与AGI推理新范式
  • 轻松解锁QQ音乐加密格式:qmc-decoder全面使用指南 [特殊字符]
  • CANN/cann-bench:Gcd算子API描述
  • BDH模型在材料科学中的图拓扑设计与动力学模拟
  • 2026年消防排烟与工业通风风机品牌推荐:贵阳采购方必读指南 - 优质企业观察收录
  • 广东雨宏家顺建筑防水工程:东莞全屋测漏水哪家专业 - LYL仔仔
  • CANN/ops-cv Im2col反向传播算子
  • 深圳全居邦防水工程:深圳地下室防水公司推荐 - LYL仔仔
  • CANN驱动设备启动状态查询API
  • 2026年郑州装修公司哪家好?这份对比评测帮你避坑选对 - 品牌种草官
  • 别再乱扫了!AWVS 15.2/15.4破解版在Windows和Kali下的保姆级安装与避坑指南
  • CANN/ops-cv算子示例指南
  • 别再傻傻改代码了!用正点原子USMART组件,串口直接调函数真香
  • 2026年武汉消防排烟风机源头厂家深度选购指南 - 优质企业观察收录
  • 如何为你的智能体项目配置稳定的大模型调用环境
  • 2026工业厂房建设新纪元:净化厂房等多品类一体化定制与服务典范——西安蓝网恒星科技有限公司深度推荐 - 深度智识库
  • CANN/ATVOSS乘法运算API文档
  • 2026年北京消防排烟风机源头厂家深度选购指南|深胜博实业全线3CF认证 - 优质企业观察收录
  • 2026年北京超高层消防排烟风机方案:深胜博实业如何打破价格战陷阱 - 优质企业观察收录
  • 京东E卡回收哪里靠谱?亲测体验 - 抖抖收
  • 苏州高端定制西装指南:四家门店品牌详解 - 生活测评君
  • 弘一法师经典名句详解|送给迷茫焦虑、内耗纠结的年轻人
  • 天津波英废旧物资回收:武清区废铝废钢回收电话多少 - LYL仔仔
  • CANN计数器和缓冲约束
  • 从设备树到CAN总线:在RK3399开发板上用SPI驱动MCP2515的保姆级避坑指南
  • 2026年3月行业内正规的净化工程施工推荐分析,可定制化满足不同净化需求 - 品牌推荐师