MLA & DSA 推理性能优化指南

Hopper (H100/H800) vs Blackwell (B200/B300) · Prefill & Decode 阶段参数配置分析
版本 1.0 · 2026-03-31 · 聚焦:相同效果下推理性能最优化

目录

  1. 架构概述:MLA vs DSA
  2. GPU 硬件特性对比:Hopper vs Blackwell
  3. Prefill 阶段:计算密集型分析
  4. Decode 阶段:访存密集型分析
  5. MLA 关键参数配置与性能影响
  6. DSA 关键参数配置与性能影响
  7. GPU 适配推荐:MLA × DSA × H/B 卡
  8. 最优参数配置总结矩阵
  9. 工程实践建议

1. 架构概述:MLA vs DSA

1.1 MLA(Multi-head Latent Attention)

MLA 由 DeepSeek-V2 首次提出,核心思想是通过低秩联合压缩将 KV 缓存压缩到一个低维度的潜空间(latent space)向量中。推理时仅缓存该潜向量,需要计算注意力时再按需解压恢复完整的 K/V。

MLA 架构:低秩压缩 & 按需解压 输入 h_t d_model Down Projection W_DKV: d→d_c 潜向量 c_t^KV d_c (=512) ← 仅缓存此向量 Up Proj K W_UK: d_c→d_h×n_h Up Proj V W_UV: d_c→d_h×n_h Attention RoPE Key d_rope (=64) 单独缓存 RoPE 位置信息 两种计算路径: Non-Absorbed 路径(MHA 模式) • 先解压 c_t → K, V,再做标准 MHA • 计算量大但可并行:适合 Prefill • batch 较大时 FLOPS 利用率高 → Prefill 阶段推荐 ✓ Absorbed 路径(MQA 模式) • W_UK 吸收进 W_Q,直接在潜空间计算 • 避免 KV 解压:极大减少显存访问 • 单 token 生成时 Arithmetic Intensity ↑2x → Decode 阶段推荐 ✓
💡
MLA 核心优势:DeepSeek-V3 的 MLA 将每 token KV 缓存从传统 MHA 的约 516 KB(如 Llama-3.1 405B)压缩至仅 ~70 KB,减少约 93.3%。这意味着 Decode 阶段的显存带宽压力大幅降低,直接提升 token 吞吐率。

1.2 DSA(DeepSeek Sparse Attention)

DSA 于 DeepSeek-V3.2 引入,是在 MLA 基础之上的稀疏注意力机制。它通过一个轻量级的 Lightning Indexer 评估每个 query token 与历史 token 的相关性,仅选择最相关的 top-k token 参与注意力计算,将注意力复杂度从 O(L²) 降至 O(L·k)。

DSA 架构:Lightning Indexer + Top-k 稀疏选择 MLA 潜向量序列 (长度 L) ... (长序列) ■ 被选中的 token ■ 未被选中 Lightning Indexer FP8 批量矩阵乘 · 评分排序 Query Token Top-k 选择 (GPU partial sort) k ≪ L · block-aligned k 个被选 token 稀疏 Attention O(L·k) 复杂度 DSA 关键参数 压缩块大小 (block_size): 32 滑动步长 (stride): 16 选中块大小: 64 tokens 选中块数量: 16 blocks 初始激活块: 1 block 局部窗口块: 2 blocks 滑动窗口: 512 tokens 实现: MQA 模式 on MLA 精度: FP8 indexer CUDA custom kernels
💡
MLA + DSA 协同:MLA 压缩了 KV 缓存的「体积」(减少访存),DSA 压缩了注意力计算的「范围」(减少计算量)。两者结合使 DeepSeek-V3.2 在超长上下文(128k+)下推理性能大幅提升,同时维持模型效果。

2. GPU 硬件特性对比:Hopper vs Blackwell

规格 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

2.1 带宽 & 算力可视化

HBM 带宽 (TB/s)

H100 / H800
3.35 TB/s
B200
8.0 TB/s
B300
8.0 TB/s

FP8 算力 (TFLOPS)

