一行 Triton 代码同时跑赢 NVIDIA 和 AMD:IBM Research 把大模型推理的「硬件鸿沟」填平了

  • 关联论文:2511.11581

你有没有这种体感——同样一个开源大模型,插在 H100 上跑得飞快,换一张 MI300 性能就掉一半?或者反过来,你给 AMD 卡买了一套推理服务,结果 NVIDIA 客户跑来问"你们是不是没优化"?

这不是你的工程水平问题。这是过去五年 AI 推理栈最隐蔽、也最贵的一道墙——顶尖的 attention kernel(注意力计算核心),每一家显卡厂商都得各写一份

最近 arXiv 上的 2511.11581(IBM Research Zurich),把这件事一次性说破了。核心结论只有一句话:用同一种源码(Triton),同时在 NVIDIA H100 和 AMD MI300 上跑出和 FlashAttention-3 同等水平的性能——H100 上达到 98.6%–105.9%(部分场景甚至反超),MI300 上相对自家朴素实现拿到 5.9× 端到端加速。而且这套实现已经合入 vLLM,作为 AMD GPU 的默认 attention backend 出货。

同一个模型,为什么"换张卡"就这么难?

答案藏在 attention kernel 工程师的日常里:

  • 顶尖 attention 实现基本都是手写 CUDA / HIP——NVIDIA 一份,AMD 一份,Intel 一份。每家几万行起步。
  • 上面那层 vLLM 看着统一了,但真正吃性能的那块代码还锁在各家 vendor 库里
  • 模型架构每升级一次(GQA、Paged KV Cache、Prefix Cache、Speculative Decoding),两套 kernel 都要重写一遍
  • 后果:① 新显卡一上市,根本没有配套的优化 kernel;② 同一份模型在 A 卡和 B 卡上性能完全不可控。

这就是所谓的 "hardware lottery"——你做出来的方案能不能起飞,赌的是你早期押中了哪张卡。

IBM 这篇论文做对了哪三件事

第一,把 Triton 当成"跨 vendor 的统一汇编"。

Triton 是 OpenAI 开源的 kernel 编写语言,本质上是"用 Python 写 GPU 代码、自动编译成 NVIDIA PTX 或 AMD CDNA"。IBM 团队的赌注是:把 attention kernel 用 Triton 表达出来,让编译器去适配硬件,而不是人手写两套。

听起来简单,做起来全是坑——因为 Triton 在不同硬件上的"脾气"不一样,自动调优的成本也不同。

第二,五步迭代把性能从 19.7% 拉到 105.9%。

一开始直接用 Triton 写 baseline,性能只有 FlashAttention-3 的 19.7%——慢了整整 5 倍。但 IBM 团队没有换路,而是在 Triton 内部做了五步微优化:

  • Q-Block 优化:把共享 KV head 的 query head 合并计算(针对 GQA / MQA 架构)
  • Parallel Tiled Softmax:把 softmax 跨多个 GPU 计算单元并行(小 batch 长序列救命)
  • 可调 Tile Size:运行时按硬件自动选 block 大小(抹平 vendor 差异的关键)
  • Static Launch Grid:锁定启动参数,消除 Python 端开销
  • CUDA / HIP Graphs:把整个推理流程录制到图里回放(减少 GPU 启动延迟)

每一步在 H100 上能测到 1.5–9.8× 不等的提速,五步叠加后直接拉平 FlashAttention-3

第三,把"自动调优"从运行时搬到离线。

Triton 自带 @triton.autotune 装饰器,但每次推理都要花时间选最优配置,对生产环境不友好。IBM 的方法是:离线跑 micro-benchmark,把结果存成一张轻量决策树——按 GPU 型号 + 序列长度 + batch 大小分支,运行时只查表、不再调优。决策树本身几乎零成本,但短 prompt 提速 9.8×、中等 prompt 提速 75%

这个"离线扫描 + 决策树查表"的工程模式,比"运行时调优"更适合生产部署——对所有正在做 LLM 推理优化的团队都有借鉴意义。

一个反直觉的发现:AMD 卡上反而更依赖 full graphs

论文里有个细节很值得品:H100 上即使只开"partial CUDA graphs"(attention 之外的部分用图)也接近 FlashAttention-3;但 MI300 上必须开 full HIP-graphs 才能拿到完整的 5.9× 加速。

原因是 AMD 卡的 launch overhead(启动延迟)比 NVIDIA 更大——单次 kernel 启动吃掉的开销在 H100 上只占 1%,在 MI300 上能占到 10–20%。

这意味着什么?你做 AMD 推理优化,graphs 不是"锦上添花",是"必须开"。但 full graphs 对 kernel 又有"静态 launch grid"的硬性要求——这就把整个优化链路绑死成一个工程协议。

已经在你电脑上跑着了

