Prhub

#50006 [ROCm] Add tuned selective_state_update float16 config for AMD Instinct MI325X

原始 PR 作者 vanshbhatia-amd 合并时间 2026-07-31 10:43 文件变更 1 提交数 3 评论 2 代码增减 +51 / -0

执行摘要

新增 MI325X 的 SSU float16 调优配置

MI325X 缺少专用的 SSU 配置,回退到通用启发式(BLOCK_SIZE_M=4, num_warps=4),在 dstate=128 时对所有批次大小都远非最优,导致 Mamba 解码吞吐量受限。PR 旨在补齐该配置,与其他 AMD 设备(MI300X、MI350、MI355)的做法保持一致。

值得快速浏览,作为设备特定内核调优配置的范式,尤其是了解配置文件命名和查找机制。不需要深入精读。

讨论亮点

此 PR 没有实际的人工审查评论。claude[bot] 自动审查因 fork 而跳过;tjtanaa 直接批准。因此没有设计争议或未解决疑虑的讨论。

实现拆解

  1. 新增 JSON 配置文件 vllm/model_executor/layers/mamba/ops/configs/selective_state_update/headdim=64,dstate=128,device_name=AMD_Instinct_MI325X,cache_dtype=float16.json,包含 12 个 effective_batch 点的 BLOCK_SIZE_M 和 num_warps 配置。
  2. 该文件由内置调优脚本 benchmark_selective_state_update.py 自动生成并验证,脚本从设备名称和 dtype 自动命名文件,因此运行时无需编码改动即可加载。
  3. 配置通过 #48980 的分层配置查找路径自动拾取,加载时记录日志。测试包括单元测试(6 个通过)和 lm_eval 端到端精度验证。
文件 模块 状态 重要度
vllm/model_executor/layers/mamba/ops/configs/selective_state_update/headdim=64,dstate=128,device_name=AMD_Instinct_MI325X,cache_dtype=float16.json Mamba 内核配置 added 5.19

关键源码片段

vllm/model_executor/layers/mamba/ops/configs/selective_state_update/headdim=64,dstate=128,device_name=AMD_Instinct_MI325X,cache_dtype=float16.json infrastructure

核心变更,为 MI325X 添加 SSU 浮点 16 调优启动配置,直接提升解码性能。

{
  "triton_version": "3.6.0",
  // 按 effective_batch(batch × nheads)键控的调优配置
  "128": {
    "BLOCK_SIZE_M": 32,
    "num_warps": 4
  },
  "256": {
    "BLOCK_SIZE_M": 16,
    "num_warps": 4
  },
  // 大 batch 时偏向较大 BLOCK_SIZE_M 和较少 warps,以提升吞吐
  "4096": {
    "BLOCK_SIZE_M": 32,
    "num_warps": 1
  },
  "8192": {
    "BLOCK_SIZE_M": 16,
    "num_warps": 1
  },
  "16384": {
    "BLOCK_SIZE_M": 32,
    "num_warps": 1
  },
  "32768": {
    "BLOCK_SIZE_M": 32,
    "num_warps": 1
  },
  "65536": {
    "BLOCK_SIZE_M": 64,
    "num_warps": 4
  },
  "131072": {
    "BLOCK_SIZE_M": 64,
    "num_warps": 4
  },
  "196608": {
    "BLOCK_SIZE_M": 64,
    "num_warps": 4
  },
  "262144": {
    "BLOCK_SIZE_M": 64,
    "num_warps": 4
  }
}

评论区精华

自动审查跳过 other

claude[bot] 指出此 PR 来自 fork,自动审查被禁用。

结论:需要维护者通过 `@claude review` 触发一次性审查。 · 已解决

批准 设计

tjtanaa 直接批准了 PR。

结论:PR 被批准并合并。 · 已解决

风险与影响

风险较低。配置仅影响 Triton 启动几何形状(BLOCK_SIZE_M、num_warps),不改变内核数学,因此精度影响可忽略(端到端评估确认)。主要风险是配置文件可能不适用于其他模型/TP 组合,但根据(headdim、dstate、cache_dtype)键控,应可安全转移。需注意 Triton 版本记录为 3.6.0,若环境 Triton 版本不同,性能可能略有变化,但不会影响正确性。

影响范围为 AMD MI325X 上 Mamba 模型的解码性能,显著提升批量较大时的吞吐量(最高约 1.95 倍)。对用户透明,无需更改 API 或模型行为。对团队而言,展示了设备特定调优配置的可复用模式。

配置依赖 Triton 版本 仅覆盖 float16 变体 无人工代码审查

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论