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

CANN/catlass A8W4量化TileCopy组件

PackedMxA8W4TileCopyTla

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

代码位置

[TOC]

功能说明

PackedMxA8W4TileCopyTla继承自 PackedTileCopyTla,同时管理 MX Scale 搬运和 A8W4 量化 B 矩阵搬运。它是 PackedMxTileCopyTla 在 A8W4(INT4 weight)场景下的扩展变体。

关键特点:

  • A 矩阵为 FP8(ElementA_),通过 MX Scale 搬运
  • B 矩阵为 INT4(ElementPrologueB_,Prologue 前类型)→ INT8(ElementB_,Prologue 后类型)
  • 重写CopyL1ToL0B以适配 Prologue 后的 B 数据类型

限制:仅 AtlasA2 架构(CATLASS_ARCH == 2201)。

引用的 Tile 组件

成员别名来源
CopyGmToL1A~CopyL1ToBT(除 L0B 外)继承自PackedTileCopyTla<ArchTag, ElementA_, LayoutTagA, ElementB_, LayoutTagPrologueB, ...>
CopyL1ToL0B(重写)TileCopyTla<ArchTag, TensorL1B, TensorL0B>(Prologue 后类型)
CopyGmToL1MxScaleA(新增)TileCopyTla<ArchTag, TensorMxScaleA, TensorL1MxScaleA>
CopyGmToL1MxScaleB(新增)TileCopyTla<ArchTag, TensorMxScaleB, TensorL1MxScaleB>

模板原型

template < class ArchTag, // 架构标签:Arch::AtlasA2 class ElementA_, // A 矩阵元素类型(FP8) class LayoutTagA, // A GM layout tag class ElementPrologueB_, // B Prologue 前元素类型(INT4) class LayoutTagPrologueB, // B Prologue 前 GM layout tag class ElementB_, // B Prologue 后元素类型(INT8) class LayoutTagB, // B Prologue 后 GM layout tag class ElementMxScaleA_, // A MX Scale 元素类型 class LayoutMxScaleA_, // A MX Scale GM layout class ElementMxScaleB_, // B MX Scale 元素类型 class LayoutMxScaleB_, // B MX Scale GM layout class ElementC_, // C 矩阵元素类型 class LayoutTagC, // C GM layout tag class ElementBias = void, // Bias 元素类型 bool ReluEnable_ = false, // ReLU 开关 ScaleGranularity DEQUANT_GRANULARITY = ScaleGranularity::NO_QUANT, // 反量化粒度 class L0CCopyMode = CopyToGM // L0C→Dst 模式 > struct PackedMxA8W4TileCopyTla : public PackedTileCopyTla<ArchTag, ElementA_, LayoutTagA, ElementB_, LayoutTagPrologueB, ElementC_, LayoutTagC, ...>;

注意:基类PackedTileCopyTla使用ElementB_+LayoutTagPrologueB作为 B 矩阵的 Prologue 前类型,ElementB_为 Prologue 后(INT8)。

重写与新增的成员

// 重写 B 矩阵布局推导:基于 Prologue 后类型 using LayoutB = detail::TagToLayout_t<ElementPrologueB_, LayoutTagPrologueB>; using LayoutL1B = detail::TagToLayout_t<ElementB_, LayoutTagL1B>; using LayoutL0B = detail::TagToLayout_t<ElementB_, LayoutTagL0B>; using TensorL1B = tla::Tensor<LocalTensor<ElementB_>, LayoutL1B, Coord<0,0>, A1>; using TensorL0B = tla::Tensor<LocalTensor<ElementB_>, LayoutL0B, Coord<0,0>, B2>; // 重写:Prologue 后类型的 L1→L0B using CopyL1ToL0B = TileCopyTla<ArchTag, TensorL1B, TensorL0B>; // 新增 MX Scale template <class TensorMxScaleA> using CopyGmToL1MxScaleA = TileCopyTla<ArchTag, TensorMxScaleA, TensorL1MxScaleA>; template <class TensorMxScaleB> using CopyGmToL1MxScaleB = TileCopyTla<ArchTag, TensorMxScaleB, TensorL1MxScaleB>;

调用示例