这套实现不是停在论文里的玩具,已经合入 vLLM 的 upstream,作为 AMD GPU 的默认 attention backend 出货。也就是说:

  • 你现在用 vLLM + AMD GPU 跑 Llama-3.1-8B,默认就在用 IBM 这套 Triton kernel
  • H100 用户即使不用 vLLM,也可以参考这套模式——autotune 决策树、tile size 表、micro-benchmark 套件全部开源在 ibm.biz/vllm-ibm-triton-lib

工程界过去对"AMD 推理"的悲观印象("性能比 NVIDIA 差一截")正在被这种工作改写。

谁会需要这个

  • LLM 推理平台 / Infra 工程师:vLLM / TGI / SGLang / LMDeploy 的二次开发者——以后选 attention backend 不用再"为每个 vendor 各维护一份"。
  • GPU kernel / 编译器工程师:附录 A/B/C 几乎是 Triton attention kernel 的教科书,值得精读。
  • AMD GPU 平台团队:想知道"在 MI300 上 attention 能不能打 H100"——答案是配合 full HIP-graphs,单卡可战
  • 企业 AI 架构师 / 平台 PM:决策"自研 attention 还是用上游 Triton"时,文末 Insight §8 是现成论据。
  • 学术研究员:跨 vendor reproducible benchmark 模板可学,案例可摘。

现实里它还不是"开箱即用万能解"

也得说几个不能忽略的现实:

  • 只测了 attention 一个算子:FFN / MoE / AllReduce 不在论文范围。
  • 只测了 Llama-3.1-8B 一个模型:MoE(Mixtral / DeepSeek-V3)、超长 context(>128k)、speculative decoding 都没覆盖。
  • batch=1 主导 benchmark:典型 chat 场景;server 场景(batch ≥ 8)的吞吐数据缺。
  • AMD 端没有"跨厂商"对比:MI300 上没有成熟 FA3 paged 实现,所以 5.9× 是相对自家 baseline,不是 vs FA3。
  • 决策树是 hard-coded:B100 / MI325 / RDNA4 等新硬件上线时要重新扫描决策树。
  • autotune 离线扫描成本不便宜:估计每个新 GPU 代次要 48–96 GPU-hours。

一句话总结

IBM Research 用 Triton 写了一行代码,同时在 NVIDIA 和 AMD 上跑赢 SOTA,并把这条路从论文推到了 vLLM 默认配置。

它在做的是:把"为每家显卡各写一份 kernel"变成历史——这件事对所有正在做 LLM 推理的团队都是好消息,对 AMD 阵营尤其是一个关键节点。

如果你做推理 Infra、做 GPU kernel 优化、或者在评估"N 卡 vs A 卡"的 TCO,这篇是 2026 年必读。


三个标题变体

  1. 同一行 Triton 代码跑赢 H100 和 MI300:IBM 把 LLM 推理的"硬件鸿沟"填平了
  2. 为什么同样的模型在 NVIDIA 和 AMD 上性能差一倍?IBM 这篇论文把答案说穿了
  3. 大模型推理终于不用"为每张卡各写一份代码"了:vLLM 已合入这套 Triton 实现

小红书风格卡片文案(可直接发布)

🤖 为什么同样的开源大模型,H100 上飞快、AMD 上就掉一半?🤖

不是你的工程水平问题。 是过去五年 AI 推理栈最隐蔽的一道墙——顶尖的 attention kernel,每家显卡厂商都得各写一份 😩

NVIDIA 一份 CUDA,AMD 一份 HIP,Intel 一份 SYCL…… 每家几万行起步,上面 vLLM 看着统一了,真正吃性能的那块还锁在各家 vendor 库里 💸

最近 arXiv 2511.11581(IBM Research Zurich)把这件事一次性说破了 ✨

核心就一句话:用同一种源码(Triton),同时在 NVIDIA H100 和 AMD MI300 上跑出和 FlashAttention-3 同等性能

📊 数据说话: ✨ H100:达到 FA3 的 98.6%–105.9%(部分反超) ✨ MI300:相对自家朴素实现 5.9× 端到端加速 ✨ 已经合入 vLLM upstream,作为 AMD GPU 的默认 attention backend

最狠的是他们的工程套路:离线 micro-benchmark → 决策树查表 → 零运行时调优成本——这种"用离线换在线"的思路,所有做推理优化的团队都能借鉴 🔥

对 AMD 阵营尤其是个关键节点——"AMD 推理一定比 NVIDIA 慢"这个印象正在被改写 ✊

📎 论文 ID:2511.11581 💬 评论区聊聊:你用 AMD 跑过 LLM 推理吗?性能差距真的有传说中那么大吗?

人工智能 #AI科普 #大模型 #LLM推理 #GPU优化 #Triton #AMD #NVIDIA #vLLM #开源项目 #技术分享 #论文分享 #AI工程 #AI落地 #前沿科技