一行 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 年必读。
三个标题变体
- 同一行 Triton 代码跑赢 H100 和 MI300:IBM 把 LLM 推理的"硬件鸿沟"填平了
- 为什么同样的模型在 NVIDIA 和 AMD 上性能差一倍?IBM 这篇论文把答案说穿了
- 大模型推理终于不用"为每张卡各写一份代码"了: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 推理吗?性能差距真的有传说中那么大吗?