cuTile Kernels

在 DGX Spark 上使用 cuTile 高性能 GPU kernel 与 TileGym 基准套件

基本思路

TileGym 是 NVIDIA 为 cuTile kernel 提供的基准套件与集成框架——这些是使用 cuTile Python DSL 编写的高性能 GPU kernel。cuTile 编译为 Tile IR,使开发者无需进行底层 CUDA 编程即可写出高效的 kernel。

本 playbook 涵盖三种工作流:

  1. Kernel Benchmarks —— 运行独立的 cuTile kernel 基准测试(FMHA、MatMul、RMSNorm 等)
  2. End-to-End Inference —— 通过 monkey-patching 的方式,使用 cuTile 优化的 kernel 运行 LLM 推理
  3. FMHA Implementation —— 一步步从伪代码到优化后的 cuTile,构建一个 Flash Multi-Head Attention kernel 的实战教程,并附带可运行和基准测试的脚本

同一份 cuTile 代码可以同时在 DGX Spark(sm_121)和 B300(sm_103)上运行——cuTile 会在 JIT 编译时自动适配对应的 GPU 架构。

你将完成什么

  • 在 DGX Spark 上运行 TileGym 基准套件
  • 使用 cuTile 优化的 kernel 运行 Qwen2-7B 或 DeepSeek-V2-Lite 推理
  • 观察 DGX Spark 与 B300 之间的性能扩展表现
  • 一步步从伪代码构建一个优化的 FMHA kernel 实现

开始之前需要了解什么

  • 对 Docker 与命令行工具有基本的熟悉
  • 了解 GPU 计算相关概念(TFLOPS、内存带宽)
  • 不需要 CUDA 编程经验
  • 拥有带访问令牌的 HuggingFace 账号(仅 LLM 推理需要)

先决条件

硬件要求:

  • 运行 Ubuntu 24.04 的 DGX Spark,或 B300 云实例
  • 至少 16GB GPU 显存以运行 LLM 推理
  • 至少 50GB 可用存储空间用于下载模型

软件要求:

  • 已安装并配置好 Docker:docker ps
  • CUDA Toolkit 13.x,并支持 Tile IR
  • 用于访问模型的 HuggingFace token(仅 LLM 推理需要)
  • 能访问网络以拉取容器和下载模型

验证 Docker 是否可用:

Bash
docker ps

如果遇到权限错误:

Bash
sudo usermod -aG docker $USER
newgrp docker

Kernel 支持矩阵

Kernel类别数据类型描述
FMHAAttentionfloat16, float8Flash Multi-Head Attention
MLAAttentionbfloat16, float8Multi-head Latent Attention
MLA DecodingAttentionfloat16, float8用于 decode 阶段的 MLA
MatMulMatrix Opsfloat16, float8矩阵乘法
BMMMatrix Opsfloat16批量矩阵乘法
Group GEMMMatrix Opsfloat16, float8用于 MoE 的分组 GEMM
RMSNormNormalizationfloat16, bfloat16Root mean square normalization
RoPEPositionalfloat16Rotary position embedding
SiLUActivationfloat16, float32带乘法的 SiLU 激活
SwiGLUActivationfloat16, float32融合的 SwiGLU 操作
SoftmaxActivationfloat16Softmax 归一化
DropoutRegularizationfloat16, float32Dropout 前向

LLM 推理的模型支持

模型支持的 KernelBatch Size输出 Token 数备注
Qwen2-7BRoPE, RMSNorm, SwiGLU, FMHA1650标准 transformer
DeepSeek-V2-LiteRoPE, RMSNorm, SiLU, MLA, MoE1100MLA attention,MoE 层

附属文件

所需的全部资源均可在 TileGym 仓库 中找到。

  • tests/benchmark/run_all.sh —— 运行所有 kernel 基准测试
  • modeling/transformers/bench_qwen.sh —— Qwen2-7B 基准测试脚本
  • modeling/transformers/bench_deepseek.sh —— DeepSeek-V2-Lite 基准测试脚本
  • modeling/transformers/infer.py —— 集成了 TileGym 的主推理脚本
  • assets/fmha_optimization_tutorial.py —— FMHA 分步优化教程
  • assets/fmha_scaling_analysis.py —— 跨序列长度的 FMHA 扩展性分析

时间与风险

  • 预计时间: 30-45 分钟(包含 LLM 推理所需的模型下载时间)
  • 风险等级:
    • 大文件下载可能因网络问题失败
    • 首次运行包含 JIT 编译开销
  • 回滚: 移除 Docker 容器即可撤销所有更改
  • 最后更新: 2026 年 2 月
    • 首次发布