2 min read

CUTLASS 3.x:GPU GEMM优化的分层化与模块化革新

CUTLASS 3.x通过分层设计革新了GPU上的GEMM(通用矩阵乘法)优化。其核心在于构建了一个模块化、可组合的层次结构,用户可根据硬件、问题形状等因素,通过模板参数精细调优GEMM内核的各项超参数,如切片形状、计算指令及线程特化方案。该框架共分五层:Atom(架构特定指令)、Tiled MMA/Copy(空间微内核)、Collective(时间微内核,编排执行)、Kernel(设备代码)及Device(主机接口),每一层均以前一层抽象为基础,实现高度的定制化与代码复用。

该分层设计哲学与GPU的硬件层次结构相辅相成,不仅大幅扩展了GEMM实现的覆盖范围,还提高了代码可读性,并对 Hopper、Blackwell 等新一代NVIDIA架构提供了支持。例如,FlashAttention-3已采纳CUTLASS的抽象。通过Collective Builder,用户能以更简洁的接口,依据架构、操作类、数据类型、布局、切片形状及调度信息等高层参数,自动推导出底层的具体实现。Collective层负责时间上的编排,如流水线和同步,而Kernel层则将这些Collective组合成完整的设备内核,通过GemmUniversal类实现,并支持Stream-K等多种切片调度器。最终,Device层通过GemmUniversalAdapter提供主机接口,简化了内核的配置、检查与启动流程,实现了高效、灵活且高度可定制的GPU GEMM优化。

CUTLASS 3.x: Orthogonal, Reusable, and Composable Abstractions for GEMM Kernel Design | NVIDIA Technical Blog
GEMM optimization on GPUs is a modular problem. Performant implementations need to specify hyperparameters such as tile shapes, math and copy instructions, and warp-specialization schemes.
订阅情报