Repolode
NVIDIA

NVIDIA/cutlass

面向 NVIDIA GPU 的 CUDA C++ 模板库与 Python DSL,用于编写高性能矩阵乘法等线性代数内核。

Star
10,623
Fork
2,133
未关闭 Issue
785
最近提交
3小时前

这是什么?

CUTLASS 是一组在 CUDA 中实现高性能矩阵乘法(GEMM)及相关计算的抽象。它将计算拆分为线程、warp、threadblock 等层级的可复用模块,并支持调整分块大小、数据类型和算法策略,便于作为自定义内核的构建块。

C++ 库覆盖 FP64、FP32、TF32、FP16、BF16、FP8、块缩放 FP4/FP6 以及低位整数等多种数据类型,支持从 Volta 到 Blackwell、Rubin 架构的 NVIDIA GPU。其核心布局与张量库 CuTe 贯穿整个 GEMM 层级结构。

CUTLASS 4 新增 CuTe DSL,这是一个基于 CUTLASS 和 CuTe 概念、以 Python 原生方式编写 CUDA 内核的接口,目前处于公开测试阶段。项目还包含示例、单元测试以及用于运行和对比 GEMM、卷积内核的命令行性能分析工具。

核心功能

  • 01用于 GEMM 与卷积内核的分层、可复用 C++ 模板
  • 02CuTe 布局与张量抽象,用于描述线程与数据
  • 03支持 FP64 到 FP8、块缩放 FP4/FP6 及低位整数等数据类型
  • 04CuTe DSL 可用 Python 编写 CUDA 内核
  • 05命令行性能分析工具,可与 cuBLAS 对比 GEMM 和卷积内核性能

适用场景

  • 在 NVIDIA GPU 上为深度学习负载构建自定义高性能 GEMM 或融合内核
  • 学习 Tensor Core GEMM 内核的结构与调优方法
  • 在 Python 中用 CuTe DSL 快速验证内核设计,再投入生产
  • 针对特定问题规模分析并选择 GEMM 或卷积内核配置

快速上手

  1. 1

    阅读 CUTLASS C++ 快速入门指南

  2. 2

    阅读用于 Python 接口的 CuTe DSL 快速入门指南

使用前须知

  • CuTe DSL 仍处于公开测试版,尚未正式发布。
  • 部分打包指令在 Rubin(sm107)GPU 上存在已知的代码生成错误。
  • 需要 NVIDIA GPU 和 CUDA 工具链。
  • 元数据中未明确识别许可证,使用前请自行核实许可条款。

标签

常见问题

cutlass 是什么?
面向 NVIDIA GPU 的 CUDA C++ 模板库与 Python DSL,用于编写高性能矩阵乘法等线性代数内核。 CUTLASS 是一组在 CUDA 中实现高性能矩阵乘法(GEMM)及相关计算的抽象。它将计算拆分为线程、warp、threadblock 等层级的可复用模块,并支持调整分块大小、数据类型和算法策略,便于作为自定义内核的构建块。
cutlass 可以免费使用吗?用的什么许可证?
cutlass 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
cutlass 还在维护吗?
活跃维护中。cutlass 最近一次提交是在 2026年10月20日。
cutlass 适合用来做什么?
在 NVIDIA GPU 上为深度学习负载构建自定义高性能 GEMM 或融合内核 学习 Tensor Core GEMM 内核的结构与调优方法 在 Python 中用 CuTe DSL 快速验证内核设计,再投入生产 针对特定问题规模分析并选择 GEMM 或卷积内核配置
cutlass 怎么安装和运行?
阅读 CUTLASS C++ 快速入门指南 阅读用于 Python 接口的 CuTe DSL 快速入门指南
在哪里获取 cutlass?
源代码和安装说明在 GitHub 上:https://github.com/NVIDIA/cutlass

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目