H100 / H800
1,979
B200
4,500
B300
~5,000
关键差异总结:Blackwell 相比 Hopper 有三个质变——① HBM 带宽 2.4x 提升(Decode 阶段直接受益);② FP8 算力 2.3x 提升(Prefill 阶段直接受益);③ 新增 FP4 精度支持(推理加倍潜力)。H800 相比 H100 主要劣势在 NVLink 带宽(400 vs 900 GB/s),多卡通信受限。

3. Prefill 阶段:计算密集型分析

PREFILL 阶段

Prefill 阶段一次性处理完整的输入 prompt,属于计算密集型 (Compute-bound)。其性能瓶颈主要取决于 GPU 的 FLOPS 算力和计算效率。

Prefill 阶段计算流程与瓶颈 输入 Tokens batch × seq_len MLA Non-Absorbed 先解压 c→K,V 再做 MHA ✓ 高 FLOPS 利用率 DSA 稀疏选择 长序列时启用 (>4k) O(L²)→O(L·k) 降计算 FFN / MoE 主要计算开销 KV Cache 存储潜向量 Prefill 性能瓶颈分析 主要瓶颈: GPU FLOPS(计算密集型) 次要瓶颈: 多卡间 KV cache 传输(TP 场景) 关键指标: Arithmetic Intensity (FLOPS/Byte) MLA Prefill 使用 Non-Absorbed 路径 → 大 batch 下 AI 高, GPU 算力打满 GPU 选择影响 B200/B300: FP8 算力 4500-5000 TFLOPS → Prefill TTFT 降低 ~50%+ H100/H800: FP8 算力 1979 TFLOPS → 需更多卡并行或降低精度来补偿 H800 NVLink 仅 400GB/s, TP>2 时通信受限

3.1 MLA Prefill 阶段的计算路径选择

✅ Non-Absorbed(推荐用于 Prefill)

  • 先将潜向量 c_t 解压为完整 K、V
  • 使用标准 MHA 内核(FlashAttention 等)
  • 大 batch/长 seq 时,GEMM 效率高
  • 充分利用 Tensor Core 算力
  • 适用条件:新 token 数量 x ≥ 阈值(如 2048)

❌ Absorbed(Prefill 不推荐)

  • 需要将 W_UK 吸收进查询矩阵
  • Prefill 大矩阵乘时反而增加开销
  • 优势在单 token decode,不在批量 prefill
  • 当 x 很大时 absorbed 路径实际更慢

3.2 DSA 在 Prefill 中的作用

在短序列 Prefill(<4K tokens)时,DSA 的稀疏选择开销(Lightning Indexer 评分 + top-k 排序)可能超过其带来的计算节省,因此通常不建议对短 prompt 启用 DSA。当序列长度超过 4K-8K 时,DSA 的 O(L·k) 优势开始显现,能有效降低 Prefill 延迟。

📌
Prefill 阶段最佳实践:在 H 卡上,由于 FLOPS 相对有限,建议启用 FP8 精度 + chunked prefill + Non-Absorbed MLA 路径。在 B 卡上,可进一步探索 FP4 prefill(B200/B300 支持),结合 DSA 处理超长上下文。

4. Decode 阶段:访存密集型分析

DECODE 阶段

Decode 阶段每步仅生成一个 token,属于访存密集型 (Memory-bandwidth-bound)。其性能瓶颈主要取决于 HBM 带宽和 KV 缓存大小。

Decode 阶段计算流程与瓶颈 单 Token 1 token/step MLA Absorbed 直接在潜空间计算 ✓ 无需解压 KV 读取潜向量 (d_c=512) DSA Top-k 仅读取 k 个 token ✓ 减少 KV cache 读取 FFN/MoE 权重加载 Output Token append to cache Decode 性能瓶颈分析 主要瓶颈: HBM 带宽(访存密集型) MLA Absorbed 路径: KV cache 仅需读 d_c 维度 DSA 进一步: 仅读取 top-k tokens 的 cache GPU 带宽收益 B200/B300: 8 TB/s → Decode 吞吐 ~2.4x H100/H800: 3.35 TB/s → MLA 压缩更关键 B 卡 192-288GB 容量可支撑更大 batch

4.1 MLA Decode 阶段的核心优势

