MLA 由 DeepSeek-V2 首次提出,核心思想是通过低秩联合压缩将 KV 缓存压缩到一个低维度的潜空间(latent space)向量中。推理时仅缓存该潜向量,需要计算注意力时再按需解压恢复完整的 K/V。
DSA 于 DeepSeek-V3.2 引入,是在 MLA 基础之上的稀疏注意力机制。它通过一个轻量级的 Lightning Indexer 评估每个 query token 与历史 token 的相关性,仅选择最相关的 top-k token 参与注意力计算,将注意力复杂度从 O(L²) 降至 O(L·k)。
| 规格 | H100 SXM | H800 SXM | B200 SXM | B300 SXM |
|---|---|---|---|---|
| 架构 | Hopper (GH100) | Hopper (GH100) | Blackwell (GB202) | Blackwell (GB202) |
| 制程 | TSMC 4N | TSMC 4N | TSMC 4NP (chiplet) | TSMC 4NP (chiplet) |
| HBM 容量 | 80 GB (HBM3) | 80 GB (HBM3) | 192 GB (HBM3e) | 288 GB (HBM3e) |
| HBM 带宽 | 3.35 TB/s | 3.35 TB/s | 8.0 TB/s | 8.0 TB/s |
| FP16 TFLOPS | 990 (dense) | 990 (dense) | ~2,250 | ~2,500 |
| FP8 TFLOPS | 1,979 (dense) | 1,979 (dense) | 4,500 (dense) | ~5,000 (dense) |
| FP4 支持 | 不支持 | 不支持 | 9,000 TFLOPS (dense) | ~10,000+ TFLOPS |
| NVLink 带宽 | 900 GB/s | 400 GB/s | 1,800 GB/s (NVLink5) | 1,800 GB/s (NVLink5) |
| TDP | 700W | 700W | 1000W | 1200W |
HBM 带宽 (TB/s)
FP8 算力 (TFLOPS)
Prefill 阶段一次性处理完整的输入 prompt,属于计算密集型 (Compute-bound)。其性能瓶颈主要取决于 GPU 的 FLOPS 算力和计算效率。
在短序列 Prefill(<4K tokens)时,DSA 的稀疏选择开销(Lightning Indexer 评分 + top-k 排序)可能超过其带来的计算节省,因此通常不建议对短 prompt 启用 DSA。当序列长度超过 4K-8K 时,DSA 的 O(L·k) 优势开始显现,能有效降低 Prefill 延迟。
Decode 阶段每步仅生成一个 token,属于访存密集型 (Memory-bandwidth-bound)。其性能瓶颈主要取决于 HBM 带宽和 KV 缓存大小。
在 Decode 阶段,DSA 在 MLA 已经压缩的潜空间上再做稀疏选择。假设序列长度为 L,选择 top-k 个 token:
| 参数 | 含义 | DeepSeek-V3 值 | 性能影响 | 效果影响 |
|---|---|---|---|---|
d_c (KV 潜维度) |
KV 压缩后的潜空间维度 | 512 | ↓ d_c → KV cache ↓, 带宽 ↓, Decode 快 | ↓ d_c 过小 → 表达能力下降 |
d_c_q (Q 潜维度) |
Q 压缩后的潜空间维度 | 1536 | 影响 Prefill 中 Q 的计算量 | 决定查询表达能力 |
d_rope |
RoPE 位置编码维度 | 64 | 需单独缓存,增加少量 cache | 影响位置感知能力 |
n_heads |
注意力头数 | 128 | Non-Absorbed: 影响计算量 Absorbed: 仅影响 Q 侧 |
多头提升模型多样性 |
d_head |
每头维度 | 128 | Absorbed 路径中被 d_c 替代 | 影响单头表达能力 |
| 精度(FP16/FP8/FP4) | KV cache 和计算精度 | FP8 推荐 | FP8→FP4: cache -50%, 算力 +2x (B卡) | 低精度可能轻微影响效果 |
d_c = 512 是经验证的最优平衡点。在 H 卡上进一步降低 d_c 获取更高 Decode 吞吐时需谨慎评估效果损失;在 B 卡上由于带宽充裕,d_c = 512 已足够发挥性能优势,无需进一步压缩。| 精度 | KV Cache/Token | H100/H800 适用性 | B200/B300 适用性 | 效果影响 |
|---|---|---|---|---|
| FP16 / BF16 | ~1,152 B | 基线方案,安全稳定 | 浪费 B 卡优势 | 无损 |
| FP8 | ~576 B | 推荐首选 ✓ | 推荐首选 ✓ | 极微损(<0.5% PPL) |
| FP4 | ~288 B | 不支持 | B 卡独有优势 ✓ | 需校准,~1-2% PPL 损 |
| 参数 | 默认值 | 作用 | ↑ 增大时 | ↓ 减小时 |
|---|---|---|---|---|
block_size(压缩块大小) |
32 | Indexer 评分的粒度单位 | Indexer 更快,粒度粗 | 选择更精细,Indexer 开销大 |
stride(滑动步长) |
16 | 块间滑动的 token 数 | 覆盖率降低,速度略快 | 重叠更多,信息保留好 |
selected_block_size(选中块大小) |
64 | 每个被选 block 的 token 数 | 访存对齐好,GPU 利用高 | 选择更精细但内存不对齐 |
num_selected_blocks(选中块数) |
16 | 每个 query 参与的块数 | 效果好,计算量大 | 更快但可能丢信息 |
sliding_window(滑动窗口) |
512 | 最近 token 始终参与 | 局部信息保留好,带宽↑ | 可能丢近期上下文 |
initial_blocks |
1 | 始终参与的初始块 | 保留全局开头信息 | 可能丢失 prompt 头部 |
local_blocks |
2 | 始终参与的局部块 | 近距离上下文更丰富 | 近距离信息可能不足 |
num_selected_blocks 到 12-14 可有效降低 KV cache 读取量block_size (64):减少 Indexer 计算次数,节省算力sliding_window (512):确保局部信息完整性num_selected_blocks = 16-20,获取更好效果block_size (32):B 卡算力充裕,更细粒度选择提升效果sliding_window (512-1024):带宽允许更大局部窗口| 配置项 | H100 | H800 | B200 | B300 |
|---|---|---|---|---|
| MLA 路径 | Non-Absorbed | Non-Absorbed | Non-Absorbed | Non-Absorbed |
| 计算精度 | FP8 | FP8 | FP8 / FP4 可探索 | FP8 / FP4 可探索 |
| DSA 启用阈值 | seq > 8K | seq > 8K | seq > 4K | seq > 4K |
| Chunked Prefill | chunk = 2048 | chunk = 2048 | chunk = 4096 | chunk = 4096-8192 |
| TP 并行度 | TP=8 (NVLink 900) | TP=4-8 (NVLink 400, 受限) | TP=8 (NVLink5 1800) | TP=8 (NVLink5 1800) |
| Attention Backend | FlashAttention-2 | FlashAttention-2 | FlashAttention-3 / FlashMLA | FlashAttention-3 / FlashMLA |
| 预期 TTFT 相对值 | 1.0x (基线) | ~1.1-1.3x (NVLink 受限) | ~0.4-0.5x ✓ | ~0.35-0.45x ✓ |
| 配置项 | H100 | H800 | B200 | B300 |
|---|---|---|---|---|
| MLA 路径 | Absorbed (MQA) | Absorbed (MQA) | Absorbed (MQA) | Absorbed (MQA) |
| KV Cache 精度 | FP8 | FP8 | FP8 → FP4 可探索 | FP8 → FP4 可探索 |
| DSA num_selected | 12-14 (激进稀疏) | 10-12 (更激进) | 16-20 (保效果) | 16-20 (保效果) |
| DSA sliding_window | 512 | 384-512 | 512-1024 | 512-1024 |
| DSA block_size | 64 (粗粒度省算力) | 64 | 32 (细粒度保效果) | 32 |
| Max Batch Size | 受限于 80GB HBM | 受限于 80GB HBM | 192GB → batch ↑ 2.4x | 288GB → batch ↑ 3.6x |
| Decode Backend | FlashMLA / CutlassMLA | FlashMLA / CutlassMLA | FlashMLA / TRTLLM MLA | FlashMLA / TRTLLM MLA |
| 预期 token/s 相对值 | 1.0x (基线) | ~0.85-0.95x | ~2.0-2.5x ✓ | ~2.5-3.0x ✓ |
以下配置方案按「效果等价」原则设计。每个 GPU 平台选择其硬件特性下能达到最高推理性能的参数组合,同时确保模型效果无显著退化(PPL 损失 <1%)。
| 参数 | Hopper 系列 | Blackwell 系列 | ||
|---|---|---|---|---|
| H100 | H800 | B200 | B300 | |
d_c |
512 | 512 | 512 | 512 |
d_rope |
64 | 64 | 64 | 64 |
| Prefill 路径 | Non-Absorbed | Non-Absorbed | Non-Absorbed | Non-Absorbed |
| Decode 路径 | Absorbed | Absorbed | Absorbed | Absorbed |
| KV Cache 精度 | FP8 ✓ | FP8 ✓ | FP8 (FP4 可探索) ✓ | FP8 (FP4 可探索) ✓ |
| 计算精度 | FP8 | FP8 | FP8 / FP4 | FP8 / FP4 |
| Attention Kernel | FA2 + FlashMLA | FA2 + FlashMLA | FA3 + FlashMLA | FA3 + FlashMLA |
| 参数 | Hopper 系列 | Blackwell 系列 | ||
|---|---|---|---|---|
| H100 | H800 | B200 | B300 | |
block_size |
64 | 64 | 32 | 32 |
stride |
32 | 32 | 16 | 16 |
selected_block_size |
64 | 64 | 64 | 64 |
num_selected_blocks |
12-14 | 10-12 | 16-20 ✓ | 16-20 ✓ |
sliding_window |
512 | 384-512 | 512-1024 | 512-1024 |
initial_blocks |
1 | 1 | 1 | 1 |
local_blocks |
2 | 2 | 2-3 | 2-3 |
| 启用阈值 | seq > 8K | seq > 8K | seq > 4K | seq > 4K |
| Indexer 精度 | FP8 | FP8 | FP8 / FP4 | FP8 / FP4 |
将 Prefill 和 Decode 部署在不同的 GPU 集群上,各自选择最优参数配置。Prefill 节点专注算力最大化(Non-Absorbed + 大 chunk),Decode 节点专注带宽最大化(Absorbed + DSA 稀疏)。混合部署时(如 H 卡做 Prefill,B 卡做 Decode),可通过 KV cache 迁移协议实现。
① MLA Absorbed + FP8 KV Cache:这是 H 卡 Decode 的基础优化。MLA 将 KV 读取量压缩 ~57x,FP8 再减半。对 3.35 TB/s 的 H 卡来说,这等于让有效带宽逻辑上提升到「等效 >100 TB/s」级别的 Full MHA 场景。
② DSA 激进稀疏:在 H 卡上,将 num_selected_blocks 从 16 降到 12,block_size 增大到 64。虽然稍有效果损失(可控在 <0.5% PPL),但 Decode 吞吐提升 15-25%。
③ H800 特别注意:由于 NVLink 仅 400 GB/s(H100 的 ~44%),TP=8 时多卡通信成为瓶颈。建议 TP=4 + PP=2 的混合并行,或使用 TPLA(Tensor Parallel Latent Attention)技术减少跨卡 KV 传输。
① FP4 精度探索:B 卡独有 FP4 支持,FP4 KV cache 可进一步将每 token 缓存从 576B (FP8) 降至 288B。配合 FP4 Tensor Core 的 9-10 PFLOPS 算力,理论上 Prefill 速度可再翻倍。需注意校准以控制效果损失。
② 大 Batch Decode:B200 192GB / B300 288GB 的显存容量允许支撑 2.4-3.6 倍的 batch size。MLA 压缩的 KV cache 在大 batch 下优势更明显——单卡可容纳更多并发请求。
③ DSA 宽容模式:B 卡带宽富裕,DSA 的 num_selected_blocks 可设为 16-20,获取接近 Full Attention 的效果。这是 B 卡「相同速度下效果更好」的核心原因。
④ NVLink5 优势:1800 GB/s 互联带宽使 TP=8 无通信瓶颈,可充分利用全卡算力。
| 框架 / Kernel | 支持 MLA | 支持 DSA | H 卡优化 | B 卡优化 |
|---|---|---|---|---|
| SGLang | ✅ (多 backend) | ✅ | ✅ FA2 + FlashMLA | ✅ FA3 + CutlassMLA |
| vLLM | ✅ | ✅ (V3.2) | ✅ | ✅ |
| TensorRT-LLM | ✅ | 部分 | ✅ | ✅ (FP4 支持) |
| FlashMLA Kernel | ✅ 原生 | - | ✅ | ✅ |
| CutlassMLA Kernel | ✅ 原生 | - | ✅ | ✅ (FP4) |
MLA & DSA 推理性能优化指南 · v1.0 · 2026-03-31
参考来源:DeepSeek-V2/V3/V3.2 技术报告 · NVIDIA 官方规格 · SGLang/vLLM 文档