TileKernels 是 DeepSeek 于 2026 年 4 月 22 日 在 GitHub 开源的高性能 GPU 算子库。它不是大语言模型,而是支撑大模型训练与推理的底层基础设施------一套针对 LLM 核心操作深度优化的 CUDA Kernel 集合。
一、背景:从模型开源到基础设施开源
DeepSeek 此前以开源模型权重(V3、R1 等)闻名,但 2026 年 4 月以来,其开源策略明显转向系统级基础设施:
- 4 月中旬:开源 Mega MoE、FP4 Indexer
- 4 月 23 日 :同步发布 TileKernels (算子库)与 DeepEP V2(MoE 通信库)
为什么要做 TileKernels?
现有高性能算子开发面临两难:
- CUDA/CUTLASS:性能极致,但开发门槛极高(需掌握 PTX 汇编、内存层次结构、Warp 调度),一个 FlashAttention 算子往往需要 500+ 行代码
- Triton :OpenAI 开源的 Python 式 GPU 编程语言,易用性好,但不支持国产芯片(昇腾、寒武纪等),且调度灵活性受限
DeepSeek 选择基于 TileLang (北大团队开发的国产 GPU DSL)构建 TileKernels,目标是用接近 Python 的开发效率,达到接近手写 CUDA 的性能,同时打通国产算力生态。
二、核心原理:Tile 级优化 + TileLang DSL
1. TileLang 是什么?
TileLang 是一种领域特定语言(DSL) ,核心设计理念是将算法数据流与硬件调度解耦:
- 类 Python 语法:开发者用近似数学公式的方式描述计算意图
- 显式 Tile 抽象 :以 "Tile"(张量分块)为核心概念,直观控制数据在全局内存 → 共享内存 → 寄存器之间的流动
- 编译器自动优化:循环展开、内存布局、流水线并行、张量核心(Tensor Core)调用由编译器自动生成
- 跨平台:支持 NVIDIA GPU、AMD GPU、华为昇腾 NPU
性能对比 :在 H100 上,TileLang 仅用 80 行 Python 代码 实现的 MLA(Multi-Head Latent Attention)内核,性能即可与 DeepSeek 官方用 CUTLASS 手写的 FlashMLA 相当,远超 Triton 和 FlashInfer。
2. TileKernels 的优化原理
TileKernels 基于 TileLang,针对 NVIDIA SM90(Hopper)和 SM100(Blackwell) 架构的 Tile 级内存层次进行深度优化:
- 绕过 CUTLASS:不依赖 NVIDIA 官方模板库,直接编写针对特定 Tile 形状的内存访问模式
- 汇编级指令调优:针对 Hopper/Blackwell 的异步拷贝(TMA)、Warp 组集群(WGMMA)等新指令优化
- 计算与带宽极限 :官方声明大多数算子的计算强度(Arithmetic Intensity)和内存带宽利用率已接近硬件理论上限
三、框架与模块组成
TileKernels 采用模块化设计,目前包含 7 大算子家族:
| 模块 | 路径 | 功能说明 | 对应 LLM 场景 |
|---|---|---|---|
| Gating | moe/gating |
MoE 路由的 Top-k 专家选择与打分 | MoE 模型前向路由决策 |
| MoE Routing | moe/routing |
Token-to-Expert 映射、融合扩展/归约、权重归一化 | MoE 全对全(All-to-All)通信前后的数据重排 |
| Quantization | quant/ |
FP8/FP4/E5M6 量化转换,支持 per-token/per-block/per-channel,融合 SwiGLU + Quantization | 模型压缩、低精度推理、降低显存占用 |
| Transpose | transpose/ |
批量转置(Batched Transpose) | Attention 中的 KV Cache 重排、数据布局转换 |
| Engram | engram/ |
Engram Gating Kernels,融合 RMSNorm、前向/反向传播、权重梯度归约 | DeepSeek 下一代架构中的 Engram 门控机制 |
| Manifold HyperConnection | mhc/ |
超连接 Kernels,包含 Sinkhorn 归一化、Mix 的拆分与应用 | 新型架构中的动态连接/混合专家变体 |
| Modeling | modeling/ |
高层 torch.autograd.Function 封装,将底层 kernels 组合为可训练层(engram gate、mHC pipeline) |
PyTorch 训练框架直接调用 |
四、用到的核心技术
| 技术点 | 说明 |
|---|---|
| TileLang DSL | 底层开发语言,类 Python 语法,TVM 编译器后端 |
| TVM 编译器栈 | TileLang 基于 Apache TVM,负责自动并行化、内存调度、循环优化 |
| 异步内存拷贝 (TMA) | Hopper/Blackwell 硬件特性,隐藏内存延迟 |
| WGMMA (Warp Group Matrix Multiply Accumulate) | Blackwell 架构的矩阵乘加速指令 |
| 融合算子 (Fused Kernels) | 将多个操作(如 SwiGLU + Quantization、RMSNorm + Gate)合并为单次 GPU 启动,减少显存搬运 |
| 混合精度计算 | FP8/FP4/E5M6 低精度格式支持,提升吞吐降低显存 |
| PyTorch Autograd 集成 | 通过 torch.autograd.Function 封装,无缝接入现有训练流水线 |
五、特点总结
| 特点 | 具体表现 |
|---|---|
| 性能极致 | 官方声明接近硬件计算强度与内存带宽极限,部分已在内部生产环境验证 |
| 硬件前沿 | 原生支持 NVIDIA Blackwell (SM100),同时兼容 Hopper (SM90),要求 CUDA 13.1+ |
| 代码极简 | 基于 TileLang,算子代码量相比 CUDA 减少 80-90%(如 FlashAttention 从 500 行降至 80 行) |
| 国产兼容 | TileLang 已适配华为昇腾、寒武纪、摩尔线程等国产芯片,TileKernels 理论上可跨平台迁移 |
| 开源协议 | MIT License,可自由商用和修改 |
| 即插即用 | 提供 PyTorch 高层封装,无需改动模型架构即可替换原生算子 |
六、应用场景与战略意义
直接应用场景
- MoE 大模型训练与推理:Top-k Gating、Token Routing 是 MoE 架构的性能瓶颈,TileKernels 提供融合优化版本
- 低精度推理部署:FP8/FP4 量化算子可直接用于模型压缩和边缘部署
- 下一代架构研究:Engram 和 Manifold HyperConnection 模块暗示了 DeepSeek 下一代模型的架构创新方向
行业战略意义
- 打破 CUDA 垄断 :通过 TileLang 构建不依赖 NVIDIA 工具链的算子生态,形成"DeepSeek 模型 → TileLang 工具 → 国产芯片"的闭环
- 降低算子开发门槛:让算法研究员无需精通 CUDA 即可实现高性能自定义算子,加速稀疏注意力、新型架构等前沿探索
七、快速开始
bash
# 环境要求:Python 3.10+, PyTorch 2.10+, CUDA 13.1+, SM90/SM100 GPU
git clone https://github.com/deepseek-ai/TileKernels.git
cd TileKernels
# 安装 TileLang 依赖
pip install tilelang>=0.1.9
# 本地开发版安装
pip install -e .
# 运行测试( correctness + benchmark )
pytest tests/transpose/test_transpose.py --run-benchmark
# 压力测试
TK_FULL_TEST=1 pytest -n 4 --count 2
一句话总结
TileKernels 是 DeepSeek 用国产 DSL(TileLang)编写的高性能 GPU 算子库,以 80 行 Python 级的开发效率,达到手写 CUDA 级的硬件性能,直接瞄准 MoE 路由、低精度量化等 LLM 核心瓶颈,并首次原生支持 NVIDIA Blackwell 架构。