传统 MHA Decode: 每 step 需读取 KV = n_layers × n_heads × 2 × d_head × seq_len bytes
MLA Absorbed Decode: 每 step 需读取 KV = n_layers × (d_c + d_rope) × seq_len bytes

以 DeepSeek-V3 为例:
  d_c = 512, d_rope = 64 → 每 token 缓存 = (512+64) × 2B = 1,152 Bytes (FP16) ≈ 576 Bytes (FP8)
  MHA 等效: 128 heads × 128 d_head × 2(K+V) × 2B = 65,536 Bytes
  压缩比 ≈ 57:1 (FP16) / 114:1 (FP8)

4.2 MLA + DSA Decode 的叠加优化

在 Decode 阶段,DSA 在 MLA 已经压缩的潜空间上再做稀疏选择。假设序列长度为 L,选择 top-k 个 token:

纯 MLA Decode 读取量: n_layers × (d_c + d_rope) × L bytes
MLA + DSA Decode 读取量: n_layers × (d_c + d_rope) × k bytes   (k ≪ L)

当 L=32K, k=1024 时,DSA 额外减少 ~97% 的 KV cache 读取
Decode 阶段核心洞见:MLA 的 Absorbed 路径使 Decode 从「多头并行读取大量 KV」变为「单潜向量维度读取」,Arithmetic Intensity 翻倍。DSA 在此基础上进一步减少读取 token 数。在 B 卡 8 TB/s 带宽下,这意味着 token 生成速率可达 H 卡的 2-3 倍。

5. MLA 关键参数配置与性能影响

5.1 参数总览

参数 含义 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卡) 低精度可能轻微影响效果

5.2 d_c 参数的性能-效果权衡

d_c 对性能和效果的影响曲线 d_c (KV 潜维度) 指标值 128 256 512 1024 2048 模型效果 Decode 速度 甜蜜点 d_c 过小: 效果损失严重 d_c 过大: 性能收益递减
推荐配置:d_c = 512 是经验证的最优平衡点。在 H 卡上进一步降低 d_c 获取更高 Decode 吞吐时需谨慎评估效果损失;在 B 卡上由于带宽充裕,d_c = 512 已足够发挥性能优势,无需进一步压缩。

5.3 精度选择对不同 GPU 的影响

精度 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 损

6. DSA 关键参数配置与性能影响

6.1 参数总览

参数 默认值 作用 ↑ 增大时 ↓ 减小时
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 始终参与的局部块 近距离上下文更丰富 近距离信息可能不足

6.2 GPU 特性对 DSA 参数的影响

H100/H800 DSA 调优策略

  • 更激进的稀疏度:由于 H 卡带宽有限(3.35 TB/s),减少 num_selected_blocks 到 12-14 可有效降低 KV cache 读取量
  • 较大 block_size (64):减少 Indexer 计算次数,节省算力
  • 保守的 sliding_window (512):确保局部信息完整性
  • FP8 Indexer:H100 FP8 Tensor Core 加速评分
  • H800 注意:NVLink 受限,TP 场景需最小化跨卡 KV 传输

B200/B300 DSA 调优策略

  • 可容忍更多选中块:8 TB/s 带宽可支撑 num_selected_blocks = 16-20,获取更好效果
  • 精细 block_size (32):B 卡算力充裕,更细粒度选择提升效果
  • FP4 Indexer(可探索):B 卡 FP4 吞吐极高,Indexer 评分可尝试 FP4
  • 更大 sliding_window (512-1024):带宽允许更大局部窗口
  • B300 288GB 优势:超大 batch decode 时不受显存瓶颈

6.3 DSA 稀疏度 vs 效果权衡

有效 token 数 k 对效果和速度的影响 k (有效参与的 token 数) / 稀疏度 k=256 k=512 k=1024 k=2048 Full Attn 模型效果 Decode 速度 H 卡最优 B 卡最优
💡
核心发现:H 卡由于带宽受限,DSA 的最优 k 偏小(~512-768),需要更激进的稀疏度来保证 Decode 吞吐;B 卡带宽充裕,k 可设得更大(~1024-1536),在保持高吞吐的同时获取更好的模型效果。换句话说,B 卡能在「相同推理速度」下获得「更好的效果」。