#include "catlass/gemm/tile/tile_copy.hpp" using namespace Catlass::Gemm; using TileCopy_ = Tile::PackedMxA8W4TileCopyTla< Arch::AtlasA2, float8_e4m3_t, layout::RowMajor, // A: FP8 RowMajor int8_t, layout::RowMajor, // B Prologue前: INT4 packed RowMajor int8_t, layout::RowMajor, // B Prologue后: INT8 RowMajor float8_e8m0_t, layout::VectorLayout, // MX Scale A float8_e8m0_t, layout::VectorLayout, // MX Scale B half, layout::RowMajor>; // C: half RowMajor typename TileCopy_::CopyGmToL1A copyGmToL1A; typename TileCopy_::CopyGmToL1B copyGmToL1B; // INT4 → GM→L1 typename TileCopy_::CopyL1ToL0B copyL1ToL0B; // INT8 L1→L0B(Prologue后) typename TileCopy_::CopyGmToL1MxScaleA copyGmToL1MxScaleA; typename TileCopy_::CopyGmToL1MxScaleB copyGmToL1MxScaleB; typename TileCopy_::CopyL0CToGm copyL0CToGm;

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

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

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

相关文章:

  • 从状态机到运行时:聊聊 .NET 11 的 Runtime Async 和老 Async/Await 到底差在哪
  • 如何用ok-ww实现3倍效率提升:鸣潮自动化工具完全指南
  • 2026年珠海黄金回收行业大起底:6家门店横评,设备、报价、流程全拆解,第一名没悬念 - 润富黄金珠宝行
  • 义乌家家旺空调维修:义乌空调移机公司怎么联系 - LYL仔仔
  • 如何高效使用DownKyi:B站视频下载的终极解决方案
  • gte-base与其他嵌入模型对比:为什么选择阿里达摩院的文本嵌入方案
  • 30天打造反臃肿AI演示工具:从减法设计到文件优先的工程实践
  • Linux开发者的救星:用Remmina搞定公司Windows堡垒机远程连接(附文件互传保姆级教程)
  • 照着用就行:2026年闭眼可入的专业降AI率平台 - 降AI小能手
  • 【赵渝强老师】崖山数据库的数据字典
  • PoE Overlay终极指南:3个核心功能解决流放之路玩家最头疼的三大问题
  • AI建站避坑指南:10个高频问题帮你躲开90%的坑
  • 2026 年广州装修公司推荐与行业避坑解析 - 商业新知
  • 2026年大模型API路由网关技术观察:市面五个主流平台的客观横评
  • HuggingFace镜像项目glaive_toolcall_zh:中文工具调用数据集贡献者完全指南
  • 2026年成都公司注销代办手续究竟是怎样的流程? - 企业推荐官
  • ControlNet SDXL未来展望:MindSpore-Lab项目的技术路线图与发展方向
  • 华硕笔记本性能优化解决方案:G-Helper深度配置指南
  • 别再只用RAID 0了!Ubuntu 22.04下用mdadm搭建RAID 0+1,兼顾速度与数据安全
  • 天津本地商家GEO推广服务商推荐 - 舒雯文化
  • 上海回升交通设施工程:宝山专业的热熔道路划线公司找哪家 - LYL仔仔
  • 3分钟搞定《空洞骑士》模组管理:Scarab开源工具让游戏增强变得简单
  • 武安市建龙废钢基地物资:曲周专业的建筑废料回收公司选哪家 - LYL仔仔
  • ML工程师与MLOps工程师:从模型研发到生产落地的角色分工与技能对比
  • 新型代运营机构排名|2026拼多多代运营公司推荐榜:AI智能运营赋能 - 品牌榜中榜
  • 告别内存溢出!用Go的excelize/v2流式API处理百万行Excel数据实战
  • 一套键鼠控制多台电脑?Input Leap帮你实现跨平台KVM软件的完美体验
  • 2026 上新:西安名表回收 / 手表回收 - 出价高的店面排名观察 - 合扬奢侈品交易中心
  • Unity 2022 保姆级教程:从项目到APK,手把手教你打包第一个手机游戏
  • 浙江高复学校名录2026全新整理!全省优质复读院校汇总,择校不踩坑【附联系方式】 - 品牌榜中榜