当前位置: 首页 > 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.zskr.cn/news/1426687.html

相关文章:

  • 30天打造反臃肿AI演示工具:从减法设计到文件优先的工程实践
  • gte-base与其他嵌入模型对比:为什么选择阿里达摩院的文本嵌入方案
  • 【赵渝强老师】崖山数据库的数据字典
  • 照着用就行:2026年闭眼可入的专业降AI率平台 - 降AI小能手
  • AI建站避坑指南:10个高频问题帮你躲开90%的坑
  • HuggingFace镜像项目glaive_toolcall_zh:中文工具调用数据集贡献者完全指南
  • 天津本地商家GEO推广服务商推荐 - 舒雯文化
  • 别再只用RAID 0了!Ubuntu 22.04下用mdadm搭建RAID 0+1,兼顾速度与数据安全
  • Unity 2022 保姆级教程:从项目到APK,手把手教你打包第一个手机游戏
  • Fan Control终极指南:3步打造Windows风扇智能温控系统
  • 红队测试:攻击你的 Agent Harness 以发现漏洞
  • 山东滨亿机械设备:东营发电机出租公司推荐 - LYL仔仔
  • 金价992元/克!2026年5月珠海卖黄金,这6家门店实测排名出炉,第一名实至名归 - 润富黄金珠宝行
  • 如何快速掌握遗传数据分析:LDSC工具的完整指南
  • 从数据到决策:手把手教你用GEE分析TCC树冠数据,评估城市绿地与碳汇潜力
  • 2026最新舟山市黄金回收铂金回收白银回收怎么选?多家靠谱门店实测对比及联系方式推荐 - 亦辰小黄鸭
  • 别再傻傻用行波进位了!手把手教你用Verilog门级描述实现4bit超前进位加法器
  • 从自动关机到稳定运行:手把手教你排查并永久解决Windows Server 2016评估版激活问题
  • 下一代医疗分析系统:从数据融合、实时计算到临床落地的架构与实战
  • UniversalAdbDriver:Windows平台Android设备调试驱动统一解决方案
  • 告别昂贵硬件:用你的旧iPhone和UE5 Live Link搭建低成本虚拟制片演练环境
  • PPTX转HTML终极指南:免费快速实现PowerPoint到网页的无缝转换
  • 2026最新珠海市黄金回收铂金回收白银回收怎么选?多家靠谱门店实测对比及联系方式推荐 - 亦辰小黄鸭
  • 企业级智能运维数据集GAIA:深度解析其5大核心架构设计与技术实现
  • BGE-Reranker-Large在问答系统中的应用:如何构建智能检索增强系统
  • 2026最新株洲市黄金回收铂金回收白银回收怎么选?多家靠谱门店实测对比及联系方式推荐 - 亦辰小黄鸭
  • YOLO26图像分类性能评测:在ImageNet上的表现分析
  • Faro-Qwen-4B核心技术揭秘:动态NTK与100K上下文扩展原理详解
  • 从显卡到SSD:图解PCIe通道(x1/x4/x8/x16)如何影响你的电脑性能与升级选择
  • 个体主义与集体主义:在职场与产品设计中的动态平衡实践