7. GPU 适配推荐:MLA × DSA × H/B 卡

7.1 Prefill 阶段配置矩阵

配置项 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 ✓

7.2 Decode 阶段配置矩阵

配置项 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 ✓

8. 最优参数配置总结矩阵

🏆 核心原则:相同效果下追求最优推理性能

以下配置方案按「效果等价」原则设计。每个 GPU 平台选择其硬件特性下能达到最高推理性能的参数组合,同时确保模型效果无显著退化(PPL 损失 <1%)。

8.1 MLA 最优配置

参数 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

8.2 DSA 最优配置

参数 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

8.3 综合性能预期(相对 H100 基线)

各 GPU 推理性能相对比较 (H100 = 1.0x) Prefill TTFT Decode token/s Max Batch (Decode) 长序列 (128K) H100: 1.0x H800: ~0.8x B200: 2.0-2.5x B300: 2.5-3x H100: 1.0x H800: ~0.9x B200: 2.0-2.5x B300: 2.5-3x H100: 1.0x (80GB) H800: 1.0x (80GB) B200: 2.4x (192GB) B300: 3.6x (288GB) H100: 1.0x H800: ~0.7x B200: 3-4x (DSA+MLA) B300: 4-5x

9. 工程实践建议

9.1 Prefill / Decode 分离部署(Disaggregated Serving)

✅ 推荐架构:Prefill-Decode 分离

将 Prefill 和 Decode 部署在不同的 GPU 集群上,各自选择最优参数配置。Prefill 节点专注算力最大化(Non-Absorbed + 大 chunk),Decode 节点专注带宽最大化(Absorbed + DSA 稀疏)。混合部署时(如 H 卡做 Prefill,B 卡做 Decode),可通过 KV cache 迁移协议实现。

9.2 H 卡环境的最大化利用策略

H100/H800 推理优化清单

① 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 传输。

9.3 B 卡环境的最大化利用策略

B200/B300 推理优化清单

① 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 无通信瓶颈,可充分利用全卡算力。

9.4 推荐的推理框架与 Kernel

框架 / Kernel 支持 MLA 支持 DSA H 卡优化 B 卡优化
SGLang ✅ (多 backend) ✅ FA2 + FlashMLA ✅ FA3 + CutlassMLA
vLLM ✅ (V3.2)
TensorRT-LLM 部分 ✅ (FP4 支持)
FlashMLA Kernel ✅ 原生 -
CutlassMLA Kernel ✅ 原生 - ✅ (FP4)

9.5 关键决策流程图

推理配置决策流程 开始推理配置 GPU 类型? H 卡 精度: FP8 (KV + 计算) B 卡 精度: FP8 / 探索 FP4 阶段? Prefill Non-Absorbed MLA DSA: seq>8K 才启用 Chunk=2048, TP=8 H800: TP=4+PP=2 Decode Absorbed MLA (MQA) DSA: blocks=12-14 block_size=64, SW=512 FP8 KV Cache 阶段? Prefill Non-Absorbed MLA DSA: seq>4K 启用 Chunk=4096-8192 FP8/FP4, TP=8, FA3 Decode Absorbed MLA (MQA) DSA: blocks=16-20 block_size=32, SW=1024 FP8/FP4, 大batch H 卡策略总结 用更激进的稀疏度弥补带宽不足 FP8 为主,保守精度保效果 H800 需特别关注 NVLink 瓶颈 B 卡策略总结 带宽充裕,DSA 可更宽容保效果 FP4 是独有加分项,大 batch 优势 同速度下效果更好,或同效果下速度更快
⚠️
注意事项:上述参数配置基于公开技术报告和社区实践整理,实际最优值受模型规模、具体任务类型、序列长度分布、并发量等因素影响,建议在目标场景下进行系统性 profiling 验证。FP4 精度方案目前仍处于早期阶段,需进行充分的精度校准和效果评估。

MLA & DSA 推理性能优化指南 · v1.0 · 2026-03-31

参考来源:DeepSeek-V2/V3/V3.2 技术报告 · NVIDIA 官方规格 · SGLang/vLLM 文档