Wafer AI近期在 AMD MI355X 上部署了 Kimi K3。按其披露的测试结果,原本需要 16 张 NVIDIA B200、跨两台服务器运行的模型,现在可以放进一台配备 8 张 MI355X 的服务器中。
在输入 1024 Token、输出 400 Token 的测试中,MI355X 的总吞吐量为 952 Token/s,单用户生成速度为 118 Token/s。Wafer给出的对比数据显示,按单节点口径计算,这一吞吐量约为 16 卡 B200 方案的 3.8 倍,单位成本效率也高于 B200 和 B300。
显存成为部署 Kimi K3 的关键约束
Kimi K3 拥有 2.8 万亿参数,仅模型权重就需要超过 1.5 TB 显存,这还没有计算百万 Token 上下文所需的 KV Cache。
一台 8 卡 B200 服务器中,每张卡的显存为 192 GB,总容量约 1.5 TB。按文中描述,这意味着模型权重都很难完整放下,更难再为 KV Cache 留出空间,因此 B200 需要两台服务器、16 张 GPU 才能运行。
B300 每张卡配备 288 GB 显存,可以在单节点内装下模型。AMD MI355X 同样为 288 GB 显存,8 张卡合计约 2.3 TB,因此单台服务器即可完成部署。

这不只是服务器数量的差别。模型跨节点运行后,每生成一个 Token 都可能通过网络同步数据。文中提到,即使使用约 195 Gb/s 的 RoCE v2 网络,跨节点通信仍会拖慢解码速度。MI355X 借助更大的显存,把整个模型保留在单节点内。
Wafer给出的吞吐量与成本对比
从最终结果看,8 张 MI355X 的峰值总吞吐量达到 952 Token/s,单路生成速度为 118 Token/s。
作为对比,16 张 B200 的双节点部署总吞吐量为 498 Token/s,换算到单节点约为 249 Token/s。文中据此表示,MI355X 的单节点吞吐量约为 B200 双节点部署平均单节点吞吐量的 3.8 倍。单用户生成速度方面,MI355X 的 118 Token/s 也高于 B200 的 90 Token/s。
B300 仍是绝对性能最高的方案。8 张 B300 节点的总吞吐量达到 1568 Token/s,单路生成速度为 172 Token/s,整体吞吐量约为 MI355X 的 1.65 倍。
价格假设则改变了比较结果。Wafer按 MI355X 每卡每小时 2.5 美元、B200 为 4.25 美元、B300 为 6 美元计算,在这一口径下,MI355X 每美元可提供约 48 Token/s 的峰值吞吐量;B200 约为 7 Token/s;B300 约为 33 Token/s。

按这一组数据,B300 的速度更高,但 MI355X 的单位成本效率更高。文中认为,对于需要大规模运行开放模型的数据中心,这一点可能比单纯争夺性能冠军更重要。
ROCm适配中出现的兼容性问题
文章提到,长期以来 AMD 数据中心 GPU 的主要问题往往不在硬件,而在软件。同一个模型在 CUDA 上可以直接运行,到了 ROCm 上,可能需要改框架、补算子,甚至重写底层内核。
但在 Kimi K3 这一案例中,AMD 提供了接近首发同步的支持。Wafer表示,模型基本可以直接在 MI355X 上运行,后续工作主要集中在少量兼容性问题和性能优化。
其中一个问题出现在推测解码环节。由于 Kimi K3 本身没有提供 MTP 或 EAGLE 所需的草稿模型参数,Wafer使用了一个外部的块扩散草稿模型。这套方案在 CUDA 上可以直接运行,但在 ROCm 环境中,第一个真实请求就触发了调度器报错,原因是 ROCm 分支里少定义了一个名为 top_k_renorm_prob 的函数。
按文中解释,这个函数负责从概率分布中选出最高的 k 个值,将其他概率归零,再把保留下来的概率重新归一化。Wafer最后使用普通的 PyTorch 函数补上了这段逻辑,不需要手写 GPU 内核,也不需要重设计推测解码系统。

修复之后,推测解码让单路性能提升约 2.2 倍,中等并发下的单流性能提升约 1.7 倍,峰值总吞吐量提升约 18%。文中还提到,系统也因此能在更高并发下达到峰值吞吐量。
首个 Token 等待时间的优化
除吞吐量外,文中还讨论了 TTFT,也就是从发送请求到看到第一个 Token 之间的等待时间。
在这一指标上,MI355X 起初表现并不理想。面对约 17.2 万 Token 的冷启动预填充任务,MI355X 需要约 51 秒,而 B300 约为 23 秒。对于支持百万 Token 上下文的模型,预填充任务可能非常庞大,长上下文下的等待时间会直接影响实际体验。
Wafer最后将性能差距定位到一个注意力内核。按文中描述,Kimi K3 在 8 路张量并行配置下,每张 GPU 分到 12 个注意力头;而 AMD AITER 中较快的 MLA 预填充内核,只支持 4、8 或 16 的倍数形状。由于 12 个头无法匹配,系统只能退回速度较慢的通用 Triton 实现。
Wafer采用的处理方式是把 12 个注意力头补零到 16 个,调用现有高速内核,完成计算后再取回真正需要的 12 个头。文中称,这一做法没有修改模型结构,也没有编写新的汇编内核,只是补了 4 个零。

优化后,AITER MLA 内核的稳定预填充速度达到约 1.3 万 Token/s,而原先 Triton 回退路径约为 4000 至 7000 Token/s,冷预填充时间因此缩短约两到三倍。这项优化不会改变最终解码吞吐量,但会明显减少用户等待首个字出现的时间。
测试结论与文中判断
文中同时指出,一次测试并不能证明 AMD 已经全面追上 NVIDIA。B200 因显存不足被迫跨节点运行,B300 的绝对性能仍然领先,ROCm 的工具链、框架支持和开发者生态也依旧不如 CUDA。
不过,随着开放模型快速进入万亿参数时代,当模型大到一台服务器难以装下时,显存容量已不只是参数表上的数字,还会直接影响通信成本、部署复杂度和最终吞吐量。文章据此认为,AMD 为单卡配置更多 HBM 的策略,正在形成系统层面的优势。
参考链接包括 Wafer AI 与 Chirag Asarpota 在 X 上发布的相关内容。本文来自微信公众号“机器之心”,作者署名为“关注LLM的”。

