From e96680828116e57a433eda876fdada09f8c57e42 Mon Sep 17 00:00:00 2001
From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com>
Date: Sun, 25 Oct 2026 17:42:12 +0800
Subject: [PATCH] fix(i18n): correct Chinese technical content and Markdown
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
中文:修正中文技术文章中的语义、倍数表达和 Markdown 格式问题,统一 GPU kernel 用语,保留操作系统内核表述,并增加实际渲染回归测试。
---
README_zh.md | 30 ++++++-------
...gentic-benchmark-agent-benchmark-guide.mdx | 6 +--
.../zh/agentx-inferencexv3-does-cuda-moat.mdx | 42 +++++++++---------
...nvfp4-vs-h200-fp8-3-6x-perf-per-dollar.mdx | 12 ++---
...vllm-nvfp4-vs-h100-fp8-perf-per-dollar.mdx | 44 +++++++++----------
...h200-int4-kimi-k2-vllm-perf-per-dollar.mdx | 8 ++--
...pro-agentx-b200-vs-b300-kv-working-set.mdx | 2 +-
...ek-v4-pro-agentx-gb200-vs-gb300-disagg.mdx | 2 +-
...ek-v4-pro-agentx-mi355x-vs-b200-august.mdx | 4 +-
...seekv4-16t-day-0-to-day-43-performance.mdx | 16 +++----
.../engrams-embedding-entendre-codesign.mdx | 12 ++---
...vl72-kimi-k2-5-vllm-wide-ep-3x-vs-b200.mdx | 10 ++---
...b200-disagg-deepseek-r1-fp4-dynamo-trt.mdx | 4 +-
...nvl72-vs-gb200-nvl72-dsv4-pro-vllm-fp4.mdx | 8 ++--
...-5-3-agentx-mi355x-atom-vs-gb300-nvl72.mdx | 2 +-
...max-open-source-inference-benchmarking.mdx | 44 +++++++++----------
...x-v2-nvidia-blackwell-vs-amd-vs-hopper.mdx | 40 ++++++++---------
...i-k3-agentx-mi355x-atom-vs-gb300-nvl72.mdx | 6 +--
.../zh/kimi-k3-the-manos-the-mythos-the.mdx | 4 +-
...deepseek-v4-pro-sglang-110x-in-26-days.mdx | 34 +++++++-------
...x-glm5-fp8-sglang-40-cheaper-than-b200.mdx | 12 ++---
...mi355x-kimi-k2-5-vllm-aiter-7x-speedup.mdx | 12 ++---
...i355x-qwen3-5-sglang-v0-5-12-up-to-17x.mdx | 16 +++----
...imax-m3-agentx-b200-b300-vs-rack-scale.mdx | 4 +-
.../zh/openai-jalapeno-better-than-nvidia.mdx | 2 +-
.../qwen3-5-397b-agentx-b300-fp4-vs-h100.mdx | 2 +-
...-0-5-6-b200-deepseek-r1-fp4-up-to-1-8x.mdx | 14 +++---
...savings-persistent-demand-inside-glm53.mdx | 4 +-
.../blog/zh/tpu-inferencex-full-steam.mdx | 20 ++++-----
.../zh/ultra-high-interactivity-on-nvidia.mdx | 8 ++--
...a-rubin-nvl72-vs-gb200-nvl72-inference.mdx | 4 +-
...ironwood-vs-gb300-nvl72-agentx-results.mdx | 2 +-
...in-nvl72-vs-gb300-nvl72-agentx-results.mdx | 2 +-
.../content/models/zh/deepseek-v41-flash.mdx | 2 +-
.../app/content/models/zh/muse-spark-open.mdx | 2 +-
.../app/src/lib/blog/blog-content.test.ts | 24 ++++++++++
36 files changed, 242 insertions(+), 218 deletions(-)
diff --git a/README_zh.md b/README_zh.md
index 502586663..b8be19f96 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -12,7 +12,7 @@
## 概览
-LLM 推理性能是提供 AI 服务时的核心关注点,但准确的性能分析始终难以获得。软件开发与模型发布的快节奏使得不同配置之间的性能比较十分困难。现有的性能基准测试由于是静态的而迅速过时,参与者还会用不切实际、高度特化的配置来"刷榜"。InferenceX 通过每晚使用最新软件在主流硬件平台上对热门模型进行基准测试来解决这些问题。对于每个模型与硬件组合,InferenceX 会扫描不同的张量并行大小与最大并发请求数,以吞吐量-延迟曲线呈现完整图景。在软件配置方面,我们确保其在不同服务场景下具有普遍适用性,并开源整个仓库以欢迎社区贡献。我们希望 InferenceX 能为社区提供最新、真实的 LLM 推理性能信息。
+LLM 推理性能是提供 AI 服务时的核心关注点,但准确的性能分析始终难以获得。软件开发与模型发布的快节奏使得不同配置之间的性能比较十分困难。现有的性能基准测试由于是静态的而迅速过时,参与者还会用不切实际、高度特化的配置来“刷榜”。InferenceX 通过每晚使用最新软件在主流硬件平台上对热门模型进行基准测试来解决这些问题。对于每个模型与硬件组合,InferenceX 会扫描不同的张量并行大小与最大并发请求数,以吞吐量-延迟曲线呈现完整图景。在软件配置方面,我们确保其在不同服务场景下具有普遍适用性,并开源整个仓库以欢迎社区贡献。我们希望 InferenceX 能为社区提供最新、真实的 LLM 推理性能信息。
## 架构
@@ -64,7 +64,7 @@ bun install
### 2. 配置数据库
-仪表板需要实时 PostgreSQL 数据库。在 `.env` 中设置 `DATABASE_READONLY_URL`;应用同时支持标准 PostgreSQL 服务器和 Neon。
+仪表板需要一个运行中的 PostgreSQL 数据库。在 `.env` 中设置 `DATABASE_READONLY_URL`;应用同时支持标准 PostgreSQL 服务器和 Neon。
#### 方式 A:标准 PostgreSQL
@@ -140,19 +140,19 @@ bun run dev
合并到 `main` 或 `master` 的 `packages/db/src/etl/run-overrides.ts` 变更会由 CI 自动应用到生产数据库,随后执行数据库校验、缓存失效和缓存预热。覆盖命令仍可用于本地预览和手动恢复。
-| 脚本 | 说明 |
-| -------------------------------------- | ------------------------------ |
-| `bun run admin:db:migrate` | 运行数据库迁移 |
-| `bun run admin:db:ingest:run` | 从 GitHub 运行摄取基准测试数据 |
-| `bun run admin:db:ingest:ci` | 摄取基准测试数据(CI 模式) |
-| `bun run admin:db:ingest:gcs` | 从 GCS 摄取基准测试数据 |
-| `bun run admin:db:ingest:supplemental` | 摄取补充数据 |
-| `bun run admin:db:apply-overrides` | 手动预览或应用数据覆盖 |
-| `bun run admin:db:reset` | 重置数据库 |
-| `bun run admin:db:verify` | 校验数据库完整性 |
-| `bun run admin:cache:invalidate` | 失效 API 缓存 |
-| `bun run admin:cache:warmup` | 预热 API 缓存 |
+| 脚本 | 说明 |
+| -------------------------------------- | ---------------------------------------- |
+| `bun run admin:db:migrate` | 运行数据库迁移 |
+| `bun run admin:db:ingest:run` | 从 GitHub Actions 运行中摄取基准测试数据 |
+| `bun run admin:db:ingest:ci` | 摄取基准测试数据(CI 模式) |
+| `bun run admin:db:ingest:gcs` | 从 GCS 摄取基准测试数据 |
+| `bun run admin:db:ingest:supplemental` | 摄取补充数据 |
+| `bun run admin:db:apply-overrides` | 手动预览或应用数据覆盖 |
+| `bun run admin:db:reset` | 重置数据库 |
+| `bun run admin:db:verify` | 校验数据库完整性 |
+| `bun run admin:cache:invalidate` | 失效 API 缓存 |
+| `bun run admin:cache:warmup` | 预热 API 缓存 |
## 部署
-部署于 Vercel。所有必需的环境变量见 [`.env.example`](.env.example)。
+部署于 Vercel。核心环境变量见 [`.env.example`](.env.example);各运行时变量的作用及是否必填、Vercel 项目设置、GitHub Actions 变量与 secret、预发布环境前提条件见 [`docs/deployment-configuration.md`](docs/deployment-configuration.md)。
diff --git a/packages/app/content/blog/zh/agentic-benchmark-agent-benchmark-guide.mdx b/packages/app/content/blog/zh/agentic-benchmark-agent-benchmark-guide.mdx
index 6d8bf31a0..5753f582a 100644
--- a/packages/app/content/blog/zh/agentic-benchmark-agent-benchmark-guide.mdx
+++ b/packages/app/content/blog/zh/agentic-benchmark-agent-benchmark-guide.mdx
@@ -15,9 +15,9 @@ tags:
**面向 LLM 推理的 Agentic Benchmark** 衡量模型服务系统在 AI agent 流量下的表现。它不判断 agent 是否修复了 bug 或完成了工作流,而是测量承载每次模型调用的基础设施,包括延迟、吞吐量、cache 复用、并发能力与成本。
-这一目标会改变 workload。传统推理基准测试可以发送 input 和 output 长度固定的独立 prompt;Agent Benchmark 则必须表示完整会话,其中上下文随轮次增长,请求共享长 prefix,tool 执行带来停顿,subagent 产生并行分支。后续请求通常要等前序请求完成后才能开始。
+这一目标会改变 workload。传统推理基准测试可以发送 input 和 output 长度固定的独立 prompt;Agent Benchmark 则必须刻画完整会话,其中上下文随轮次增长,请求共享长 prefix,tool 执行带来停顿,subagent 产生并行分支。后续请求通常要等前序请求完成后才能开始。
-AgentX 是 InferenceX 面向这类 workload 的开放基准测试。它把自愿提供的编码 agent trace 转换为保护隐私的请求形状,再通过 AIPerf 进行确定性回放,用相同场景比较完整的软硬件推理配置。
+AgentX 是 InferenceX 面向这类 workload 的开放基准测试。它把自愿提供的编码 agent trace 转换为保护隐私的请求形状,再通过 AIPerf 进行确定性回放,并在多个并发 agent 客户端下比较完整的软硬件推理配置。
对比实时 AgentX 推理结果 →
@@ -32,7 +32,7 @@ Agentic Inference Benchmark 是面向多轮 agent 流量的系统基准测试。
- 每个活跃 agent 接收 output token 的速度是多少?
- 在目标延迟下,每颗芯片能提供多少 output 吞吐量?
- 重复 prefix 会命中 HBM、host memory,还是触发重新计算?
-- 在可用的响应速度下,每百万 token 的成本是多少?
+- 在可用的运行点上,每百万 token 的成本是多少?
“Benchmark”也常用于 agent 任务评估,因此必须说明测试范围。这两类测试回答不同问题:
diff --git a/packages/app/content/blog/zh/agentx-inferencexv3-does-cuda-moat.mdx b/packages/app/content/blog/zh/agentx-inferencexv3-does-cuda-moat.mdx
index 2ca701034..887cd2dba 100644
--- a/packages/app/content/blog/zh/agentx-inferencexv3-does-cuda-moat.mdx
+++ b/packages/app/content/blog/zh/agentx-inferencexv3-does-cuda-moat.mdx
@@ -98,7 +98,7 @@ InferenceX 100% 坚持开源,这离不开开源伙伴的贡献与支持。我
## agentic 编码推理性能
-在评估编码推理性能时,OpenAI、Anthropic、xAI 等前沿实验室主要关注三点:每美元性能与交互性(TPOT)的关系、TTFT(首 token 延迟),以及端到端任务完成情况。每兆瓦性能同样重要,因为地面数据中心电力是关键约束(钱是社会构建物,而且看起来实验室们有的是钱;电力在当下则是实打实地难搞)。[我们的数据中心模型给出了逐季度的电力需求与供给爬坡估算。](https://semianalysis.com/datacenter-industry-model/)
+在评估编码推理性能时,OpenAI、Anthropic、xAI 等前沿实验室主要关注三点:每美元性能与交互性(TPOT)的关系、TTFT(首 token 延迟),以及端到端任务完成情况。每兆瓦性能同样重要,因为地面数据中心电力是关键约束(钱是一种社会建构,而且看起来实验室们有的是钱;电力在当下则是实打实地难搞)。[我们的数据中心模型给出了逐季度的电力需求与供给爬坡估算。](https://semianalysis.com/datacenter-industry-model/)
本节我们梳理各前沿模型上 agentic 性能的整体规律。我们强烈建议读者把它当作一份导览,[自己去研究这些结果](https://inferencex.semianalysis.com/)。**所有数据都是开源的,社区完全可以就当下真实推理性能的现状得出自己的结论。**
@@ -415,7 +415,7 @@ AgentX 头几个月最有影响力的成果不是产出开源数据集,而是
caption="来源:SemiAnalysis"
/>
-这项并行技术部分源自 NVIDIA Research。NVIDIA Research 在这类基础研究上很强,但在端到端训练研究上就相当难堪了——他们的 Nemotron3 Ultra 模型表现糟糕,如今连体量小得多的 Qwen3.8 27B 都能大幅胜过它。DCP/PCP 构成了 CUDA 护城河的一部分,因为 AMD 的 DCP/PCP 实现尚未优化。在 [vLLM 支持矩阵](https://docs.vllm.ai/en/latest/design/attention_backends/#standard-attention-mha-mqa-gqa-backends)里,AMD 的每一个后端都是不支持状态。
+这项并行技术部分源自 NVIDIA Research。NVIDIA Research 在这类基础研究上很强,但在端到端训练研究上就相当难堪了——他们的 Nemotron3 Ultra 模型表现糟糕,如今连体量小得多的 Qwen3.8 27B 都能大幅胜过它。DCP/PCP 构成了 CUDA 护城河的一部分,因为 AMD 的 DCP/PCP 实现尚未优化。在 [vLLM 支持矩阵](https://docs.vllm.ai/en/latest/design/attention_backends/#standard-attention-mha-mqa-gqa-backends)里,AMD 的每一个后端都标为不支持。
接下来几节提到的部分改动就聚焦在 DCP/PCP 上。
@@ -454,28 +454,28 @@ load 路径则单独做了调优,因为查找发生在每次调度决策时,
- 一个 Kimi-K3 的改动[把 KDA decode 结果直接写入层输出缓冲区](https://github.com/vllm-project/vllm/pull/51183),为每个 KDA 层省下一次设备内拷贝;单看收益很小,但它会在每个解码 token 的每一层上重复发生。
- 第二个改动[选用 AITER 的稀疏 MLA decode kernel](https://github.com/vllm-project/vllm/pull/51714) 替代通用路径,AgentX 输出吞吐量提高 5.22%,token 间延迟显著降低。
-- 第三个改动很好地说明了测量形态有多重要。配套改动[把 full-graph 注意力投影路由到调优过的 AITER GEMM](https://github.com/vllm-project/vllm/pull/51713),在低并发的固定序列上取得 2.3% 提升。这说明 kernel 层面的改动可以在统一 shape 上拿到干净的收益,却在 agentic trace 上被缓存与调度带来的波动淹没。一个[待合入的改动](https://github.com/vllm-project/vllm/pull/52882)干脆把这种 shape 敏感性变成了分发依据:它用 gfx950 上的 AITER / native 混合路径取代 DeepSeek V4 C4A selector 的 ROCm top-k 瓶颈,短、中上下文走 AITER,长上下文走 graph-safe 的调优 native 回退路径。据报告,selector 的端到端加速为 1.21x 到 1.76x,在 84 种 shape 的矩阵上 decode kernel 的几何平均加速为 1.2x 到 2.9x。
+- 第三个改动很好地说明了测量形态有多重要。配套改动[把 full-graph 注意力投影路由到调优过的 AITER GEMM](https://github.com/vllm-project/vllm/pull/51713),在低并发的固定序列上取得 2.3% 提升。这说明 kernel 层面的改动可以在统一 shape 上拿到干净的收益,却在 agentic trace 上被缓存与调度带来的波动淹没。一个[待合入的改动](https://github.com/vllm-project/vllm/pull/52882)干脆把这种 shape 敏感性变成了派发决策的依据:它用 gfx950 上的 AITER / native 混合路径取代 DeepSeek V4 C4A selector 的 ROCm top-k 瓶颈,短、中上下文走 AITER,长上下文走 graph-safe 的调优 native 回退路径。据报告,selector 的端到端加速为 1.21x 到 1.76x,在 84 种 shape 的矩阵上 decode kernel 的几何平均加速为 1.2x 到 2.9x。
## SGLang 的 agentic 优化
AgentX 团队与来自 RadixArk、Meta、NVIDIA 和 AMD 的 SGLang 维护者密切合作,推动了 SGLang 上 agentic 工作负载的优化,使生产推理性能大幅提升。下面详细介绍这些优化。
-先从分配器一侧说起:SGLang 的滑动窗口工作解决的是与 vLLM 保留策略相同的冲突。窗口页和前缀页取自同一个池子,而窗口是更贪婪的一方——它不断翻转,前缀却静止不动,于是在压力之下,短暂的分配会把持久的分配挤出去。
+先从分配器一侧说起:SGLang 的滑动窗口工作解决的是与 vLLM 保留策略相同的冲突。窗口页和前缀页取自同一个池子,而窗口是更贪婪的一方——它不断周转,前缀却静止不动,于是在压力之下,短暂的分配会把持久的分配挤出去。
-有三处设计改进从不同角度攻击这个问题。其一是[在页离开窗口时主动释放](https://github.com/sgl-project/sglang/pull/26907),而不是等淘汰压力来找它们,让失效的窗口状态不再争抢自己已经用不到的页。其二是[把 compute lock 限制在单个窗口内](https://github.com/sgl-project/sglang/pull/27210),限定一条在途请求最多能同时钉住多少池容量。其三是[清除失去作用后仍然残留的 full-KV 条目](https://github.com/sgl-project/sglang/pull/29369)。
+有三处设计改进从不同角度解决这个问题。其一是[在页离开窗口时主动释放](https://github.com/sgl-project/sglang/pull/26907),而不是等淘汰压力来找它们,让失效的窗口状态不再争抢自己已经用不到的页。其二是[把 compute lock 限制在单个窗口内](https://github.com/sgl-project/sglang/pull/27210),限定一条在途请求最多能同时钉住多少池容量。其三是[清除失去作用后仍然残留的 full-KV 条目](https://github.com/sgl-project/sglang/pull/29369)。
-不过主动释放有一个与分叉相关的盲区:从共享前缀分叉出来的请求可能仍持有可复用的 full-KV,而分叉点处的窗口状态已被释放,结果为了缺失的那一半廉价数据,整个前缀都要重算。[进行中的工作](https://github.com/sgl-project/sglang/pull/34565)会在这些分叉点保留 SWA 状态,让分叉继承窗口而不是重建它。
+不过主动释放有一个与分叉相关的盲区:从共享前缀分叉出来的请求可能仍持有可复用的 full-KV,而分叉点处的窗口状态已被释放,结果仅因为缺少那一半廉价数据,整个前缀都要重算。[进行中的工作](https://github.com/sgl-project/sglang/pull/34565)会在这些分叉点保留 SWA 状态,让分叉继承窗口而不是重建它。
-与之并行的 [ROCm ring-cache 修复](https://github.com/sgl-project/sglang/pull/30339)属于正确性而非容量问题:环形缓冲区在设计上就会复用槽位,而复用一个旧内容仍被引用的槽位,产生的是错误输出,而不是变慢的输出。这些在单个 8k prompt 上都看不出来——窗口不会绕过前缀,池子也不会有争用。但在多轮混合注意力会话中,这些改动决定了昂贵的全注意力历史在下一轮是否还在。
+与之并行的 [ROCm ring-cache 修复](https://github.com/sgl-project/sglang/pull/30339)属于正确性而非容量问题:环形缓冲区在设计上就会复用槽位,而复用一个旧内容仍被引用的槽位,产生的是错误输出,而不是变慢的输出。这些在单个 8k prompt 上都看不出来——窗口不会回绕到仍被引用的前缀位置,池子也不会有争用。但在多轮混合注意力会话中,这些改动决定了昂贵的全注意力历史在下一轮是否还在。
-HiCache 是 SGLang 内置的一流 offload 机制。它面对与 vLLM connector 相同的混合模型问题,解法是一种不对称处理:[offload 全注意力缓存,回读时再重建那一小段滑动窗口尾部](https://github.com/sgl-project/sglang/pull/29417)。只有昂贵的那一半值得跨总线搬运,廉价的那一半重建比取回更快。在 AMD 上,[分阶段写回](https://github.com/sgl-project/sglang/pull/28534)让这种搬运不会在进行中阻塞引擎。剩下的缺口是循环状态,因为它无法像窗口尾部那样从相邻 token 重建;[FlashInfer GDN 检查点](https://github.com/sgl-project/sglang/pull/29735)让它得以参与前缀复用,在 92.4% 缓存命中率下把吞吐量从 47,771 提升到 53,004 tok/s/GPU。
+HiCache 是 SGLang 内置的 offload 机制,并作为核心功能获得支持。它面对与 vLLM connector 相同的混合模型问题,解法是一种不对称处理:[offload 全注意力缓存,回读时再重建那一小段滑动窗口尾部](https://github.com/sgl-project/sglang/pull/29417)。只有昂贵的那一半值得跨总线搬运,廉价的那一半重建比取回更快。在 AMD 上,[分阶段写回](https://github.com/sgl-project/sglang/pull/28534)让这种搬运不会在进行中阻塞引擎。剩下的缺口是循环状态,因为它无法像窗口尾部那样从相邻 token 重建;[FlashInfer GDN 检查点](https://github.com/sgl-project/sglang/pull/29735)让它得以参与前缀复用,在 92.4% 缓存命中率下把吞吐量从 47,771 提升到 53,004 tok/s/GPU。
-另有两处改动针对变长流量对 kernel 流水线的影响。AgentX 的真实会话往往以持续变化的上下文长度到达,生产流量也是类似形态。一个按长度做特化的运行时,几乎会为看到的每个请求重新编译一份 kernel。SGLang 维护者的解法是[把上下文长度作为运行时标量传入](https://github.com/sgl-project/sglang/pull/30255),而不是把它固化进某一次编译;这让 AgentX 并发 384 的输出吞吐量提升 26.75%、平均 TTFT 改善 36.25%,收益来自消除编译,而不是把计算做得更快。
+另有两处改动针对变长流量对 kernel 流水线的影响。AgentX 的真实会话往往以持续变化的上下文长度到达,生产流量也是类似形态。一个朴素的、按长度做特化的运行时,几乎会为看到的每个请求重新编译一份 kernel。SGLang 维护者的解法是[把上下文长度作为运行时标量传入](https://github.com/sgl-project/sglang/pull/30255),而不是把它固化进某一次编译;这让 AgentX 并发 384 的输出吞吐量提升 26.75%、平均 TTFT 改善 36.25%,收益来自消除编译,而不是把计算做得更快。
-固定的 8k1k 请求没有可复用的上一轮渲染结果,因此这些开销根本不会出现。与之相关地,[chat template 渲染被移入输入处理线程池](https://github.com/NVIDIA/TensorRT-LLM/pull/16231),长 template 不再让主请求循环排在它后面串行执行。
+固定的 8k1k 请求没有可复用的上一轮渲染结果,因此这些开销根本不会出现。与此相关,[chat template 渲染被移入输入处理线程池](https://github.com/NVIDIA/TensorRT-LLM/pull/16231),长 template 不再让主请求循环排在它后面串行执行。
-[非阻塞的上下文传输轮询](https://github.com/NVIDIA/TensorRT-LLM/pull/17428)保护了同一条路径,即使调度停滞也会回收已完成的传输,从而打破一个反馈环:已完成的 KV block 一直被钉住,阻止新请求准入。这些停滞本身也有[可以消除的原因](https://github.com/NVIDIA/TensorRT-LLM/pull/16734):在 GB300 分离式 context worker 上,避免 DeepSeek-V4 上下文稀疏注意力元数据中的隐式 device 标量同步,消除了每步 18 次四字节 device 读取,而每一次都会强制触发 cudaStreamSynchronize。修复方式是把 host 侧计数以普通 Python int 传递,这样执行线程不再在一步的大部分时间里持有 GIL,让 KV 传输线程和响应线程排队等待。
+[非阻塞的上下文传输轮询](https://github.com/NVIDIA/TensorRT-LLM/pull/17428)保护了同一条路径,即使调度停滞也会回收已完成的传输,从而打破一个反馈环:已完成的 KV block 一直被钉住,阻止新请求准入。这些停滞本身也有[可以消除的原因](https://github.com/NVIDIA/TensorRT-LLM/pull/16734):在 GB300 分离式 context worker 上,避免 DeepSeek-V4 上下文稀疏注意力元数据中的隐式 device 标量同步,消除了每步 18 次四字节 device 读取,而每一次都会强制触发 cudaStreamSynchronize。修复方式是把 host 侧计数以普通 Python int 传递,这样执行线程不再在一步的大部分时间里持有 GIL,KV 传输线程和响应线程也就不必再排在它后面等待。
TensorRT-LLM 还把不规则的长上下文工作迁到了更高效的执行路径上。[MiniMax-M3 的 context graph producer](https://github.com/NVIDIA/TensorRT-LLM/pull/17473) 捕获稳定的稀疏 producer,同时让依赖请求的注意力保持 eager 执行,在其 AgentX 测试中每用户输出吞吐量提升 12.58%。一个进行中的[原生 KV 事件生成改动](https://github.com/NVIDIA/TensorRT-LLM/pull/16876)减少了 KV 感知路由路径上的分配与转换开销。
@@ -567,7 +567,7 @@ AgentX 还暴露出只有在规模和时长都够大时才会出现的 kernel
## AMD ATOM 的 agentic 优化
-AMD 的 ATOM 引擎最初只面向单轮工作负载设计,而不是真实世界的 agentic 多轮生产工作负载,因此要让它较好地支持长上下文多轮场景,核心引擎和 kernel 都需要大量改动。相比 vLLM/SGLang 目前的水平,ATOM 在支持 agentic 工作负载上还有很长的路要走。AgentX 正被用作 ATOM 这轮重构的真实北极星目标。我们要讲的第一项 ATOM 优化,是对 DeepSeek-V4 分页滑动窗口注意力巧妙使用稀疏检查点保留。[已合入的实现](https://github.com/ROCm/ATOM/pull/1640)保留了选定的窗口尾部,让分叉和回放请求能够从有意义的边界处恢复。它的测量把两种效应分得很清楚:在并发 48 的同一条 AgentX trace 上,实际前缀命中率从 5.6% 升到 96.45%,滑动窗口关口处的损失从 91.35% 降到 0.16%。第二个数字是第一个数字背后的机制——十次前缀匹配里有九次是找到了却因为缺少窗口尾部而被丢弃,也就是说缓存并没有失配,而是被否决了。
+AMD 的 ATOM 引擎最初只面向单轮工作负载设计,而不是真实世界的 agentic 多轮生产工作负载,因此要让它较好地支持长上下文多轮场景,核心引擎和 kernel 都需要大量改动。相比 vLLM/SGLang 目前的水平,ATOM 在支持 agentic 工作负载上还有很长的路要走。AgentX 正被用作 ATOM 这轮重构的真实北极星目标。我们要讲的第一项 ATOM 优化,是巧妙地用稀疏检查点保留来支撑 DeepSeek-V4 的分页滑动窗口注意力。[已合入的实现](https://github.com/ROCm/ATOM/pull/1640)保留了选定的窗口尾部,让分叉和回放请求能够从有意义的边界处恢复。它的测量把两种效应分得很清楚:在并发 48 的同一条 AgentX trace 上,实际前缀命中率从 5.6% 升到 96.45%,滑动窗口关口处的损失从 91.35% 降到 0.16%。第二个数字是第一个数字背后的机制——十次前缀匹配里有九次是找到了却因为缺少窗口尾部而被丢弃,也就是说缓存并没有失配,而是被否决了。
-第二组 PR 改变了归属关系的表示方式,这是底下更难的问题。每个被缓存的 block 都要归属到依赖它的请求,既不能在仍被使用时释放,也不能在所有人用完后继续钉住。当数千条并发会话共享相互重叠的前缀时,记账本身就成了显著开销。Dynamo 从[共享 block 链](https://github.com/ai-dynamo/dynamo/pull/11503)转向[arena 级归属计数](https://github.com/ai-dynamo/dynamo/pull/11508),最终走到[后端专属的请求租约](https://github.com/ai-dynamo/dynamo/pull/12329),每一步都在放粗被追踪的粒度。租约设计让 vLLM 后端的 AgentX 回放时间缩短 23.7%、SGLang 缩短 22.0%,同时还降低了峰值内存——这说明问题出在此前的表示方式,而不是流量本身。
+第二组 PR 改变了归属关系的表示方式,这才是更深层的难题。每个被缓存的 block 都要归属到依赖它的请求,既不能在仍被使用时释放,也不能在所有人用完后继续钉住。当数千条并发会话共享相互重叠的前缀时,记账本身就成了显著开销。Dynamo 从[共享 block 链](https://github.com/ai-dynamo/dynamo/pull/11503)转向[arena 级归属计数](https://github.com/ai-dynamo/dynamo/pull/11508),最终走到[后端专属的请求租约](https://github.com/ai-dynamo/dynamo/pull/12329),每一步都在放粗被追踪的粒度。租约设计让 vLLM 后端的 AgentX 回放时间缩短 23.7%、SGLang 缩短 22.0%,同时还降低了峰值内存——这说明问题出在此前的表示方式,而不是流量本身。
点击查看完整 InferenceX 仪表板 →
@@ -65,10 +65,10 @@ NVIDIA 还发布了量化权重版本 [`nvidia/GLM-5-NVFP4`](https://huggingface
## 促成此结果的上游变更
-**上游软件栈。** SGLang [v0.5.10](https://github.com/sgl-project/sglang/releases/tag/v0.5.10)(2026-04-07)是 GLM-5 首次在 Blackwell 上跨所有四个精度/MTP/分离式推理变体完整端到端运行的稳定版本——[跟踪 issue #19380](https://github.com/sgl-project/sglang/issues/19380) 在同日将每个 Functional 和 Baseline Perf 行标记为 DONE。本文的基准测试运行于 [v0.5.12](https://github.com/sgl-project/sglang/releases/tag/v0.5.12)(发布于 2026-05-16),它继承了相同的 Blackwell 默认配置并增加了第一轮性能优化。关键内核变更:
+**上游软件栈。** SGLang [v0.5.10](https://github.com/sgl-project/sglang/releases/tag/v0.5.10)(2026-04-07)是 GLM-5 首次在 Blackwell 上跨所有四个精度/MTP/分离式推理变体完整端到端运行的稳定版本——[跟踪 issue #19380](https://github.com/sgl-project/sglang/issues/19380) 在同日将每个 Functional 和 Baseline Perf 行标记为 DONE。本文的基准测试运行于 [v0.5.12](https://github.com/sgl-project/sglang/releases/tag/v0.5.12)(发布于 2026-05-16),它继承了相同的 Blackwell 默认配置并增加了第一轮性能优化。关键 kernel 变更:
-- [sgl-project/sglang #21783](https://github.com/sgl-project/sglang/pull/21783) 将 **FlashInfer TRT-LLM 稀疏 MLA 内核设为 sm100/sm103**(B200/B300)**的默认注意力后端**。DSA prefill 和 decode 现在运行在 GLM-5/V3.2 所针对调优的内核上,而非曾在 B200 上引发 [GLM-5 精度回归](https://github.com/sgl-project/sglang/issues/21291) 的旧 `flashmla_kv` 路径。
-- [sgl-project/sglang #21405](https://github.com/sgl-project/sglang/pull/21405) 为稀疏 MLA 启用了 **IndexCache**,在连续 decode 步骤间复用索引张量,在相同内核调用序列上带来 >10% 的 decode 吞吐量提升。
+- [sgl-project/sglang #21783](https://github.com/sgl-project/sglang/pull/21783) 将 **FlashInfer TRT-LLM 稀疏 MLA kernel 设为 sm100/sm103**(B200/B300)**的默认注意力后端**。DSA prefill 和 decode 现在运行在 GLM-5/V3.2 所针对调优的 kernel 上,而非曾在 B200 上引发 [GLM-5 精度回归](https://github.com/sgl-project/sglang/issues/21291) 的旧 `flashmla_kv` 路径。
+- [sgl-project/sglang #21405](https://github.com/sgl-project/sglang/pull/21405) 为稀疏 MLA 启用了 **IndexCache**,在连续 decode 步骤间复用索引张量,在相同 kernel 调用序列上带来 >10% 的 decode 吞吐量提升。
- [flashinfer-ai/flashinfer #2726](https://github.com/flashinfer-ai/flashinfer/pull/2726)(FlashInfer v0.6.6.post1)修复了一个间歇性 NVFP4 非法内存访问 bug,此前一直[阻塞](https://github.com/sgl-project/sglang/issues/19081) NVFP4 的功能验证签核;[flashinfer-ai/flashinfer #2836](https://github.com/flashinfer-ai/flashinfer/pull/2836)(v0.6.7)提升了 trtllm-gen 稀疏 MLA 的性能上限。
**MTP。** GLM-5 复用了 SGLang 为 DeepSeek V3.2 实现的 EAGLE 投机解码机制(`--speculative-algorithm EAGLE --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4`),并通过 `SGLANG_ENABLE_SPEC_V2=1` 启用 overlap 调度器。H200 与 B200 使用完全相同的一组启动参数;在下述测试配置中,两款 SKU 之间仅模型检查点和注意力后端不同。
@@ -193,7 +193,7 @@ B200 NVFP4 相对 H200 的性价比提升在 **80 tok/s/user 时达到峰值 3.6
"name": "SGLang v0.5.10 / v0.5.12 中的哪些变更使 GLM-5 NVFP4 + MTP 得以在 Blackwell 上运行?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "SGLang v0.5.10(发布于 2026-04-07)是 GLM-5 (G)B200 跟踪 issue(sgl-project/sglang #19380)的所有 Functional 和 Baseline Perf 行在 no-MTP/MTP 和 Agg/Disagg 全组合、FP8 和 NVFP4 两种精度下均标记为 DONE 的首个稳定版本。v0.5.12(发布于 2026-05-16)是 InferenceX 基准测试实际运行的版本。关键内核变更:sgl-project/sglang #21783 将 FlashInfer TRT-LLM 稀疏 MLA 内核设为 sm100/sm103(B200/B300)的默认后端;sgl-project/sglang #21405 启用 IndexCache 实现 >10% 的 decode 吞吐量提升;flashinfer-ai/flashinfer #2726 修复了一个间歇性 NVFP4 非法内存访问 bug,此前一直阻塞 NVFP4 的功能验证签核;flashinfer-ai/flashinfer #2836 提升了 trtllm-gen 稀疏 MLA 的性能上限。MTP 使用 EAGLE,参数为 --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4,并通过 SGLANG_ENABLE_SPEC_V2=1 启用 overlap 调度器。"
+ "text": "SGLang v0.5.10(发布于 2026-04-07)是 GLM-5 (G)B200 跟踪 issue(sgl-project/sglang #19380)的所有 Functional 和 Baseline Perf 行在 no-MTP/MTP 和 Agg/Disagg 全组合、FP8 和 NVFP4 两种精度下均标记为 DONE 的首个稳定版本。v0.5.12(发布于 2026-05-16)是 InferenceX 基准测试实际运行的版本。关键 kernel 变更:sgl-project/sglang #21783 将 FlashInfer TRT-LLM 稀疏 MLA kernel 设为 sm100/sm103(B200/B300)的默认后端;sgl-project/sglang #21405 启用 IndexCache 实现 >10% 的 decode 吞吐量提升;flashinfer-ai/flashinfer #2726 修复了一个间歇性 NVFP4 非法内存访问 bug,此前一直阻塞 NVFP4 的功能验证签核;flashinfer-ai/flashinfer #2836 提升了 trtllm-gen 稀疏 MLA 的性能上限。MTP 使用 EAGLE,参数为 --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4,并通过 SGLANG_ENABLE_SPEC_V2=1 启用 overlap 调度器。"
}
},
{
@@ -209,7 +209,7 @@ B200 NVFP4 相对 H200 的性价比提升在 **80 tok/s/user 时达到峰值 3.6
"name": "这次 B200 NVFP4 vs H200 FP8 的 GLM-5 对比中未涵盖哪些内容?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "还有三个方向未覆盖。(1)NVL72 上的分离式推理:本次对比均为单节点聚合方式;SGLang 跟踪 issue #19380 正在积极推进 FP8 B200 分离式 8K/1K 和 GB300 分离式 MTP 的工作,宽 Expert Parallelism 在 NVL72 上已在 Kimi K2.5 上展示了约 3 倍的每 GPU 吞吐量提升。(2)B200 FP8 聚合方式的分段 CUDA graph(sgl-project/sglang #23351 审核中,#24276 后续跟进),预计对 B200 FP8 曲线的提升大于 B200 NVFP4 曲线,将在高交互性端缩小仅精度差异的比值。(3)H200 SGLang MTP 方案(InferenceX PR #1480)在本次测试前一周才上线;H200 分离式推理、trtllm-mha 注意力或 H200 上的 KV FP8 都将在宣布世代对比完结之前进一步推高 H200 曲线。"
+ "text": "还有三个方向未覆盖。(1)NVL72 上的分离式推理:本次对比均为单节点聚合方式;SGLang 跟踪 issue #19380 正在积极推进 FP8 B200 分离式 8K/1K 和 GB300 分离式 MTP 的工作,宽 Expert Parallelism 在 NVL72 上已在 Kimi K2.5 上展示了约 3 倍的每 GPU 吞吐量提升。(2)B200 FP8 聚合式 prefill 的分段 CUDA graph(sgl-project/sglang #23351 审核中,#24276 后续跟进),预计对 B200 FP8 曲线的提升大于 B200 NVFP4 曲线,将在高交互性端缩小仅精度差异的比值。(3)H200 SGLang MTP 方案(InferenceX PR #1480)在本次测试前一周才上线;H200 分离式推理、trtllm-mha 注意力或 H200 上的 KV FP8 都将在宣布世代对比完结之前进一步推高 H200 曲线。"
}
}
]
diff --git a/packages/app/content/blog/zh/b200-minimax-m2-5-vllm-nvfp4-vs-h100-fp8-perf-per-dollar.mdx b/packages/app/content/blog/zh/b200-minimax-m2-5-vllm-nvfp4-vs-h100-fp8-perf-per-dollar.mdx
index a889133cd..01dc0bf97 100644
--- a/packages/app/content/blog/zh/b200-minimax-m2-5-vllm-nvfp4-vs-h100-fp8-perf-per-dollar.mdx
+++ b/packages/app/content/blog/zh/b200-minimax-m2-5-vllm-nvfp4-vs-h100-fp8-perf-per-dollar.mdx
@@ -1,6 +1,6 @@
---
title: 'B200 NVFP4 vs H100 FP8 运行 MiniMax-M2.5:vLLM 下每美元性能最高提升 8.2 倍'
-subtitle: 'vLLM PR #36307 为 MiniMax 在 B200 上解锁了 trtllm-gen FP8 MoE 模块化内核;结合 NVFP4,在 8K/1K 负载下性能/成本从 22 tok/s/user 时的 4.0 倍扩大到 110 tok/s/user 时的 8.2 倍'
+subtitle: 'vLLM PR #36307 为 MiniMax 在 B200 上解锁了 trtllm-gen FP8 MoE 模块化 kernel;结合 NVFP4,在 8K/1K 负载下性能/成本从 22 tok/s/user 时的 4.0 倍扩大到 110 tok/s/user 时的 8.2 倍'
seoDescription: 'B200 NVFP4 在 vLLM 下运行 MiniMax-M2.5,每美元性能比 H100 FP8 最高提升 8.2 倍——trtllm-gen FP8 MoE 结合 NVFP4(8K/1K)。'
date: '2026-05-26'
publishDate: '2026-05-26'
@@ -18,7 +18,7 @@ tags:
在 MiniMax-M2.5 8K/1K 负载下使用 vLLM,NVIDIA 的 NVFP4 量化版 MiniMax-M2.5 在 B200 上实现了**等交互性下相比 H100 vLLM FP8 最高 8.2 倍的每美元性能提升**——110 tok/s/user 时 H100 为 $0.74/M tokens,B200 NVFP4 为 $0.09/M tokens。提升幅度在 H100 的 21–111 tok/s/user 工作区间内单调递增,从低端的 4.0 倍(22 tok/s/user,$0.12 vs $0.031)增长到高端的 8.2 倍。测量于 2026-05-22 的 InferenceX。
-这 8.2 倍在峰值处可以清晰分解。在 110 tok/s/user 时,**B200 vLLM FP8 相比 H100 vLLM FP8 实现了 2.94 倍的每美元性能提升**——这是纯硬件代际提升,两个 SKU 上使用相同的 `MiniMaxAI/MiniMax-M2.5` 权重和相同的 vLLM 构建。**将 B200 权重切换为 `nvidia/MiniMax-M2.5-NVFP4` 后又叠加了 2.77 倍**——这是纯精度提升,由 [vllm-project/vllm #36307](https://github.com/vllm-project/vllm/pull/36307) 解锁——该 PR 添加了 trtllm-gen FP8 MoE 内核的**模块化变体**,使 MiniMax 的非标准路由方法得以使用该内核。2.94 × 2.77 ≈ 8.14。精度提升随交互性增长而扩大(22 tok/s/user 时 1.65 倍 → 110 时 2.77 倍),这是因为 trtllm-gen 内核相比旧版 triton 路径的优势在 GEMM 天花板成为瓶颈时更为突出。
+这 8.2 倍在峰值处可以清晰分解。在 110 tok/s/user 时,**B200 vLLM FP8 相比 H100 vLLM FP8 实现了 2.94 倍的每美元性能提升**——这是纯硬件代际提升,两个 SKU 上使用相同的 `MiniMaxAI/MiniMax-M2.5` 权重和相同的 vLLM 构建。**将 B200 权重切换为 `nvidia/MiniMax-M2.5-NVFP4` 后又叠加了 2.77 倍**——这是纯精度提升,由 [vllm-project/vllm #36307](https://github.com/vllm-project/vllm/pull/36307) 解锁——该 PR 添加了 trtllm-gen FP8 MoE kernel 的**模块化变体**,使 MiniMax 的非标准路由方法得以使用该 kernel。2.94 × 2.77 ≈ 8.14。精度提升随交互性增长而扩大(22 tok/s/user 时 1.65 倍 → 110 时 2.77 倍),这是因为 trtllm-gen kernel 相比旧版 triton 路径的优势在 GEMM 天花板成为瓶颈时更为突出。
点击查看完整的 InferenceX 仪表板 →
@@ -33,7 +33,7 @@ tags:
MiniMax-M2.5 是 MiniMax AI 的旗舰 MoE 模型:**总参数 230B,每 token 激活 10B**,采用 256 个小专家(架构不同于早期 MiniMax-Text-01 的 32 个大专家)。公开权重发布于 [`MiniMaxAI/MiniMax-M2.5`](https://huggingface.co/MiniMaxAI/MiniMax-M2.5),NVIDIA 发布了量化版 [`nvidia/MiniMax-M2.5-NVFP4`](https://huggingface.co/nvidia/MiniMax-M2.5-NVFP4),将所有 MoE GEMM 权重从 BF16/FP8 重新量化为 NVFP4(16 元素分组、FP8 逐组缩放因子、FP32 逐张量缩放因子)。KV cache 保持 FP8。图表中 B200 NVFP4 曲线加载 NVIDIA 量化权重;B200 FP8 和 H100 FP8 曲线加载原始 MiniMaxAI 权重。
-本文涉及的关键架构细节是**路由方法**。MiniMax M2 的专家路由层生成的 routing logits 使用的数据类型不被原始("单体式")trtllm-gen FP8 MoE 内核接受——这就是为何 MiniMax 在 B200 上一直被限制在较慢的 triton MoE 路径上,直到 vLLM PR #36307 添加了在外部处理路由的模块化内核变体。我们将在"关键技术贡献"部分详细展开。
+本文涉及的关键架构细节是**路由方法**。MiniMax M2 的专家路由层生成的 routing logits 使用的数据类型不被原始(“单体式”)trtllm-gen FP8 MoE kernel 接受——这就是为何 MiniMax 在 B200 上一直被限制在较慢的 triton MoE 路径上,直到 vLLM PR #36307 添加了在外部处理路由的模块化 kernel 变体。我们将在"关键技术贡献"部分详细展开。
## 为何 MiniMax-M2.5 值得投入优化
@@ -43,19 +43,19 @@ MiniMax-M2.5 是 M2 系列中面向编码和智能体的开源权重模型。其
srcLight="/images/b200-minimax-m2-5-vllm-nvfp4-vs-h100-fp8-perf-per-dollar/quality-benchmarks-light.png"
srcDark="/images/b200-minimax-m2-5-vllm-nvfp4-vs-h100-fp8-perf-per-dollar/quality-benchmarks-dark.png"
alt="六个柱状图对比 MiniMax M2.5(红色)和 MiniMax M2.1(浅红色)与 Claude Opus 4.5、Claude Opus 4.6、Gemini 3 Pro 和 GPT-5.2 在 SWE-Bench Verified、SWE-Bench Pro、Terminal Bench 2、Multi-SWE-Bench、SWE-Bench Multilingual 和 VIBE-Pro (AVG) 上的表现。MiniMax M2.5 在每项基准测试上与 Claude Opus 的差距仅几分,在 Multi-SWE-Bench(51.3 vs 50.3)上领先,在与 Gemini 3 Pro 的对比中在 Multi-SWE-Bench 和 VIBE-Pro 上领先。"
- caption="MiniMax-M2.5 与前沿编码模型在智能体和软件工程基准测试上的对比(MiniMax 发布的得分)。M2.5 在 SWE-Bench 系列和 Terminal Bench 上与 Claude Opus 4.5/4.6 持平或差距 0–4 分,在 Multi-SWE-Bench 上领先,在已报告的项目中与 GPT-5.2 持平或领先,在六项中的三项上领先 Gemini 3 Pro。M2.7(相同的 230B / 10B 激活架构,经过后训练优化)继承了这些结果并继续使用相同的 vLLM 内核路径。"
+ caption="MiniMax-M2.5 与前沿编码模型在智能体和软件工程基准测试上的对比(MiniMax 发布的得分)。M2.5 在 SWE-Bench 系列和 Terminal Bench 上与 Claude Opus 4.5/4.6 持平或差距 0–4 分,在 Multi-SWE-Bench 上领先,在已报告的项目中与 GPT-5.2 持平或领先,在六项中的三项上领先 Gemini 3 Pro。M2.7(相同的 230B / 10B 激活架构,经过后训练优化)继承了这些结果并继续使用相同的 vLLM kernel 路径。"
/>
质量水准是服务成本故事的前提。一个**激活参数仅 10B** 的开源 MoE 模型,在前沿专有编码模型的射程范围内——在 B200 NVFP4 的吞吐量锚点处仅需 **$0.031/M tokens**——相比将同样的工作负载路由到闭源 API 前沿模型,完全是不同的部署成本量级。下文介绍的 vLLM PR + NVFP4 + B200 技术栈,将这类智能体/SWE 循环工作负载的推理成本从"连续运行成本高昂"压缩到了可以让自主编码智能体持续运行数小时而不至于账单本身成为架构约束的区间。
## H100 vs B200 纸面规格对比
-在介绍具体配方之前,先看硬件。H100 SXM(Hopper,2023)和 B200 SXM(Blackwell,2025)相隔两代。下方雷达图将每个轴归一化到 [`/gpu-specs`](/gpu-specs) 中所有 NVIDIA + AMD SKU 的最大值——因此 H100 和 B200 的可见多边形在 GB200/GB300 NVL72 设定天花板的轴上(特别是扩展域显存容量和扩展域显存带宽,按 72-GPU NVLink 域扩展)被压缩。
+在介绍具体配方之前,先看硬件。H100 SXM(Hopper,2023)和 B200 SXM(Blackwell,2025)相隔两代。下方雷达图将每个轴归一化到 [`/gpu-specs`](/gpu-specs) 中所有 NVIDIA + AMD SKU 的最大值——因此 H100 和 B200 的可见多边形在 GB200/GB300 NVL72 设定天花板的轴上(特别是 scale-up 域的显存容量和显存带宽,按 72-GPU NVLink 域扩展)被压缩。
@@ -68,27 +68,27 @@ MiniMax-M2.5 是 M2 系列中面向编码和智能体的开源权重模型。其
| 密集 FP4 (TFLOP/s) | — | 9,000 | — |
| 密集 FP8 (TFLOP/s) | 1,979 | 4,500 | 2.27x |
| 密集 BF16 (TFLOP/s) | 989 | 2,250 | 2.28x |
-| 每 GPU 扩展带宽(单向) | 450 GB/s (NVLink 4) | 900 GB/s (NVLink 5) | 2.00x |
-| 扩展域 GPU 数 | 8 | 8 | 1.00x |
-| 扩展域 HBM 容量 | 640 GB | 1,440 GB | 2.25x |
-| 扩展域 HBM 带宽(聚合) | 26.8 TB/s | 64.0 TB/s | 2.39x |
+| 每 GPU scale-up 带宽(单向) | 450 GB/s (NVLink 4) | 900 GB/s (NVLink 5) | 2.00x |
+| scale-up 域 GPU 数 | 8 | 8 | 1.00x |
+| scale-up 域 HBM 容量 | 640 GB | 1,440 GB | 2.25x |
+| scale-up 域 HBM 带宽(聚合) | 26.8 TB/s | 64.0 TB/s | 2.39x |
| TCO(SemiAnalysis AI Cloud 模型) | $1.30/GPU/hr | $1.95/GPU/hr | 1.50x |
硅片本身带来了什么?**B200 的 FP8 算力是 H100 的 2.27 倍**(4,500 vs 1,979 TFLOP/s),**B200 的 FP4 算力是 H100 FP8 算力的 4.55 倍**(9,000 vs 1,979 TFLOP/s——Hopper 没有 FP4 张量核心,因此精度步骤是跨精度算力提升,而非同精度对比),**HBM 带宽提升 2.39 倍**(8.0 vs 3.35 TB/s),TCO 仅为 1.50 倍。这些原始比率限定了性能/成本的天花板:**FP8 vs FP8 计算瓶颈下为 1.51 倍**(`2.27 / 1.50`),**HBM 带宽瓶颈下为 1.59 倍**(`2.39 / 1.50`),或者 **B200 NVFP4 vs H100 FP8 跨精度算力轴下为 3.03 倍**(`4.55 / 1.50`)。
-实测数据更为出色。2.94 倍的 FP8 代际提升**几乎是 FP8 硅片天花板的 2 倍**,8.16 倍的综合提升**约为跨精度 FP4 硅片天花板的 2.7 倍**——超出硅片天花板的部分来自 trtllm-gen 模块化 FP8 MoE 内核(vLLM PR #36307),实现了旧版 triton MoE 路径无法做到的优化。H100 上的 vLLM 技术栈在运行 MiniMax-M2.5 时相比 B200 上 trtllm-gen 内核路径的发挥还留有大量空间。NVFP4 在此基础上叠加了精度步骤的提升,因为 B200 拥有 9 PFLOP/s 的 FP4 算力,而 H100 为零。
+实测数据更为出色。2.94 倍的 FP8 代际提升**几乎是 FP8 硅片天花板的 2 倍**,8.16 倍的综合提升**约为跨精度 FP4 硅片天花板的 2.7 倍**——超出硅片天花板的部分来自 trtllm-gen 模块化 FP8 MoE kernel(vLLM PR #36307),实现了旧版 triton MoE 路径无法做到的优化。H100 上的 vLLM 技术栈在运行 MiniMax-M2.5 时相比 B200 上 trtllm-gen kernel 路径的发挥还留有大量空间。NVFP4 在此基础上叠加了精度步骤的提升,因为 B200 拥有 9 PFLOP/s 的 FP4 算力,而 H100 为零。
-## TensorRT-LLM MoE 内核集成至 vLLM
+## TensorRT-LLM MoE kernel 集成至 vLLM
-**上游:vLLM PR #36307——TRTLLM FP8 MoE 模块化内核。** [vllm-project/vllm #36307](https://github.com/vllm-project/vllm/pull/36307),由 [Wei Zhao](https://github.com/wzhao18) 提交,2026-03-12 合入,为 Blackwell 添加了 trtllm-gen FP8 MoE 内核的**模块化**变体。此前的"单体式"trtllm-gen 内核仅接受特定数据类型的 routing logits,这排除了 MiniMax M2 等路由层输出不同数据类型的模型。模块化内核在外部完成路由,从而消除了数据类型约束——MiniMax M2(及更广泛的 MoE 模型)现在可以使用 DeepSeek/Kimi/GLM-5 在 B200 上已有的快速 attention + MoE 内核路径。该 PR 的测试计划在 `MiniMaxAI/MiniMax-M2.5` 上以 TP=2 + 专家并行运行,与下方 B200 前沿使用的配方形状相同。
+**上游:vLLM PR #36307——TRTLLM FP8 MoE 模块化 kernel。** [vllm-project/vllm #36307](https://github.com/vllm-project/vllm/pull/36307),由 [Wei Zhao](https://github.com/wzhao18) 提交,2026-03-12 合入,为 Blackwell 添加了 trtllm-gen FP8 MoE kernel 的**模块化**变体。此前的"单体式"trtllm-gen kernel 仅接受特定数据类型的 routing logits,这排除了 MiniMax M2 等路由层输出不同数据类型的模型。模块化 kernel 在外部完成路由,从而消除了数据类型约束——MiniMax M2(及更广泛的 MoE 模型)现在可以使用 DeepSeek/Kimi/GLM-5 在 B200 上已有的快速 attention + MoE kernel 路径。该 PR 的测试计划在 `MiniMaxAI/MiniMax-M2.5` 上以 TP=2 + 专家并行运行,与下方 B200 前沿使用的配方形状相同。
-内核的选择至关重要。以下是 MiniMax-M2.5 上的逐内核对比(1K/1K——_不是_ 8K/1K,但内核排序一致),展示了 vLLM 中各 MoE 后端的表现:
+kernel 的选择至关重要。以下是 MiniMax-M2.5 上的逐 kernel 对比(1K/1K——_不是_ 8K/1K,但 kernel 排序一致),展示了 vLLM 中各 MoE 后端的表现:
## 数据详情
@@ -174,7 +174,7 @@ NVFP4 组合帕累托前沿从 21 tok/s/user 时的 $0.031/M(TP=2,conc=512
| 150 | _unreachable_ | _unreachable_ | $0.250 | _∞_ |
| 175 | _unreachable_ | _unreachable_ | $0.569 | _∞_ |
-B200 NVFP4 相对于 H100 的性能/成本优势**从 22 tok/s/user 时的 3.96 倍单调递增至 110 tok/s/user 时的 8.16 倍**,峰值 8.23 倍出现在 110.8 tok/s/user——H100 可测量范围的右端。与同代对比中提升基本恒定不同,此处提升增长迅速:H100 的前沿在右端急剧下降(其 conc=4 点仅为 476 tok/s/GPU、$0.76/M),而 B200 NVFP4 在相同交互性下仍有 4–5 倍的吞吐量。纯精度提升(B200 FP8 → B200 NVFP4)从 22 tok/s/user 时的 1.65 倍扩大到 110 时的 2.77 倍——随着批量缩小,trtllm-gen 内核的 GEMM 优势相比 triton 路径成为主导约束。在 110 tok/s/user 以上,对比不再成立:H100 没有任何配方能再提供一个 tok/s/user,而 B200 NVFP4 将可用范围延伸至 TP=8 下的 180 tok/s/user。
+B200 NVFP4 相对于 H100 的性能/成本优势**从 22 tok/s/user 时的 3.96 倍单调递增至 110 tok/s/user 时的 8.16 倍**,峰值 8.23 倍出现在 110.8 tok/s/user——H100 可测量范围的右端。与同代对比中提升基本恒定不同,此处提升增长迅速:H100 的前沿在右端急剧下降(其 conc=4 点仅为 476 tok/s/GPU、$0.76/M),而 B200 NVFP4 在相同交互性下仍有 4–5 倍的吞吐量。纯精度提升(B200 FP8 → B200 NVFP4)从 22 tok/s/user 时的 1.65 倍扩大到 110 时的 2.77 倍——随着批量缩小,trtllm-gen kernel 的 GEMM 优势相比 triton 路径成为主导约束。在 110 tok/s/user 以上,对比不再成立:H100 没有任何配方能再提供一个 tok/s/user,而 B200 NVFP4 将可用范围延伸至 TP=8 下的 180 tok/s/user。
点击查看完整的 InferenceX 仪表板 →
@@ -218,7 +218,7 @@ NVIDIA 的 [Wei Zhao](https://github.com/wzhao18) 于 2026-03-12 在 vLLM 中合
"name": "vLLM PR #36307 做了什么?为什么对 B200 上的 MiniMax-M2.5 至关重要?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "vllm-project/vllm PR #36307 由 Wei Zhao 提交(2026-03-12 合入),为 Blackwell 添加了 trtllm-gen FP8 MoE 内核的模块化变体。此前的单体式 trtllm-gen 内核有 routing logits 数据类型约束,排除了 MiniMax M2 等路由器输出不同数据类型的模型。模块化内核在外部完成路由,消除了约束。有了 #36307,B200 上的 MiniMax M2 vLLM 终于可以使用 DeepSeek、Kimi 和 GLM-5 已有的快速 attention + MoE 内核路径。在 1K/1K 的补充逐内核对比中,trtllm-gen 模块化内核在低交互性时生成 TPS 比 triton MoE 回退路径高约 1.4 倍,总 TPS 高约 2 倍;deep_gemm 在此路由方法下无竞争力。"
+ "text": "vllm-project/vllm PR #36307 由 Wei Zhao 提交(2026-03-12 合入),为 Blackwell 添加了 trtllm-gen FP8 MoE kernel 的模块化变体。此前的单体式 trtllm-gen kernel 有 routing logits 数据类型约束,排除了 MiniMax M2 等路由器输出不同数据类型的模型。模块化 kernel 在外部完成路由,消除了约束。有了 #36307,B200 上的 MiniMax M2 vLLM 终于可以使用 DeepSeek、Kimi 和 GLM-5 已有的快速 attention + MoE kernel 路径。在 1K/1K 的补充逐 kernel 对比中,trtllm-gen 模块化 kernel 在低交互性时生成 TPS 比 triton MoE 回退路径高约 1.4 倍,总 TPS 高约 2 倍;deep_gemm 在此路由方法下无竞争力。"
}
},
{
@@ -226,7 +226,7 @@ NVIDIA 的 [Wei Zhao](https://github.com/wzhao18) 于 2026-03-12 在 vLLM 中合
"name": "B200 NVFP4 vs H100 FP8 的 8.2 倍每美元性能提升中,代际和精度各贡献了多少?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "提升在峰值处可以清晰分解。保持精度不变,B200 vLLM FP8 在 110 tok/s/user 时相比 H100 vLLM FP8 实现约 2.94 倍的每美元性能提升——这是 Blackwell 代际加软件步骤,两个 SKU 使用相同的 MiniMaxAI/MiniMax-M2.5 权重和相同的 vLLM 构建。将 B200 权重切换为 nvidia/MiniMax-M2.5-NVFP4 后在 110 时又叠加了 2.77 倍——纯精度步骤,依赖 vLLM PR #36307 解锁的 trtllm-gen FP8 MoE 模块化内核。2.94 乘以 2.77 约为 8.14。在 H100 的工作区间内,代际贡献在 2.40 倍(22 tok/s/user)到 2.99 倍(103)之间,精度贡献在 1.65 倍(22)到 2.81 倍(110)之间;两个步骤在更高交互性下都扩大,这就是综合提升从 3.96 倍增长到 8.16 倍而非保持恒定的原因。"
+ "text": "提升在峰值处可以清晰分解。保持精度不变,B200 vLLM FP8 在 110 tok/s/user 时相比 H100 vLLM FP8 实现约 2.94 倍的每美元性能提升——这是 Blackwell 代际加软件步骤,两个 SKU 使用相同的 MiniMaxAI/MiniMax-M2.5 权重和相同的 vLLM 构建。将 B200 权重切换为 nvidia/MiniMax-M2.5-NVFP4 后在 110 时又叠加了 2.77 倍——纯精度步骤,依赖 vLLM PR #36307 解锁的 trtllm-gen FP8 MoE 模块化 kernel。2.94 乘以 2.77 约为 8.14。在 H100 的工作区间内,代际贡献在 2.40 倍(22 tok/s/user)到 2.99 倍(103)之间,精度贡献在 1.65 倍(22)到 2.81 倍(110)之间;两个步骤在更高交互性下都扩大,这就是综合提升从 3.96 倍增长到 8.16 倍而非保持恒定的原因。"
}
},
{
@@ -234,7 +234,7 @@ NVIDIA 的 [Wei Zhao](https://github.com/wzhao18) 于 2026-03-12 在 vLLM 中合
"name": "为什么 B200 vs H100 的代际提升(2.94 倍)几乎是纸面 FP8 天花板(1.51 倍)的 2 倍?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "从原始硅片看,B200 的密集 FP8 吞吐量是 H100 的 2.27 倍,TCO 为 1.50 倍,在计算瓶颈下的纸面 FP8 性能/成本天花板为 1.51 倍,在显存带宽瓶颈下为 1.59 倍。实测 110 tok/s/user 时 2.94 倍几乎是该天花板的 2 倍,这意味着对比不受硅片能力限制——H100 上的 vLLM 技术栈在运行 MiniMax-M2.5 时相比 B200 通过 PR #36307 获得的 trtllm-gen 内核路径还留有大量性能空间。如果 H100 技术栈采用 FP8 KV cache、FlashInfer 注意力升级或类似的快速 MoE 内核,代际步骤将向其纸面天花板收窄。"
+ "text": "从原始硅片看,B200 的密集 FP8 吞吐量是 H100 的 2.27 倍,TCO 为 1.50 倍,在计算瓶颈下的纸面 FP8 性能/成本天花板为 1.51 倍,在显存带宽瓶颈下为 1.59 倍。实测 110 tok/s/user 时 2.94 倍几乎是该天花板的 2 倍,这意味着对比不受硅片能力限制——H100 上的 vLLM 技术栈在运行 MiniMax-M2.5 时相比 B200 通过 PR #36307 获得的 trtllm-gen kernel 路径还留有大量性能空间。如果 H100 技术栈采用 FP8 KV cache、FlashInfer 注意力升级或类似的快速 MoE kernel,代际步骤将向其纸面天花板收窄。"
}
},
{
@@ -242,7 +242,7 @@ NVIDIA 的 [Wei Zhao](https://github.com/wzhao18) 于 2026-03-12 在 vLLM 中合
"name": "B200 NVFP4 vs H100 FP8 的 MiniMax-M2.5 对比中还有哪些未覆盖的领域?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "仍有三处差距。(1)投机解码:两个配方均未在 MiniMax-M2.5 上运行 MTP 或 EAGLE,因为 vLLM 对 MiniMax M2 路由层的 MTP 支持落后于 DeepSeek/Kimi/GLM-5;一旦实现,高交互性下的精度步骤应收窄,低交互性下的绝对下限应进一步降低。(2)NVL72 上的分离式服务:本次对比为单节点聚合;NVL72 上的宽专家并行在 Kimi K2.5 上已展示约 3 倍的每 GPU 吞吐量提升,将进一步提升 MiniMax-M2.5 的性能/成本。(3)H100 vLLM 技术栈仍有提升空间:当前运行 vllm/vllm-openai v0.18.0;FlashInfer 注意力升级和 H100 上的 FP8 KV 路径均可推高 H100 曲线。"
+ "text": "仍有三处差距。(1)投机解码:两个配方均未在 MiniMax-M2.5 上运行 MTP 或 EAGLE,因为 vLLM 对 MiniMax M2 路由层的 MTP 支持落后于 DeepSeek/Kimi/GLM-5;一旦实现,高交互性下的精度步骤应收窄,低交互性下的绝对下限应进一步降低。(2)NVL72 上的分离式推理:本次对比为单节点聚合;NVL72 上的宽专家并行在 Kimi K2.5 上已展示约 3 倍的每 GPU 吞吐量提升,将进一步提升 MiniMax-M2.5 的性能/成本。(3)H100 vLLM 技术栈仍有提升空间:当前运行 vllm/vllm-openai v0.18.0;FlashInfer 注意力升级和 H100 上的 FP8 KV 路径均可推高 H100 曲线。"
}
}
]
diff --git a/packages/app/content/blog/zh/b200-nvfp4-vs-h200-int4-kimi-k2-vllm-perf-per-dollar.mdx b/packages/app/content/blog/zh/b200-nvfp4-vs-h200-int4-kimi-k2-vllm-perf-per-dollar.mdx
index f8b122b4e..1bba161a1 100644
--- a/packages/app/content/blog/zh/b200-nvfp4-vs-h200-int4-kimi-k2-vllm-perf-per-dollar.mdx
+++ b/packages/app/content/blog/zh/b200-nvfp4-vs-h200-int4-kimi-k2-vllm-perf-per-dollar.mdx
@@ -1,6 +1,6 @@
---
title: 'B200 NVFP4 对比 H200 INT4 运行 Kimi K2.5/K2.6:每美元性能最高达 2.95 倍'
-subtitle: '在 vLLM 8K/1K 工作负载下,B200 NVFP4 路径在 30–90 tok/s/user 推理区间内每百万 tokens 成本比 H200 INT4 低 2.71x–2.95x,比同一 B200 硬件上的 INT4 低 2.45x–2.74x。三个因素——B200 的 HBM 带宽、HBM 容量和 NVFP4 张量核心——可清晰分解该优势'
+subtitle: '在 vLLM 8K/1K 工作负载下,B200 NVFP4 路径在 30–90 tok/s/user 推理区间内每百万 tokens 成本比 H200 INT4 低 2.71x–2.95x,比同一 B200 硬件上的 INT4 低 2.45x–2.74x。该优势可清晰分解为三个因素——B200 的 HBM 带宽、HBM 容量和 NVFP4 张量核心'
seoDescription: '在 vLLM 8K/1K 下,B200 NVFP4 运行 Kimi K2.5/K2.6 每 token 成本比 H200 INT4 最多低 2.95 倍,覆盖 30–90 tok/s/user 全区间。'
date: '2026-05-26'
publishDate: '2026-05-26'
@@ -33,7 +33,7 @@ Kimi K2.5 和 K2.6 是 xAI Cursor Composer 2 和 Composer 2.5 背后的开源权
## Kimi K2.5 / K2.6 模型架构及下游 Cursor Composer 2.5 模型
-[Kimi K2.5](https://huggingface.co/moonshotai/Kimi-K2.5)(发布于 2026-01-27)和 [Kimi K2.6](https://huggingface.co/moonshotai/Kimi-K2.6)(发布于 2026-04-20)共享原始 Kimi K2 骨干网络:**1.0T 参数的 MoE,每个 token 激活 32B 参数**,**DeepSeek 风格的 top-8-of-385 专家路由,跨 61 个 Transformer 层(1 个 dense 块 + 60 个 MoE 块)**,**Multi-head Latent Attention(MLA)**、SwiGLU、**YaRN RoPE**,163,840 词汇量,以及 **256K 上下文窗口**(262,144 tokens)。HF 检查点为 [`moonshotai/Kimi-K2.5`](https://huggingface.co/moonshotai/Kimi-K2.5) 和 [`moonshotai/Kimi-K2.6`](https://huggingface.co/moonshotai/Kimi-K2.6)——两者是在同一预训练架构上的后训练优化,因此**本文中的每一个推理结果都同样适用于这两个版本**。
+[Kimi K2.5](https://huggingface.co/moonshotai/Kimi-K2.5)(发布于 2026-01-27)和 [Kimi K2.6](https://huggingface.co/moonshotai/Kimi-K2.6)(发布于 2026-04-20)共享原始 Kimi K2 骨干网络:**1.0T 参数的 MoE,每个 token 激活 32B 参数**,**DeepSeek 风格的 top-8-of-385 专家路由,跨 61 个 Transformer 层(1 个 dense 块 + 60 个 MoE 块)**,**Multi-head Latent Attention(MLA)**、SwiGLU、**YaRN RoPE**,163,840 token 的词表,以及 **256K 上下文窗口**(262,144 tokens)。HF 检查点为 [`moonshotai/Kimi-K2.5`](https://huggingface.co/moonshotai/Kimi-K2.5) 和 [`moonshotai/Kimi-K2.6`](https://huggingface.co/moonshotai/Kimi-K2.6)——两者是在同一预训练架构上的后训练优化,因此**本文中的每一个推理结果都同样适用于这两个版本**。
点击查看完整 InferenceX 仪表板 →
@@ -195,7 +195,7 @@ Kimi K2.5 和 K2.6 是 [Moonshot AI](https://www.moonshot.ai/) 的工作成果
"name": "Kimi K2.5 / K2.6 推理还有哪些未覆盖的方向?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "四个方向。第一,AMD MI355X 目前还没有 K2.5 / K2.6 的 InferenceX 方案;一旦内核覆盖到位,相同的精度解锁论证应同样适用(MI355X 有 10,066 TFLOP/s FP4 张量核心,略高于 B200)。第二,PD 分离式推理(AMD 上的 mori-sglang、NVIDIA Dynamo)是下一个约 1.5 倍的提升杠杆,目前 InferenceX 循环中还没有 K2 的方案。第三,GB200 NVL72 和 GB300 NVL72 的机架级宽 Expert Parallelism 路径尚未为 K2.5 / K2.6 接入,尽管 384 专家的架构天然适配。第四,本文测量的是 8K / 1K;32K / 2K 和 128K / 2K 的 agentic 工具调用工作负载会在 KV 缓存压力开始对 256K 上下文窗口模型产生影响后重新排列曲线。"
+ "text": "四个方向。第一,AMD MI355X 目前还没有 K2.5 / K2.6 的 InferenceX 方案;一旦 kernel 覆盖到位,相同的精度解锁论证应同样适用(MI355X 有 10,066 TFLOP/s FP4 张量核心,略高于 B200)。第二,PD 分离式推理(AMD 上的 mori-sglang、NVIDIA Dynamo)是下一个约 1.5 倍的提升杠杆,目前 InferenceX 循环中还没有 K2 的方案。第三,GB200 NVL72 和 GB300 NVL72 的机架级宽 Expert Parallelism 路径尚未为 K2.5 / K2.6 接入,尽管 384 专家的架构天然适配。第四,本文测量的是 8K / 1K;32K / 2K 和 128K / 2K 的 agentic 工具调用工作负载会在 KV 缓存压力开始对 256K 上下文窗口模型产生影响后重新排列曲线。"
}
}
]
diff --git a/packages/app/content/blog/zh/deepseek-v4-pro-agentx-b200-vs-b300-kv-working-set.mdx b/packages/app/content/blog/zh/deepseek-v4-pro-agentx-b200-vs-b300-kv-working-set.mdx
index 8af550d2b..9e2a74400 100644
--- a/packages/app/content/blog/zh/deepseek-v4-pro-agentx-b200-vs-b300-kv-working-set.mdx
+++ b/packages/app/content/blog/zh/deepseek-v4-pro-agentx-b200-vs-b300-kv-working-set.mdx
@@ -43,7 +43,7 @@ tags:
## offload 层为什么需要余量
-DRAM KV offload 通常实现为写穿缓存,也就是写入 HBM 缓存的每个前缀同时也会写入 DRAM 缓存。因此,只有当可用于 offload 的 DRAM 显著大于 HBM 中 KV cache 的容量时(大约 1.5 到 3 倍)它才最有效。
+DRAM KV offload 通常实现为写穿缓存,也就是写入 HBM 缓存的每个前缀同时也会写入 DRAM 缓存。因此,只有当可用于 offload 的 DRAM 容量显著大于 HBM 中 KV cache 的容量(约为其 1.5 到 3 倍)时,它才最有效。
正是这一性质,让 B300 额外的 HBM 产生的是叠加效应而不只是简单相加:更大的常驻工作集把更多会话状态留在快速层,慢速层因此只需服务真正的剩余部分,而不必不断吸收被淘汰的数据。
diff --git a/packages/app/content/blog/zh/deepseek-v4-pro-agentx-gb200-vs-gb300-disagg.mdx b/packages/app/content/blog/zh/deepseek-v4-pro-agentx-gb200-vs-gb300-disagg.mdx
index 81e1985ff..e09634b63 100644
--- a/packages/app/content/blog/zh/deepseek-v4-pro-agentx-gb200-vs-gb300-disagg.mdx
+++ b/packages/app/content/blog/zh/deepseek-v4-pro-agentx-gb200-vs-gb300-disagg.mdx
@@ -27,7 +27,7 @@ tags:
## 两个点在 token 速率上比在首 token 延迟上更接近
-以每用户每秒 token 数衡量时,2xDEP8+1xDEP12 的 GB200 点与 3xDEP8+1xDEP16 的 GB300 点相当接近;但以首 token 延迟衡量时,两者差距明显更大。因此只看交互性坐标轴,会低估这两种配置行为上的差异。
+以每用户每秒 token 数衡量时,2xDEP8+1xDEP12 的 GB200 点与 3xDEP8+1xDEP16 的 GB300 点明显更接近;但以首 token 延迟衡量时,两者差距明显更大。因此只看交互性坐标轴,会低估这两种配置行为上的差异。
总体而言,TTFT 对工作负载的「突发性」更敏感。GB300 那个点的总并发要高得多,因而会遇到更多子智能体流量,也就有更多冷 prefill。[子智能体](/zh/glossary/subagent)带着全新上下文启动,没有可复用的前缀,因此它的第一条请求是完整 prefill 而不是缓存命中;当足够多这样的请求同时到达时,[尾部延迟](/zh/glossary/tail-latency)就会被推高。
diff --git a/packages/app/content/blog/zh/deepseek-v4-pro-agentx-mi355x-vs-b200-august.mdx b/packages/app/content/blog/zh/deepseek-v4-pro-agentx-mi355x-vs-b200-august.mdx
index 1b2b14dca..65b7bd6c1 100644
--- a/packages/app/content/blog/zh/deepseek-v4-pro-agentx-mi355x-vs-b200-august.mdx
+++ b/packages/app/content/blog/zh/deepseek-v4-pro-agentx-mi355x-vs-b200-august.mdx
@@ -36,9 +36,9 @@ DeepSeek V4 Pro 0813 是一款来自中国、极受欢迎的前沿开放权重
8 月 21 日之后,来自 Inferact 和 NVIDIA 的 vLLM 优化让 B200 的每美元性能超过了 MI355X。这仍是一场胶着的竞赛,而不是已成定局;[AMD 也公布了自己的 DeepSeek V4 vLLM 优化清单](https://github.com/vllm-project/vllm/issues/52911),上面还有不少待办事项。
-## ATOM 这个前提
+## 关于 ATOM 的附加说明
-在端到端延迟上,MI355X 上的 ATOM 胜过 B200 vLLM,但没有胜过 B300 或 B200 SGLang。更重要的前提在于部署:中国和西方的多数 AI 实验室都不愿在生产中使用 ATOM,因此只在厂商引擎下成立的优势,并不能代表使用上游软件栈的客户实际拿到的性能。在单节点上,MI355X 的开源方案(vLLM)依然落后于 ATOM。
+在端到端延迟上,MI355X 上的 ATOM 胜过 B200 vLLM,但没有胜过 B300 或 B200 SGLang。更重要的限定条件在于部署:中国和西方的多数 AI 实验室都不愿在生产中使用 ATOM,因此只在厂商引擎下成立的优势,并不能代表使用上游软件栈的客户实际拿到的性能。在单节点上,MI355X 的开源方案(vLLM)依然落后于 ATOM。
-AMD 的 vLLM 文档要求使用 vllm/vllm-openai-rocm:deepseekv41-flash-0909,但从模型发布第 0 小时到第 23 小时,AMD 都没有公开该镜像。AMD 宣称“SPEED IS THE MOAT”,却直到第 23 小时仍未发布。我们希望 AMD 团队今后改善模型发布首小时的支持流程。
+AMD 的 vLLM 文档建议使用 vllm/vllm-openai-rocm:deepseekv41-flash-0909,但从模型发布第 0 小时到第 23 小时,AMD 都没有公开该镜像。AMD 宣称“SPEED IS THE MOAT”,却直到第 23 小时仍未发布。我们希望 AMD 团队今后改善模型发布首小时的支持流程。
-Kimi K2.5 是一个 1T 参数的 MoE 模型,拥有 384 个路由专家加 1 个共享专家,每 token 激活 8 个专家,共 60 层 MoE 层。每个 MoE 层执行一次路由式 all-to-all 分发加一次 all-to-all 汇聚,因此单次前向传播在 60 层中总共约有 120 次 all-to-all 操作。在 NVL72 上,这些流量始终运行在 NVLink 5 上,每 GPU 1.8 TB/s,聚合互联带宽达 130 TB/s。而在 B200 上,宽 EP 超过 8 GPU 后就离开了 NVLink 域,退回到 ConnectX 7 InfiniBand 的每 GPU 400 Gb/s,约为 NVL72 NVLink 带宽的 1/36。稀疏度为 48 的 MoE(如 K2.5)无法在规模化时容忍这种差距。
+Kimi K2.5 是一个 1T 参数的 MoE 模型,拥有 384 个路由专家加 1 个共享专家,每 token 激活 8 个专家,共 60 个 MoE 层。每个 MoE 层执行一次路由式 all-to-all 分发加一次 all-to-all 汇聚,因此单次前向传播在 60 层中总共约有 120 次 all-to-all 操作。在 NVL72 上,这些流量始终运行在 NVLink 5 上,每 GPU 1.8 TB/s,聚合互联带宽达 130 TB/s。而在 B200 上,宽 EP 超过 8 GPU 后就离开了 NVLink 域,退回到 ConnectX 7 InfiniBand 的每 GPU 400 Gb/s,约为 NVL72 NVLink 带宽的 1/36。稀疏度为 48 的 MoE(如 K2.5)在大规模部署时无法承受这种差距。
## 宽 EP 对 Kimi K2.5 为何重要
-在 EP 4 下,每个 GPU 持有 Kimi K2.5 384 个专家中的 96 个。解码受限于每步从 HBM 重新加载这些专家权重所需的显存带宽。将 EP 扩展到 16 会将每 GPU 的专家占用降至 24 个。每次专家权重读取被摊销到更大的有效批次上——更多对等 GPU 通过该 rank 分发 token。这使解码从权重带宽受限转向算力和通信受限。在这种模式下,Blackwell 的 FP4 tensor core 和 NVLink 带宽都能发挥优势。
+在 EP 4 下,每个 GPU 持有 Kimi K2.5 的 384 个专家中的 96 个。解码受限于每步从 HBM 重新加载这些专家权重所需的显存带宽。将 EP 扩展到 16 会将每 GPU 的专家占用降至 24 个。每次专家权重读取被摊销到更大的有效批次上——更多对等 GPU 通过该 rank 分发 token。这使解码从权重带宽受限转向算力和通信受限。在这种模式下,Blackwell 的 FP4 tensor core 和 NVLink 带宽都能发挥优势。
扩宽 EP 的代价是每个 MoE 层增加一次 all-to-all 集合通信。如果该集合通信命中 scale-out 互联,交互性预算在吞吐量收益回本之前就会崩溃。NVL72 的 scale-up 域使得 EP 8 到 EP 16 的宽 EP 在 K2.5 解码池上可行。B200 的 8 GPU NVLink 域使得跨两个节点的 Decode EP 4 成为 scale-out 接管前的天花板。
@@ -82,7 +82,7 @@ GB200 NVL72 在 23 到 36 tok/s/user 区间内维持约 12,580 tok/s/GPU 的平
## NVL72 上的 vLLM 宽 EP
-vLLM 在 v0.9 中推出了 PPLX all-to-all 后端,随后添加了 DeepEP。v0.11 完成了 V1 引擎迁移,并通过 PR [#24845](https://github.com/vllm-project/vllm/pull/24845) 扩展了双批重叠(DBO,Dual Batch Overlap)路径,添加了 DeepEP 高吞吐量内核以及 DBO 的预填充支持,使 all-to-all 通信可以隐藏在计算之后。上述基准测试运行的是 v0.18.0,未启用投机解码。
+vLLM 在 v0.9 中推出了 PPLX all-to-all 后端,随后添加了 DeepEP。v0.11 完成了 V1 引擎迁移,并通过 PR [#24845](https://github.com/vllm-project/vllm/pull/24845) 扩展了双批重叠(DBO,Dual Batch Overlap)路径,添加了 DeepEP 高吞吐量 kernel 以及 DBO 的预填充支持,使 all-to-all 通信可以隐藏在计算之后。上述基准测试运行的是 v0.18.0,未启用投机解码。
GB200 NVL72 配置在 NVIDIA Dynamo 中以 vLLM 作为 worker 运行时,在 InferenceX 数据集中标记为 dynamo-vllm。Dynamo 将预填充(4 GPU、TP 4、EP 4)与解码(8 到 16 GPU,TP 和 EP 均扩展至 16)分离,并通过 NVL72 互联在两者之间路由请求。SGLang 和 TRT-LLM 在 NVL72 上也有类似的分离式 + 宽 EP 路径,其中 SGLang 公开的 GB200 结果目前最为成熟。
@@ -113,7 +113,7 @@ GB200 NVL72 在并发 2,048 到 4,096 范围内以 23 到 36 tok/s/user 的交
"name": "为什么 GB200 NVL72 在 MoE 模型上能扩展比 B200 更宽的专家并行?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "NVL72 是一个 72 GPU 的 NVLink scale-up 域。每个 GPU 可以 1.8 TB/s 的速率访问其他所有 GPU,聚合互联带宽达 130 TB/s。B200 每个 NVLink 域最多 8 GPU。更宽的专家并行必须跨越 InfiniBand,每 GPU 400 Gb/s,约为 NVL72 NVLink 带宽的 1/36。Kimi K2.5 有 384 个路由专家和 60 层 MoE 层,每层 MoE 执行一次 all-to-all 分发加汇聚,单次前向传播约 120 次 all-to-all。该集合通信仅在互联端到端均为 NVLink 时才能在 EP 16 或更高级别实际运行。在 NVL72 上流量保持在 scale-up 域内;B200 超过 8 GPU 后就不再如此。"
+ "text": "NVL72 是一个 72 GPU 的 NVLink scale-up 域。每个 GPU 可以以 1.8 TB/s 的速率访问其他所有 GPU,聚合互联带宽达 130 TB/s。B200 每个 NVLink 域最多 8 GPU。更宽的专家并行必须跨越 InfiniBand,每 GPU 400 Gb/s,约为 NVL72 NVLink 带宽的 1/36。Kimi K2.5 有 384 个路由专家和 60 个 MoE 层,每层执行一次 all-to-all 分发加汇聚,单次前向传播约 120 次 all-to-all。该集合通信仅在互联端到端均为 NVLink 时才能在 EP 16 或更高级别实际运行。在 NVL72 上流量保持在 scale-up 域内;B200 超过 8 GPU 后就不再如此。"
}
},
{
@@ -121,7 +121,7 @@ GB200 NVL72 在并发 2,048 到 4,096 范围内以 23 到 36 tok/s/user 的交
"name": "在 GB200 NVL72 上运行 Kimi K2.5 宽 EP 需要什么版本的 vLLM 和配方?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "Kimi K2.5 配方需要 vLLM 0.18 或更高版本,该版本依赖 Eagle3 投机解码支持。PPLX all-to-all 后端在 vLLM 0.9 中推出,随后是 DeepEP,v0.11 完成了 V1 引擎迁移并通过 PR #24845 扩展了双批重叠(DBO)路径(添加 DeepEP 高吞吐量内核和 DBO 预填充支持)。InferenceX GB200 基准测试在预填充池上使用 TP 4,在 NVL72 解码池上将 TP 和 EP 扩展至 16。上游 vLLM 配方使用 DP 4 / DP 16 形态,两侧均为 TP 1 加专家并行。"
+ "text": "Kimi K2.5 配方需要 vLLM 0.18 或更高版本,该版本依赖 Eagle3 投机解码支持。PPLX all-to-all 后端在 vLLM 0.9 中推出,随后是 DeepEP,v0.11 完成了 V1 引擎迁移并通过 PR #24845 扩展了双批重叠(DBO)路径(添加 DeepEP 高吞吐量 kernel 和 DBO 预填充支持)。InferenceX GB200 基准测试在预填充池上使用 TP 4,在 NVL72 解码池上将 TP 和 EP 扩展至 16。上游 vLLM 配方使用 DP 4 / DP 16 形态,两侧均为 TP 1 加专家并行。"
}
},
{
diff --git a/packages/app/content/blog/zh/gb200-nvl72-vs-b200-disagg-deepseek-r1-fp4-dynamo-trt.mdx b/packages/app/content/blog/zh/gb200-nvl72-vs-b200-disagg-deepseek-r1-fp4-dynamo-trt.mdx
index e70a66208..dfd06c70c 100644
--- a/packages/app/content/blog/zh/gb200-nvl72-vs-b200-disagg-deepseek-r1-fp4-dynamo-trt.mdx
+++ b/packages/app/content/blog/zh/gb200-nvl72-vs-b200-disagg-deepseek-r1-fp4-dynamo-trt.mdx
@@ -104,7 +104,7 @@ DeepSeek R1 0528 是 DeepSeek 于 2025 年 5 月发布的 671B 参数 MoE 模型
| 275 | 103 | 126 | 0.82x |
| 300 | _不可达_ | 67 | _∞_(B200 胜出) |
-以及同一对比按每百万 token 成本归一化的结果,GB200 NVL72 每 GPU 小时 TCO 高 13%($2.21 vs $1.95)削弱了其吞吐量优势:
+下面将同一对比按每百万 token 成本归一化:GB200 NVL72 每 GPU 小时 TCO 高 13%($2.21 vs $1.95),这在一定程度上抵消了其吞吐量优势:
| 交互性 (tok/s/user) | GB200 NVL72 $/M tok | B200 $/M tok | B200 / GB200 NVL72 |
| ------------------- | ------------------- | ------------ | ------------------ |
@@ -170,7 +170,7 @@ NVIDIA 的 [SGLang GB200 NVL72 结果](https://lmsys.org/blog/2025-09-25-gb200-p
"name": "GB200 NVL72 在此对比中每百万 token 成本也低于 B200 吗?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "在 75–175 tok/s/user 区间内是的,在两端基本持平。GB200 NVL72 每 GPU 小时 TCO 高约 13%($2.21 vs $1.95,数据来源 SemiAnalysis AI Cloud TCO 模型),这在成本维度上削弱了吞吐量优势。在峰值吞吐量端(25 至 60 tok/s/user)成本基本持平:GB200 NVL72 便宜 1.01 至 1.06 倍。在 125 tok/s/user 时成本差距为 3.87 倍(B200 每百万 token $0.58,GB200 NVL72 $0.15)。在 225 tok/s/user 以上成本差距反转:B200 在 225 tok/s/user 时便宜 5%,在 250 tok/s/user 时便宜 15%,在 275 tok/s/user 时便宜 27%。"
+ "text": "在 75–175 tok/s/user 区间内是的,在两端基本持平。GB200 NVL72 每 GPU 小时 TCO 高约 13%($2.21 vs $1.95,数据来源 SemiAnalysis AI Cloud TCO 模型),这在成本维度上削弱了吞吐量优势。在峰值吞吐量端(25 至 60 tok/s/user)成本基本持平:B200 的成本是 GB200 NVL72 的 1.01 至 1.06 倍。在 125 tok/s/user 时成本差距为 3.87 倍(B200 每百万 token $0.58,GB200 NVL72 $0.15)。在 225 tok/s/user 以上成本差距反转:B200 在 225 tok/s/user 时便宜 5%,在 250 tok/s/user 时便宜 15%,在 275 tok/s/user 时便宜 27%。"
}
},
{
diff --git a/packages/app/content/blog/zh/gb300-nvl72-vs-gb200-nvl72-dsv4-pro-vllm-fp4.mdx b/packages/app/content/blog/zh/gb300-nvl72-vs-gb200-nvl72-dsv4-pro-vllm-fp4.mdx
index 7cc9580b3..a1344cb3f 100644
--- a/packages/app/content/blog/zh/gb300-nvl72-vs-gb200-nvl72-dsv4-pro-vllm-fp4.mdx
+++ b/packages/app/content/blog/zh/gb300-nvl72-vs-gb200-nvl72-dsv4-pro-vllm-fp4.mdx
@@ -1,7 +1,7 @@
---
title: 'GB300 NVL72 对比 GB200 NVL72 的推理性能与每美元性能 — DeepSeek-V4-Pro 1.6T:吞吐量最高达 2.83 倍'
subtitle: 'DSv4-Pro FP4 8K/1K,Dynamo+vLLM,两套机架均采用分离式部署。GB300 多出 50% 的 HBM(每 GPU 288 GB vs 192 GB)解锁了 GB200 无法容纳的更宽预填充+解码配方——尽管单 GPU TCO 溢价 20%,曲线中段性价比仍提升 2.31 倍。'
-seoDescription: 'GB300 NVL72 多出的 50% HBM 使 DeepSeek-V4-Pro 性价比比 GB200 NVL72 最高提升 2.31 倍(vLLM FP4 8K/1K),每 GPU 吞吐量最高提升 2.83 倍。'
+seoDescription: 'GB300 NVL72 多出的 50% HBM 使 DeepSeek-V4-Pro 的性价比最高可达 GB200 NVL72 的 2.31 倍(vLLM FP4 8K/1K),每 GPU 吞吐量最高提升 2.83 倍。'
date: '2026-05-27'
publishDate: '2026-05-27'
tags:
@@ -19,7 +19,7 @@ tags:
- disagg
---
-在 DeepSeek-V4-Pro FP4、8K/1K 输入输出长度、Dynamo vLLM 框架以及两套机架均启用分离式预填充/解码的条件下,GB300 NVL72 在等交互性下**每 GPU 吞吐量最高达 GB200 NVL72 的 2.83 倍**,峰值出现在 27 tok/s/user(GB300 为 6,182 tok/s/GPU,GB200 为 2,189 tok/s/GPU)。纸面上两者的硅片差异看似不大——相同的显存带宽、相同的 NVLink 互联、相同的 scale-up 规模,仅多出 1.5 倍 HBM 容量和 1.5 倍 FP4 算力——但曲线中段的差距远超任何静态比率,因为 GB300 额外的 HBM 消除了 GB200 必须为之付出代价的一个软件约束。
+在 DeepSeek-V4-Pro FP4、8K/1K 输入输出长度、Dynamo vLLM 框架以及两套机架均启用分离式预填充/解码的条件下,GB300 NVL72 在等交互性下**每 GPU 吞吐量最高达 GB200 NVL72 的 2.83 倍**,峰值出现在 27 tok/s/user(GB300 为 6,182 tok/s/GPU,GB200 为 2,189 tok/s/GPU)。纸面上两者的硅片差异看似不大——相同的显存带宽、相同的 NVLink 互联、相同的 scale-up 规模,HBM 容量和 FP4 算力都只有 GB200 的 1.5 倍——但曲线中段的差距远超任何静态比率,因为 GB300 额外的 HBM 消除了 GB200 必须为之付出代价的一个软件约束。
其机制在于 **HBM 余量**。DSv4-Pro 1.6T 参数量下,仅 FP4 权重就约占 800 GB,GB200 在窄预填充形态下可用 HBM 相当紧张,配方不得不在批大小上做出妥协以将模型装入显存。GB300 的 1.5 倍 HBM 容量(每 GPU 288 GB vs 192 GB)在相同形态下仍有数百 GB 的余量,使得预填充可以运行更大的批次来保持更宽解码池的饱和。在每 GPU TCO 溢价 20%($2.65 vs $2.21/GPU/hr,数据来自 [SemiAnalysis AI Cloud TCO 模型](https://semianalysis.com/ai-cloud-tco-model/))之后,GB300 在 27 tok/s/user 下**每百万 token 的成本仍便宜 2.31 倍**。更多 HBM,更多节省。
@@ -45,7 +45,7 @@ GB300 NVL72(Blackwell Ultra)和 GB200 NVL72(Blackwell)共享相同的 NV
@@ -123,7 +123,7 @@ GB200 的每 GPU 峰值吞吐量为 8,933,交互性为 15.3 tok/s/user。GB300
标题中的每 GPU 吞吐量 2.83 倍优势,出现在曲线中段的 27 tok/s/user(此时性价比为 2.31 倍),而不是吞吐量最高点。低于 20 tok/s/user 时,两套机架的预填充批次都足够大,GB300 的 HBM 容量余量优势在结果取整后不再明显;高于 36 tok/s/user 时,两者的批次都较小,也都没有能让宽 EP 得到充分利用的测试配置。22–32 tok/s/user 区间最能体现 GB300 的 1.5 倍 HBM 容量优势:它可以落在更高的 Pareto 节点上(`conc=3072, 28 GPU prefill, 32 GPU decode EP=16, 6,812 tok/s/GPU at 25.9 tok/s/user`),而 GB200 在相同交互性下没有对应的测试配置。GB200 最接近的方案使用 32 GPU 解码池,conc=256/512,但只能达到 1,614–2,005 tok/s/GPU。
-50 tok/s/user 行显示成本比率(3.03x)再次扩大,因为两条曲线都进入了右侧的陡峭衰减区。这里的解读需要更谨慎——两套机架在该区域的 Pareto 覆盖都很薄(GB200 在约 33 tok/s/user 处各有一个节点,GB300 在约 37 tok/s/user 处各有一个节点,然后是到约 73 tok/s/user 的长尾),因此插值是在两个间隔较大的实测节点之间读取差距。22–32 tok/s/user 区间才是 GB300 优势的可靠甜蜜点;将 50 tok/s/user 行视为方向性参考。
+50 tok/s/user 行显示成本比率(3.03x)再次扩大,因为两条曲线都进入了右侧的陡峭衰减区。这里的解读需要更谨慎——两套机架在该区域的 Pareto 覆盖都很薄(GB200 在约 33 tok/s/user 处有一个节点,GB300 在约 37 tok/s/user 处有一个节点,然后是到约 73 tok/s/user 的长尾),因此插值是在两个间隔较大的实测节点之间读取差距。22–32 tok/s/user 区间才是 GB300 优势最稳定的区间;将 50 tok/s/user 行视为方向性参考。
> -- Saurabh Dighe,Azure 战略规划与架构公司副总裁
-> _"理论峰值与真实推理吞吐量之间的差距往往取决于系统软件:推理引擎、分布式策略和底层内核。InferenceMAX 的价值在于它对最新软件进行基准测试,展示了 FP4、MTP、投机解码和 wide-EP 等优化在不同硬件上的实际表现。这样的开放、可复现结果有助于整个社区更快前进。"_
+> _"理论峰值与真实推理吞吐量之间的差距往往取决于系统软件:推理引擎、分布式策略和底层 kernel。InferenceMAX 的价值在于它对最新软件进行基准测试,展示了 FP4、MTP、投机解码和 wide-EP 等优化在不同硬件上的实际表现。这样的开放、可复现结果有助于整个社区更快前进。"_
>
> -- Tri Dao,Together AI 首席科学家、Flash Attention 发明者
@@ -120,7 +120,7 @@ InferenceMAX 项目得到了许多大型计算资源买家和 ML 社区知名成
>
> -- Kaichao You,vLLM 项目联合负责人
-> _"InferenceMAX 展示了开放生态系统在实践中的运作方式。vLLM、SGLang 和 TensorRT-LLM 等许多领先的推理栈都构建在 PyTorch 之上,而这样的基准测试展示了内核、运行时和框架层面的创新如何转化为在包括 NVIDIA 和 AMD GPU 在内的各种硬件平台上的可量化性能。通过开源和每夜运行,InferenceMAX 为追踪进展和为 PyTorch 用户提供数据驱动的洞察提供了一种透明的、社区驱动的方法。"_
+> _"InferenceMAX 展示了开放生态系统在实践中的运作方式。vLLM、SGLang 和 TensorRT-LLM 等许多领先的推理栈都构建在 PyTorch 之上,而这样的基准测试展示了 kernel、运行时和框架层面的创新如何转化为在包括 NVIDIA 和 AMD GPU 在内的各种硬件平台上的可量化性能。通过开源和每夜运行,InferenceMAX 为追踪进展和为 PyTorch 用户提供数据驱动的洞察提供了一种透明的、社区驱动的方法。"_
>
> -- Matt White,PyTorch Foundation 执行总监
@@ -136,7 +136,7 @@ InferenceMAX 项目得到了许多大型计算资源买家和 ML 社区知名成
>
> -- Roman Chernin,Nebius 联合创始人兼首席商务官
-> _"在 Crusoe,我们相信成为一个出色的合作伙伴意味着赋予客户选择权和清晰度。这就是我们自豪地支持 InferenceMAX 的原因——它为整个 AI 社区提供了针对最新硬件的开源、可复现的基准测试。通过提供关于吞吐量、效率和成本的透明、真实的数据,InferenceMAX 穿透了炒作,帮助客户自信地为其独特工作负载选择最佳平台。"_
+> _"在 Crusoe,我们相信成为一个出色的合作伙伴意味着赋予客户选择权和清晰度。这就是我们自豪地支持 InferenceMAX 的原因——它为整个 AI 社区提供了针对最新硬件的开源、可复现的基准测试。通过提供关于吞吐量、效率和成本的透明、真实的数据,InferenceMAX 拨开了炒作迷雾,帮助客户自信地为其独特工作负载选择最佳平台。"_
>
> -- Chase Lochmiller,Crusoe 联合创始人兼 CEO
@@ -144,7 +144,7 @@ InferenceMAX 项目得到了许多大型计算资源买家和 ML 社区知名成
>
> -- Charles Liang,Supermicro 创始人兼 CEO
-> _"在 TensorWave,我们正在 AMD GPU 上构建下一代云,因为我们相信当客户拥有强有力的替代选择时,创新才会蓬勃发展。InferenceMAX 通过提供开源、可复现的基准测试来支持这一愿景,这些测试追踪最新硬件和软件上的吞吐量、效率和成本。通过穿透合成数字并凸显真实推理性能,它帮助客户看到 AMD 平台在大规模 AI 方面的全部潜力。"_
+> _"在 TensorWave,我们正在 AMD GPU 上构建下一代云,因为我们相信当客户拥有强有力的替代选择时,创新才会蓬勃发展。InferenceMAX 通过提供开源、可复现的基准测试来支持这一愿景,这些测试追踪最新硬件和软件上的吞吐量、效率和成本。通过剔除合成数字的干扰并凸显真实推理性能,它帮助客户看到 AMD 平台在大规模 AI 方面的全部潜力。"_
>
> -- Darrick Horton,TensorWave CEO
@@ -176,7 +176,7 @@ InferenceMAX 项目得到了许多大型计算资源买家和 ML 社区知名成
caption="来源:SemiAnalysis"
/>
-## InferenceMAX v1 基准测试方法论
+## InferenceMAX v1 基准测试方法
提供反映不同 GPU、推理引擎和工作负载在多种交互性水平下全部可能性的基准测试,是 InferenceMAX 的核心目标。本节将介绍基准测试方法论如何被设计来实现这一目标。
@@ -205,13 +205,13 @@ InferenceMAX 项目得到了许多大型计算资源买家和 ML 社区知名成
为了防止 [SGLang 与 vLLM 基准测试大战的重演](https://x.com/dylan522p/status/1920638653677596836)并节省计算时间,我们决定首先为每个模型只选择 vLLM 或 SGLang 中的一个作为默认引擎。早在 7 月份,我们就告知 AMD 和 Nvidia,我们将使用 SGLang 作为 DeepSeek 670B 的引擎,使用 vLLM 作为 Llama3 70B 和 Llama4 的引擎。后来我们用 GPT-OSS 120B 替换了 Llama4,因为没有人使用 Llama4,而 GPT-OSS 120B 更接近较小的 "mini" 前沿模型。
-我们希望服务器配置尽可能反映真实部署情况,因此要求 AMD 和 Nvidia 提交与其文档指南中讨论如何在其硬件上部署这些模型时相当接近的配置:
+我们希望服务器配置尽可能反映真实部署情况,因此要求 AMD 和 Nvidia 提交尽量贴近其官方文档中模型部署指南的配置:
- [https://docs.nvidia.com/llm-inference-quick-start-recipes/index.html](https://docs.nvidia.com/llm-inference-quick-start-recipes/index.html)
- [recipes.vllm.ai](https://docs.vllm.ai/projects/recipes/en/latest/)
- [https://rocm.docs.amd.com/en/docs-7.0-docker/benchmark-docker/inference-vllm-gpt-oss-120b.html](https://rocm.docs.amd.com/en/docs-7.0-docker/benchmark-docker/inference-vllm-gpt-oss-120b.html)
-我们之前没有明确说明 InferenceMAX 是否允许预热(warmup),所以 Nvidia 在其 SGLang DeepSeek 提交中包含了一个预热阶段来处理某些 JIT 编译的内核。在基准测试开发接近尾声时,AMD 注意到了上述关于 Nvidia 提交的情况,并询问是否允许预热,因为他们没有意识到自己也可以这样做。经过 AMD、Nvidia 和 SemiAnalysis AI 工程团队之间的讨论,各方同意目前禁止预热,并将 DeepSeek 基准测试的时长延长最多 5 倍以确保公平。这次沟通混乱是我们的失误,因为从一开始就没有明确预热规则。我们计划在发布后重新审视这一议题,因为在真实生产推理中,预热通常在 Kubernetes 控制平面将 Pod 报告为健康之前发生。
+我们之前没有明确说明 InferenceMAX 是否允许预热(warmup),所以 Nvidia 在其 SGLang DeepSeek 提交中包含了一个预热阶段来处理某些 JIT 编译的 kernel。在基准测试开发接近尾声时,AMD 注意到了上述关于 Nvidia 提交的情况,并询问是否允许预热,因为他们没有意识到自己也可以这样做。经过 AMD、Nvidia 和 SemiAnalysis AI 工程团队之间的讨论,各方同意目前禁止预热,并将 DeepSeek 基准测试的时长延长最多 5 倍以确保公平。这次沟通混乱是我们的失误,因为从一开始就没有明确预热规则。我们计划在发布后重新审视这一议题,因为在真实生产推理中,预热通常在 Kubernetes 控制平面将 Pod 报告为健康之前发生。
## 讨论:DeepSeek R1 服务策略
@@ -266,7 +266,7 @@ InferenceMAX 使用 GitHub Actions 来编排基准测试运行。一个 GitHub A
在解读吞吐量 vs 延迟/交互性图表时,请记住大多数实际应用运行在两个极端之间的某个位置。仅测量单一或有限吞吐量或交互性水平的基准测试结果有时可能具有误导性。
-例如,如果 GPU A 在给定交互性水平下——以面向人类的 AI 聊天机器人应用为例取 5 tokens/s/user——提供了 GPU B 4 倍的吞吐量,但这个交互性水平实际上太慢而不实用的事实意味着这种性能差异几乎没有真实的实际意义。相反——应该为给定应用选择一个现实的交互性水平。
+例如,如果 GPU A 在给定交互性水平下——以面向人类的 AI 聊天机器人应用为例,取 5 tokens/s/user——提供了 GPU B 4 倍的吞吐量,但这个交互性水平实际上太慢而不实用的事实意味着这种性能差异几乎没有真实的实际意义。相反——应该为给定应用选择一个现实的交互性水平。
在本报告的后续部分,我们还将按 GPU 的总拥有成本(TCO)对吞吐量进行归一化。
@@ -274,7 +274,7 @@ InferenceMAX 使用 GitHub Actions 来编排基准测试运行。一个 GitHub A
让我们逐步分析几个基准测试示例来解释如何分析结果。
-在我们的第一个结果中,H100 vLLM 与 MI300X ROCm 7.0 vLLM 在 Llama 3.3 70B FP8 推理场景(1k in/ 8k out)的对比显示了 MI300X 的强劲性能,尤其在低交互性水平(20 到 30 tok/s/user)下,这得益于 MI300X 在 TP1 运行时更好的内存带宽和内存容量优势。
+在我们的第一个结果中,H100 vLLM 与 MI300X ROCm 7.0 vLLM 在 Llama 3.3 70B FP8 推理(reasoning)场景(1k in/ 8k out)的对比显示了 MI300X 的强劲性能,尤其在低交互性水平(20 到 30 tok/s/user)下,这得益于 MI300X 在 TP1 运行时更好的内存带宽和内存容量优势。
-在 LLaMA 70B FP4 方面,B200 在所有三种工作负载类型上的吞吐量性能都大幅超越 MI355X。这表明 AMD 的 FP4 内核仍有改进空间。
+在 LLaMA 70B FP4 方面,B200 在所有三种工作负载类型上的吞吐量性能都大幅超越 MI355X。这表明 AMD 的 FP4 kernel 仍有改进空间。
转到 B200(vLLM 和 TRT-LLM)vs. MI355X vLLM 运行 GPT-OSS 120B 的对比,我们可以看到 MI355X 在按 TCO 归一化后与 B200 vLLM 具有竞争力。在下一节中,我们将看到 MI355X 在某些交互性范围内的 TCO 性价比优于 Nvidia。吞吐量-延迟图表显示竞争更为激烈,MI355X 在给定 tok/s/gpu 吞吐量下比 B200 慢不超过约 15 秒。我们在现实中看到的 GPT-OSS 120B 最实用的交互性范围约为 150-200 tok/s/user。
@@ -454,23 +454,23 @@ SemiAnalysis GPU 云市场租赁价格报告基于对 70 多家 GPU 云和 100
caption="来源:SemiAnalysis"
/>
-## 每全额配置公用事业兆瓦估计 Token 吞吐量 vs 交互性(tok/s/user)
+## 每兆瓦全额配置市电的估计 Token 吞吐量 vs 交互性(tok/s/user)
电力是 AI 基础设施的终极约束。每个数据中心都在有限的功率范围内运行,通常以兆瓦(MW)为单位衡量。这直接决定了给定数据中心可以产生多少有用计算——以及最终可以产生多少 token。
-推理经济不仅可以通过 GPU 性能(吞吐量/GPU vs TCO)的视角来分析,还可以通过每功率吞吐量来分析——以每全额配置公用事业 MW 的 token/s 来衡量。全额公用事业功率涵盖 GPU、CPU、网络设备、其他相关集群 IT 设备以及设施开销的功率需求。设施开销包括电力分配损耗以及用于冷却设备(如冷水机组、CDU 和冷却塔等)的功率消耗。每 MW 处理的 token 数越多,每单位能源的潜在收入和利润就越大。请注意,对于 InferenceMAX,我们使用的是全额配置公用事业 MW,它考虑了上述设施开销,而不是每全额关键 IT MW 的 token 数(后者不考虑设施开销)。这些指标在不同站点之间有所不同,但我们根据我们的 [AI TCO 模型](https://semianalysis.com/ai-cloud-tco-model/)和[数据中心模型](https://semianalysis.com/datacenter-industry-model/)选择了行业代表性数值。
+推理经济不仅可以通过 GPU 性能(吞吐量/GPU vs TCO)的视角来分析,还可以通过每功率吞吐量来分析——以每全额配置市电 MW 的 token/s 来衡量。全额市电功率涵盖 GPU、CPU、网络设备、其他相关集群 IT 设备以及设施开销的功率需求。设施开销包括电力分配损耗以及用于冷却设备(如冷水机组、CDU 和冷却塔等)的功率消耗。每 MW 处理的 token 数越多,每单位能源的潜在收入和利润就越大。请注意,对于 InferenceMAX,我们使用的是全额配置市电 MW,它考虑了上述设施开销,而不是每全额关键 IT MW 的 token 数(后者不考虑设施开销)。这些指标在不同站点之间有所不同,但我们根据我们的 [AI TCO 模型](https://semianalysis.com/ai-cloud-tco-model/)和[数据中心模型](https://semianalysis.com/datacenter-industry-model/)选择了行业代表性数值。
-请注意,托管租金和电力成本通常占总拥有成本的不到 20%。这意味着如果给定 GPU 与另一块 GPU 相比每 MW token 数低 20%,这仅会转化为不到 4% 的总拥有成本差异(即 20% \* 20% = 4%)。TCO 贡献的大头来自各 GPU 硬件供应商收取的毛利率。一些厂商收取高达 75% 的毛利率(即售出成本的 4 倍加价),而其他厂商低于 50% 的毛利率(即不到售出成本的 2 倍)。
+请注意,托管租金和电力成本通常占总拥有成本的不到 20%。这意味着如果给定 GPU 与另一块 GPU 相比每 MW token 数低 20%,这仅会转化为不到 4% 的总拥有成本差异(即 20% \* 20% = 4%)。TCO 贡献的大头来自各 GPU 硬件供应商收取的毛利率。一些厂商收取高达 75% 的毛利率(即销货成本的 4 倍加价),而其他厂商低于 50% 的毛利率(即不到销货成本的 2 倍)。
我们使用速率单位——即 token/s per MW——而非累积的每 token 能量单位(如焦耳每 token)。这是因为数据中心容量以兆瓦(MW)为单位来规划,这是一个速率单位,等同于每秒 1 兆焦耳(MJ)。如果我们将速率单位在给定时间段内积分,就得到该时间段内消耗的绝对能量值。
目前,我们通过加总数据中心中各组件的热设计功耗(TDP)来估算给定集群所需的 MW。TDP 与预期平均功率不同。举例说明:对于内存带宽受限的解码工作负载,系统功耗永远不会达到 TDP,而是会在较低的功率水平——即预期平均功率附近波动。未来,我们将通过 ipmitool 对每个系统(和网络设备)的实际功耗进行基准测试。届时我们将转向每 token 的累积能量单位。
-我们基于 InferenceMAX 原始结果结合来自我们 [AI 数据中心行业模型](https://semianalysis.com/datacenter-industry-model/)的 AI 集群全额公用事业功率数据来估算每配置功率的吞吐量。该模型通过跨供应商、架构和推理栈的功率归一化估算来量化全额公用事业功率。完整的估算和持续的每夜基准测试可在 [InferenceMAX.ai](https://inferencemax.semianalysis.com/) 上获取。
+我们基于 InferenceMAX 原始结果结合来自我们 [AI 数据中心行业模型](https://semianalysis.com/datacenter-industry-model/)的 AI 集群全额市电功率数据来估算每配置功率的吞吐量。该模型通过跨供应商、架构和推理栈的功率归一化估算来量化全额市电功率。完整的估算和持续的每夜基准测试可在 [InferenceMAX.ai](https://inferencemax.semianalysis.com/) 上获取。
## 每 MW 性能结果
-我们看到,对于 gpt-oss 120B 使用 MX4 weights 的推理场景(1K 输入 token / 8K 输出 token),在 90 tok/s/user 交互性水平下,MI300X 每全额配置公用事业 MW 可处理 750,000 token/s(再次强调,这是按公用事业 MW 衡量的,而非按关键 IT 功率 MW),而 MI355X 每全额配置公用事业 MW 可处理 2,550,000 token/s。这代表了从 CDNA3 代到 CDNA4 代约 3 倍的能效提升。
+我们看到,对于 gpt-oss 120B 使用 MX4 weights 的推理(reasoning)场景(1K 输入 token / 8K 输出 token),在 90 tok/s/user 交互性水平下,MI300X 每全额配置市电 MW 可处理 750,000 token/s(再次强调,这是按公用事业 MW 衡量的,而非按关键 IT 功率 MW),而 MI355X 每全额配置市电 MW 可处理 2,550,000 token/s。这代表了从 CDNA3 代到 CDNA4 代约 3 倍的能效提升。
-在下一个基准测试中,我们以 30 tok/s/user 交互性水平来看 DeepSeek R1 的每功率 token 数。比较单节点 H200 FP8 与 GB200 NVL72 FP4(不含多 token 预测),GB200 NVL72 在每全额配置公用事业 MW 处理的 token/s 方面提供了约 8 倍的提升。请注意,H200 和 B200 的结果都来自单节点。我们将探索 B200 和 H200 通过在 SpectrumX 以及 InfiniBand 上实现分离式预填充和 wide 专家并行所能释放的更大每 MW token 吞吐量潜力。SGLang 的 [GB200 NVL72 分析](https://lmsys.org/blog/2025-09-25-gb200-part-2/)显示,8-GPU 系统确实可以通过实现 wide 专家并行获得强劲的性能提升。然而,SGLang 的博客也表明,即使 Hopper 同样实现了分离式预填充和 wide EP,GB200 NVL72 仍然胜出。
+在下一个基准测试中,我们以 30 tok/s/user 交互性水平来看 DeepSeek R1 的每功率 token 数。比较单节点 H200 FP8 与 GB200 NVL72 FP4(不含多 token 预测),GB200 NVL72 在每全额配置市电 MW 处理的 token/s 方面提供了约 8 倍的提升。请注意,H200 和 B200 的结果都来自单节点。我们将探索 B200 和 H200 通过在 SpectrumX 以及 InfiniBand 上实现分离式预填充和 wide 专家并行所能释放的更大每 MW token 吞吐量潜力。SGLang 的 [GB200 NVL72 分析](https://lmsys.org/blog/2025-09-25-gb200-part-2/)显示,8-GPU 系统确实可以通过实现 wide 专家并行获得强劲的性能提升。然而,SGLang 的博客也表明,即使 Hopper 同样实现了分离式预填充和 wide EP,GB200 NVL72 仍然胜出。
-继续 DeepSeek 但转到 FP8,我们看到 GB200 在 tok/s/gpu vs tok/s/user 上也主导了所有单节点系统。我们注意到这里有一些细微差别——B200 和 MI355X 都在运行单节点 SGLang,尽管对于 DeepSeek 而言,vLLM 可能在 MI355X 上比 SGLang 能提供更好的结果。我们将探索为 MI355X 添加 DeepSeek vLLM 支持和/或为所有 8-GPU 服务器添加 SGLang 多节点 wideEP。此外,如前所述,Dynamo 团队目前只有时间实现足以在约 30 tok/s/user 附近实现并行帕累托前沿下移的优化。进一步的优化可以将帕累托前沿进一步推低,从而在更高交互性水平下提升 GB200 NVL72 FP8 的每功率吞吐量。
+继续 DeepSeek 但转到 FP8,我们看到 GB200 在 tok/s/gpu vs tok/s/user 上也主导了所有单节点系统。我们注意到这里有一些细微差别——B200 和 MI355X 都在运行单节点 SGLang,尽管对于 DeepSeek 而言,vLLM 可能在 MI355X 上比 SGLang 能提供更好的结果。我们将探索为 MI355X 添加 DeepSeek vLLM 支持和/或为所有 8-GPU 服务器添加 SGLang 多节点 wideEP。此外,如前所述,Dynamo 团队目前只来得及实现部分优化,使并行帕累托前沿下移到约 30 tok/s/user 附近。进一步的优化可以将帕累托前沿进一步推低,从而在更高交互性水平下提升 GB200 NVL72 FP8 的每功率吞吐量。
-在阅读了 vLLM 的 NCCL 绑定代码后,我们并不认为 FFI 绑定是问题的根本原因。运行 nvidia-smi 时,我们看到 GPU_UTIL 不是 100% 而是 0%——表明没有内核在 GPU 上运行,由此我们得出结论这不是设备端的 NCCL 死锁。
+在阅读了 vLLM 的 NCCL 绑定代码后,我们并不认为 FFI 绑定是问题的根本原因。运行 nvidia-smi 时,我们看到 GPU_UTIL 不是 100% 而是 0%——表明没有 kernel 在 GPU 上运行,由此我们得出结论这不是设备端的 NCCL 死锁。
-接下来,我们使用 Linux [perf](https://perfwiki.github.io/main/) top 分析器查看 Python 层之下,试图更深入地了解具体是哪个共享库触发了这个问题。我们注意到该进程(及子进程)的大部分 CPU 周期都花在 "libnvidia-ptxjitcompiler.so" 上。查阅 "libnvidia-ptxjitcompiler" 文档后,我们找到了这样的描述:_"PTX JIT Compiler 库(/usr/lib/libnvidia-ptxjitcompiler.so.575.57.08)是一个 JIT 编译器,将 PTX 编译为 GPU 机器码,由 CUDA 驱动使用"_。这非常奇怪,因为我们不确定为什么初始化时要调用 PTX 编译器——通常所有 NCCL 内核都是在构建时预编译好的,不应该有需要即时编译的内核。
+接下来,我们使用 Linux [perf](https://perfwiki.github.io/main/) top 分析器查看 Python 层之下,试图更深入地了解具体是哪个共享库触发了这个问题。我们注意到该进程(及子进程)的大部分 CPU 周期都花在 "libnvidia-ptxjitcompiler.so" 上。查阅 "libnvidia-ptxjitcompiler" 文档后,我们找到了这样的描述:_"PTX JIT Compiler 库(/usr/lib/libnvidia-ptxjitcompiler.so.575.57.08)是一个 JIT 编译器,将 PTX 编译为 GPU 机器码,由 CUDA 驱动使用"_。这非常奇怪,因为我们不确定为什么初始化时要调用 PTX 编译器——通常所有 NCCL kernel 都是在构建时预编译好的,不应该有需要即时编译的 kernel。
-我们遇到的另一个 Blackwell 问题是 vLLM/SGLang 的子依赖 Flashinfer 存在文件锁竞态条件(race condition)。出于某种原因,Nvidia 决定不将编译好的内核打包到容器镜像中,而是在服务器启动时下载它们。由于我们每个节点最多有 8 个进程(每个 GPU 1 个进程),如果代码不是进程安全的,我们在下载这些编译内核时就会遇到竞态条件。
+我们遇到的另一个 Blackwell 问题是 vLLM/SGLang 的子依赖 Flashinfer 存在文件锁竞态条件(race condition)。出于某种原因,Nvidia 决定不将编译好的 kernel 打包到容器镜像中,而是在服务器启动时下载它们。由于我们每个节点最多有 8 个进程(每个 GPU 1 个进程),如果代码不是进程安全的,我们在下载这些编译 kernel 时就会遇到竞态条件。
实际上,这个竞态条件是由于[一次旨在防止竞态条件的尝试](https://github.com/flashinfer-ai/flashinfer/pull/1779)而引入的!Flashinfer 没有依赖内置 FileLock Python 包的锁清理,而是手动清理锁,这反而导致了竞态条件。[这已在 Flashinfer 中修补](https://github.com/flashinfer-ai/flashinfer/pull/1779),但尚未上游到 vLLM/SGLang Blackwell 发布容器镜像。非常感谢 Flashinfer 团队和 Kedar Potar 迅速介入,在与团队对接后仅 4 小时内就完成了调试和修补。
@@ -571,7 +571,7 @@ GitHub Actions 的[自托管 runner](https://docs.github.com/en/actions/how-tos/
每个基准测试变体作为一个单独的 job 运行。对于每个模型,我们对以下不同组合进行基准测试:不同的 GPU、输入/输出序列长度、精度、张量并行度和并发数。这在添加更多配置时导致每个 workflow 的 job 数量产生[组合爆炸](https://en.wikipedia.org/wiki/Combinatorial_explosion)。
-具体来说:InferenceMAX 目前在最多 7 种 GPU 类型上对 3 个模型进行基准测试,涵盖 3 种不同的 ISL/OSL 对、2 种精度设置,以及大约 4 种并发数和张量并行选项。并非每个模型都使用所有可能的配置,但这个最坏情况估算给出 3 _ 7 _ 3 _ 2 _ 4 \* 4 = 2016 个不同的 job。在这种规模下,GitHub Actions 工作流可视化遇到了限制:服务器在尝试渲染 DAG 时在十秒后超时,导致[错误消息](https://github.com/503.html)。这使得调试运行变得极其困难。我们的解决方法是将单个每夜 workflow 拆分为三个,按 ISL/OSL 对分拆。这将每个 workflow 的 job 数从大约 1500 减少到 500,服务器似乎可以可靠地处理。
+具体来说:InferenceMAX 目前在最多 7 种 GPU 类型上对 3 个模型进行基准测试,涵盖 3 种不同的 ISL/OSL 对、2 种精度设置,以及大约 4 种并发数和张量并行选项。并非每个模型都使用所有可能的配置,但这个最坏情况估算给出 3 \* 7 \* 3 \* 2 \* 4 \* 4 = 2016 个不同的 job。在这种规模下,GitHub Actions 工作流可视化遇到了限制:服务器在尝试渲染 DAG 时在十秒后超时,导致[错误消息](https://github.com/503.html)。这使得调试运行变得极其困难。我们的解决方法是将单个每夜 workflow 拆分为三个,按 ISL/OSL 对分拆。这将每个 workflow 的 job 数从大约 1500 减少到 500,服务器似乎可以可靠地处理。
另一个 Bug 涉及使用 [download-artifacts@v5](https://github.com/actions/download-artifact) action 时的硬限制。在每次完整扫描 workflow 结束时,会运行一个 job 来收集和汇总所有 job 的性能结果,这些结果作为 workflow 的 artifact 存储。作为收集过程的一部分,会调用 download-artifacts@v5 action。它初始化一个 [artifact client](https://github.com/actions/toolkit/blob/main/packages/artifact/src/internal/client.ts),该 client 反过来调用一个 [list artifacts 函数](https://github.com/actions/toolkit/blob/main/packages/artifact/src/internal/find/list-artifacts.ts)(需要列出所有 artifact 然后通过模式匹配找到请求的那个),该函数出于"性能原因"强制执行了 1000 的硬限制。据称当 client 尝试列出超过 1000 个 artifact 时应该会打印一个警告,但我们从未观察到这种行为。
diff --git a/packages/app/content/blog/zh/inferencex-v2-nvidia-blackwell-vs-amd-vs-hopper.mdx b/packages/app/content/blog/zh/inferencex-v2-nvidia-blackwell-vs-amd-vs-hopper.mdx
index 93630c370..d7c623e4e 100644
--- a/packages/app/content/blog/zh/inferencex-v2-nvidia-blackwell-vs-amd-vs-hopper.mdx
+++ b/packages/app/content/blog/zh/inferencex-v2-nvidia-blackwell-vs-amd-vs-hopper.mdx
@@ -136,7 +136,7 @@ MI300X 和 MI325X 有了一些改进,主要来自最新的 SGLang 版本。请
caption="来源:SemiAnalysis InferenceX"
/>
-GB200 Dynamo TRT-LLM disagg 也有了显著改进,最大吞吐量在一个多月内提升了 20%。我们还看到中等交互性水平的改进,这部分采用了宽 EP。这可能归因于 GB200 上日趋成熟的宽 EP 内核。
+GB200 Dynamo TRT-LLM disagg 也有了显著改进,最大吞吐量在一个多月内提升了 20%。我们还看到中等交互性水平的改进,这部分采用了宽 EP。这可能归因于 GB200 上日趋成熟的宽 EP kernel。
就 MI325X 而言,下游 ROCm 分支镜像(2025 年 10 月 5 日运行时使用)中存在的性能优化似乎并非全部都已合入官方 vLLM ROCm 镜像。
-遗憾的是,MI355X 目前仍在使用 vLLM 0.10.1 版本的分支构建 `rocm/7.0:rocm7.0_ubuntu_22.04_vllm_0.10.1_instinct_20250927_rc1`。我们本希望现在已经更新了,但不幸的是,当前的官方镜像(撰写本文时为 0.15.1)尚未针对 MI355X 进行优化,并且会遇到硬错误。我们在 MI355X 上运行 vLLM 0.14 时也曾遇到硬错误崩溃。业界消息是 vLLM 0.16.0 将最终提供 MI355X 所需的全部改进。
+遗憾的是,MI355X 目前仍在使用 vLLM 0.10.1 版本的分支构建 `rocm/7.0:rocm7.0_ubuntu_22.04_vllm_0.10.1_instinct_20250927_rc1`。我们本希望现在已经更新了,但不幸的是,当前的官方镜像(撰写本文时为 0.15.1)尚未针对 MI355X 进行优化,并且会遇到硬错误。我们在 MI355X 上运行 vLLM 0.14 时也曾遇到硬错误崩溃。业界消息是 vLLM 0.16.0 最终将提供 MI355X 所需的全部改进。
-NVIDIA 持续为 B200/GB200 FP8 推送新更新。最新数据展示了 DeepSeek FP8 B200 TRT 单节点(MTP 启用/禁用)vs GB200 Dynamo+TRT disagg(MTP 启用/禁用)的对比。这表明在改进机架规模推理软件和 wideEP 内核方面持续投入了工程力量。
+NVIDIA 持续为 B200/GB200 FP8 推送新更新。最新数据展示了 DeepSeek FP8 B200 TRT 单节点(MTP 启用/禁用)vs GB200 Dynamo+TRT disagg(MTP 启用/禁用)的对比。这表明在改进机架规模推理软件和 wideEP kernel 方面持续投入了工程力量。
-在比较 MI355X 分离式推理与聚合推理时,我们注意到了类似的模式。分离式推理仅在低交互性、高批次的情况下超过聚合推理。这在 FP4 下尤为明显,可能源于优化不够充分的内核。
+在比较 MI355X 分离式推理与聚合推理时,我们注意到了类似的模式。分离式推理仅在低交互性、高批次的情况下超过聚合推理。这在 FP4 下尤为明显,可能源于优化不够充分的 kernel。
-NVL72 系列更大世界规模带来的优势也体现在成本图表上。在固定 60 tok/s/user 交互性水平下,每块 GB200 NVL GPU 产出的 token/s 略低于 B200 的三倍。
+NVL72 系列更大的并行域(world size)带来的优势也体现在成本图表上。在固定 60 tok/s/user 交互性水平下,每块 GB200 NVL GPU 产出的 token/s 略低于 B200 的三倍。
-让我们利用上述发现深入分析大规模 LLM 服务的单元经济学。从上面的 OpenRouter 数据可以看到,Crusoe 以 36 tok/sec/user 的交互性提供服务,输入 token 价格为 $1.35/M,输出 token 价格为 $5.40/M。如果我们假设没有缓存命中,并且 Crusoe 至少使用了配备 MTP、disagg 和宽 EP 等 SOTA 推理技术的 H200,上述数据表明他们的成本*不超过* $0.226/M 输入 token 和 $2.955/M 输出 token,输入 token 的利润率高达 83% 毛利率(折旧计入销售成本),输出 token 的毛利率为 45%。
+让我们利用上述发现深入分析大规模 LLM 服务的单元经济学。从上面的 OpenRouter 数据可以看到,Crusoe 以 36 tok/sec/user 的交互性提供服务,输入 token 价格为 $1.35/M,输出 token 价格为 $5.40/M。如果我们假设没有缓存命中,并且 Crusoe 至少使用了配备 MTP、disagg 和宽 EP 等 SOTA 推理技术的 H200,上述数据表明他们的成本*不超过* $0.226/M 输入 token 和 $2.955/M 输出 token,输入 token 的毛利率高达 83%(折旧计入销售成本),输出 token 的毛利率为 45%。
当然,这些假设可能不*完全*正确,且这些计算没有考虑停机时间或利用率不足的情况,但这展示了使用 InferenceX 数据可以进行的一些有趣分析。更多关于推理经济学的分析可以在 [SemiAnalysis Tokenomics Model](https://semianalysis.com/tokenomics-model/) 中找到。
@@ -390,7 +390,7 @@ TP 将每一层的权重矩阵分片到各 GPU 上。这意味着每一层的每
在更高并发度下,这种权衡发生变化。较大的批次使专家激活分布更加均匀,EP 的通信和权重加载优势开始主导 TP 昂贵的逐层 all-reduce。在曲线中段,混合 TP+EP 配置在两方面取得平衡——在每个专家内使用小规模 TP 组实现负载均衡,同时在更大范围的 GPU 上使用 EP 来分摊权重并减少通信。
-对于更高的交互性水平(小批次),大规模扩展世界往往不能带来更强的性能。B300 通过 IB 的 disagg 与 GB300 NVL72 的性能相同,因为工作负载受延迟限制而非带宽限制。NVL72 巨大的 NVLink 带宽优势并不重要,因为即使是慢得多的 IB 链路也不会被微小的 token 批次流量所饱和。
+对于更高的交互性水平(小批次),较大的 scale-up 域往往不能带来更强的性能。B300 通过 IB 的 disagg 与 GB300 NVL72 的性能相同,因为工作负载受延迟限制而非带宽限制。NVL72 巨大的 NVLink 带宽优势并不重要,因为即使是慢得多的 IB 链路也不会被微小的 token 批次流量所饱和。
预填充/解码分离也发挥了重要作用。预填充是计算密集且突发的;解码是内存带宽受限且稳态的。当它们共享同一 GPU 时,会相互干扰,导致延迟抖动和容量浪费。将它们分离到专用 GPU 池,使每个阶段运行与其特性匹配的工作负载,从而提高有效利用率。这就是为什么分离式 B200 配置在吞吐量-交互性曲线中段优于单节点 B200。PD 分离结合跨更多 GPU 通过 IB 的更宽 EP 能比将两个阶段塞入单个 8-GPU 节点更高效地分摊权重。
@@ -410,7 +410,7 @@ TP 将每一层的权重矩阵分片到各 GPU 上。这意味着每一层的每
caption="来源:Nvidia GTC 2024"
/>
-但事实证明,笑话在他们自己身上。快进将近两年后,我们现在可以看到这并非营销炒作,Jensen 实际上一直在低调承诺 Blackwell 的性能。根据我们的测试,相比强劲的 H100 disagg+wideEP FP8 基线,Blackwell 在大规模 MoE 推理上表现出色,在 116 toks/s/user 下,GB200 NVL72 FP4 达到了高达 98x 的性能提升,GB300 NVL72 FP4 更是达到了高达 100x!也许新的 Jensen 数学法则就是:在 token 吞吐量方面,他兑现的是承诺值的两倍。买得越多,省得越多!
+但事实证明,可笑的反而是他们自己。快进将近两年后,我们现在可以看到这并非营销炒作,Jensen 实际上一直在低调承诺 Blackwell 的性能。根据我们的测试,相比强劲的 H100 disagg+wideEP FP8 基线,Blackwell 在大规模 MoE 推理上表现出色,在 116 toks/s/user 下,GB200 NVL72 FP4 达到了高达 98x 的性能提升,GB300 NVL72 FP4 更是达到了高达 100x!也许新的 Jensen 数学法则就是:在 token 吞吐量方面,他兑现的是承诺值的两倍。买得越多,省得越多!
-最后,AMD 没有足够的提交者"通过功能引导和代码所有权展示持续的上游参与",并且缺乏能审核自身代码的审稿人。这就是为什么 ROCm vLLM 的开发速度远慢于 CUDA vLLM。
+最后,AMD 没有足够的提交者"通过主导功能推进和代码所有权展示持续的上游参与",并且缺乏能审核自身代码的审稿人。这就是为什么 ROCm vLLM 的开发速度远慢于 CUDA vLLM。
AMD 有许多才华横溢的优秀工程师在 ATOM 上工作,我们鼓励 AMD 管理层考虑将这些优秀工程师重新部署到人们实际使用的库和框架上,如 vLLM 和 SGLang。
@@ -558,7 +558,7 @@ AMD 有许多才华横溢的优秀工程师在 ATOM 上工作,我们鼓励 AMD
caption="来源:SemiAnalysis InferenceX"
/>
-关于 MTP 性能数据的有效性,有人可能会认为合成数据集的分布不能代表真实数据。然而,比较 MTBench 和我们的 1k1k 基准测试之间的 MTP 接受行为,我们发现分布非常相似,这证实了我们的 InferenceX 基准测试是真实世界生产性能的良好代理。话虽如此,InferenceX 并非完美,我们始终在寻求改进。如果您想加入我们的使命,[请在此申请加入我们的特别项目团队](https://app.dover.com/apply/semianalysis/2a9c8da5-6d59-4ac8-8302-3877345dbce1)。
+关于 MTP 性能数据的有效性,有人可能会认为合成数据集的分布不能代表真实数据。然而,对比 MTBench 与我们的 1k1k 基准测试的 MTP 接受行为,我们发现分布非常相似,这证实了我们的 InferenceX 基准测试是真实世界生产性能的良好代理。话虽如此,InferenceX 并非完美,我们始终在寻求改进。如果您想加入我们的使命,[请在此申请加入我们的特别项目团队](https://app.dover.com/apply/semianalysis/2a9c8da5-6d59-4ac8-8302-3877345dbce1)。
-再次回到 B200 与 GB200 NVL72 的比较,NVL72 的影响显而易见。我们在本文前面讨论了 GB200 NVL72 的 72 GPU 扩展世界规模与 B200 的 8 GPU 扩展世界规模的影响。在约 100 tok/s/user 的交互性范围内,每 GPU 的输出 token 吞吐量翻了一倍以上,展示了 NVL72 更大扩展域的影响。
+再次回到 B200 与 GB200 NVL72 的比较,NVL72 的影响显而易见。我们在本文前面讨论了 GB200 NVL72 的 72 GPU scale-up 域与 B200 的 8 GPU scale-up 域的影响。在约 100 tok/s/user 的交互性范围内,每 GPU 的输出 token 吞吐量翻了一倍以上,展示了 NVL72 更大 scale-up 域的影响。
-## 上游这个前提
+## 关于上游的限定条件
AMD 用 [ATOM](/zh/glossary/atom) 快速推进 K3 性能是件好事。与之相伴的建议是:优先把这些改进上游到 vLLM。ATOM 目前是 AMD 性能最好的引擎,但对使用上游开源服务栈的客户来说,vLLM 才是更有参考价值的对比对象;只在厂商运行时下成立的曲线,并不能代表这些客户实际能部署的性能。
@@ -63,7 +63,7 @@ _本文结果只是 AgentX 1.0 的一个切面。完整分析、回放方法,
"name": "Hopper 在 Kimi K3 上为什么吃力?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "Kimi K3 体量巨大,而 vLLM 维护者和 NVIDIA 都没有把精力放在为它优化 Hopper 上。要在 SM90 上以高交互性服务 K3,需要定制调优的 kernel 以及调优过的 TP32、EP32 形状,而这些工作尚未完成。"
+ "text": "Kimi K3 体量巨大,而 vLLM 维护者和 NVIDIA 都没有把精力放在为它优化 Hopper 上。要在 SM90 上以高交互性服务 K3,需要定制调优的 kernel 以及调优过的 TP32、EP32 配置,而这些工作尚未完成。"
}
}
]
diff --git a/packages/app/content/blog/zh/kimi-k3-the-manos-the-mythos-the.mdx b/packages/app/content/blog/zh/kimi-k3-the-manos-the-mythos-the.mdx
index 2dac3c1c3..fbca54290 100644
--- a/packages/app/content/blog/zh/kimi-k3-the-manos-the-mythos-the.mdx
+++ b/packages/app/content/blog/zh/kimi-k3-the-manos-the-mythos-the.mdx
@@ -296,7 +296,7 @@ Kimi Linear 把 KDA 与全注意力的 Multi-head Latent Attention(MLA)交
### KV 吞吐量
-KV 吞吐量定义为:在给定序列长度下,KV cache 大小除以 prefill 时间(首 token 时延,Time to First Token)。KV 吞吐量代表了以 PD 分离(PD disaggregation)方式稳定服务一个模型所需的最低带宽,同时也是理解 KV cache 效率的良好代理指标。prefill 时间浓缩了模型架构的效率,随着序列长度增加,我们能分别观察到访存受限与计算受限两种情形。如下表所示,序列长度越长,混合线性注意力的收益越明显。
+KV 吞吐量定义为:在给定序列长度下,KV cache 大小除以 prefill 时间(首 token 时延,Time to First Token)。KV 吞吐量代表了以 PD 分离(PD disaggregation)方式稳定服务一个模型所需的最低带宽,同时也是理解 KV cache 效率的良好代理指标。prefill 时间集中体现了模型架构的效率,随着序列长度增加,我们能分别观察到访存受限与计算受限两种情形。如下表所示,序列长度越长,混合线性注意力的收益越明显。
点击查看完整的 InferenceX 仪表板 →
@@ -35,7 +35,7 @@ DeepSeek-V4-Pro 于 [2026-04-24](https://api-docs.deepseek.com/news/news260424)
DeepSeek-V4-Pro 是 DeepSeek 的旗舰 MoE 模型:**总参数 1.6T,每 token 激活 49B**(据 [DeepSeek V4 预览公告](https://api-docs.deepseek.com/news/news260424))。该架构将新颖的**逐 token 压缩**路径与 **DSA(DeepSeek Sparse Attention)** 相结合——这是 DeepSeek 在 V3.2 中引入的稀疏注意力模式,现扩展至更长的上下文(官方服务默认在 **1M 上下文**下运行 DSv4)。V4-Pro 的官方定位是"极致效率:世界领先的长上下文能力,大幅降低计算和显存开销";开源权重发布于 [`deepseek-ai/DeepSeek-V4-Pro`](https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro)。
-注意力机制是 SGLang AMD 分支需要编写大量内核的根本原因。逐 token 压缩引入了围绕注意力块的**多头压缩(mHC)前/后处理对**——运行时将其与 RoPE 和 Hadamard 变换融合——而解码路径上的 DSA 需要单独的**注意力索引器**以及一个**稀疏 MLA 内核**来仅遍历被路由到的位置。整个技术栈足够新,以至于上游 `main` 分支在发布时无法在 Blackwell 或 ROCm 上运行 DeepSeek-V4-Pro;AMD 分支正是在 MI355X 上弥合了这一差距。
+注意力机制是 SGLang AMD 分支需要编写大量 kernel 的根本原因。逐 token 压缩引入了围绕注意力块的**多头压缩(mHC)前/后处理对**——运行时将其与 RoPE 和 Hadamard 变换融合——而解码路径上的 DSA 需要单独的**注意力索引器**以及一个**稀疏 MLA kernel**来仅遍历被路由到的位置。整个技术栈足够新,以至于上游 `main` 分支在发布时无法在 Blackwell 或 ROCm 上运行 DeepSeek-V4-Pro;AMD 分支正是在 MI355X 上弥合了这一差距。
**MI355X 上的 FP4 权重支持在发布时同样不存在。** 2026-04-25 的首次点亮测量使用的是 FP8——并且需要 `SGLANG_HACK_FLASHMLA_BACKEND=torch` 加上 `--time=300` 的 SLURM 扩展才能在不触及 3 小时 CI 上限的情况下通过约 30 分钟的 MoE JIT 编译——因为 [PR #24031](https://github.com/sgl-project/sglang/pull/24031)(kk,2026-04-29)尚未在 ROCm 上启用 FP4 模型路径。一旦该 PR 合入(加上 2026-05-02 的 InferenceX 配方更新——启用 `SGLANG_DSV4_FP4_EXPERTS=True` 并拉取了 `deepseek-ai/DeepSeek-V4-Pro` 的 FP4 权重),曲线就进入了可量测的服务区间。本文从 2026-05-02 起的所有日期均使用 FP4;仅 2026-04-25 使用 FP8。
@@ -54,13 +54,13 @@ DeepSeek 在预览发布时公布了 V4-Pro-Max 与 Claude Opus 4.6、GPT-5.4-xH
## 实现这一切的关键贡献
-**上游技术栈:`amd/deepseek_v4` SGLang 分支。** [sgl-project/sglang `amd/deepseek_v4`](https://github.com/sgl-project/sglang/compare/main...amd/deepseek_v4) 是一个持续 rebase 的分支,以编号的性能优化 PR 形式合入 AMD 专用的 DeepSeek-V4-Pro 内核。截至 2026-05-22 共 31 个 PR,四位主要贡献者。本文中的每一次测量均基于该分支的镜像,而非 SGLang main(关于上游合并的情况请参见[后续计划](#mi355x-deepseek-v4-pro-的后续计划))。按机制分组的关键优化:
+**上游技术栈:`amd/deepseek_v4` SGLang 分支。** [sgl-project/sglang `amd/deepseek_v4`](https://github.com/sgl-project/sglang/compare/main...amd/deepseek_v4) 是一个持续 rebase 的分支,以编号的性能优化 PR 形式合入 AMD 专用的 DeepSeek-V4-Pro kernel。截至 2026-05-22 共 31 个 PR,四位主要贡献者。本文中的每一次测量均基于该分支的镜像,而非 SGLang main(关于上游合并的情况请参见[后续计划](#mi355x-deepseek-v4-pro-的后续计划))。按机制分组的关键优化:
-- **DSA 注意力(TileLang 索引器 + Triton 稀疏 MLA)。** [#24033](https://github.com/sgl-project/sglang/pull/24033)(Thomas Wang,04-29)将 TileLang 注意力路径移植至 ROCm;[#24050](https://github.com/sgl-project/sglang/pull/24050)(Thomas Wang,04-29)在 TileLang 中添加了**注意力索引器**;[#24930](https://github.com/sgl-project/sglang/pull/24930)(amd-danli103,05-11)引入了 **Triton 稀疏 MLA 内核**;[#25878](https://github.com/sgl-project/sglang/pull/25878)(05-20)和 [#25977](https://github.com/sgl-project/sglang/pull/25977)(jacky.cheng,05-22)分别将 prefill 和 extend 的 gather + attention 路径融合为单次调度。
-- **mHC 融合(多头压缩,逐 token 压缩路径)。** [#24355](https://github.com/sgl-project/sglang/pull/24355)(kk,05-04)"优化 mhc 性能";[#24424](https://github.com/sgl-project/sglang/pull/24424)(Thomas Wang,05-05)**压缩器逐元素内核融合**;[#25020](https://github.com/sgl-project/sglang/pull/25020)(Xinyi Song,05-12)压缩器优化;[#25245](https://github.com/sgl-project/sglang/pull/25245)(jacky.cheng,05-15)**融合 softmax pool Triton 内核用于压缩器**;[#25353](https://github.com/sgl-project/sglang/pull/25353)(Xinyi Song,05-15)"启用新压缩器路径";[#26014](https://github.com/sgl-project/sglang/pull/26014)(Xinyi Song,05-22)**低并发下的 Triton 融合 mhc_post_pre**。
-- **RoPE + Hadamard 融合。** [#24727](https://github.com/sgl-project/sglang/pull/24727)(Xinyi Song,05-09)**使用 `rope_rotate_activation` 融合 RoPE Hadamard**——消除了 CPU 侧的一次 launch 调用,改善了每步解码循环的 HBM 利用率。[#24249](https://github.com/sgl-project/sglang/pull/24249)(Xinyi Song,05-02)完成了类似的**融合 compress-decode** 内核。
+- **DSA 注意力(TileLang 索引器 + Triton 稀疏 MLA)。** [#24033](https://github.com/sgl-project/sglang/pull/24033)(Thomas Wang,04-29)将 TileLang 注意力路径移植至 ROCm;[#24050](https://github.com/sgl-project/sglang/pull/24050)(Thomas Wang,04-29)在 TileLang 中添加了**注意力索引器**;[#24930](https://github.com/sgl-project/sglang/pull/24930)(amd-danli103,05-11)引入了 **Triton 稀疏 MLA kernel**;[#25878](https://github.com/sgl-project/sglang/pull/25878)(05-20)和 [#25977](https://github.com/sgl-project/sglang/pull/25977)(jacky.cheng,05-22)分别将 prefill 和 extend 的 gather + attention 路径融合为单次调度。
+- **mHC 融合(多头压缩,逐 token 压缩路径)。** [#24355](https://github.com/sgl-project/sglang/pull/24355)(kk,05-04)"优化 mhc 性能";[#24424](https://github.com/sgl-project/sglang/pull/24424)(Thomas Wang,05-05)**压缩器逐元素 kernel 融合**;[#25020](https://github.com/sgl-project/sglang/pull/25020)(Xinyi Song,05-12)压缩器优化;[#25245](https://github.com/sgl-project/sglang/pull/25245)(jacky.cheng,05-15)**融合 softmax pool Triton kernel 用于压缩器**;[#25353](https://github.com/sgl-project/sglang/pull/25353)(Xinyi Song,05-15)"启用新压缩器路径";[#26014](https://github.com/sgl-project/sglang/pull/26014)(Xinyi Song,05-22)**低并发下的 Triton 融合 mhc_post_pre**。
+- **RoPE + Hadamard 融合。** [#24727](https://github.com/sgl-project/sglang/pull/24727)(Xinyi Song,05-09)**使用 `rope_rotate_activation` 融合 RoPE Hadamard**——消除了 CPU 侧的一次 launch 调用,改善了每步解码循环的 HBM 利用率。[#24249](https://github.com/sgl-project/sglang/pull/24249)(Xinyi Song,05-02)完成了类似的**融合 compress-decode** kernel。
- **MoE:FlyDSL + FP4 + 融合 hash topk。** [#24031](https://github.com/sgl-project/sglang/pull/24031)(kk,04-29)启用 **FP4 模型路径**;[#24728](https://github.com/sgl-project/sglang/pull/24728)(Xinyi Song,05-09)**融合 hash topk** 路由步骤;[#24971](https://github.com/sgl-project/sglang/pull/24971)(Thomas Wang,05-11)合入 **FlyDSL MoE 后端**用于 ROCm;[#25070](https://github.com/sgl-project/sglang/pull/25070)(Thomas Wang,05-12)添加了 swiglu-limit 密集 MoE / shared expert 路径。
-- **AITER 内核 + 其他融合。** 05-07 cherry-pick 了 AITER MHC 前/后处理修复([commit b639cb6](https://github.com/sgl-project/sglang/commit/b639cb6));[#25043](https://github.com/sgl-project/sglang/pull/25043)(jacky.cheng,05-12)**将注意力路径上的 input_layernorm 与 FP8 per-128 group 量化融合**;[#25251](https://github.com/sgl-project/sglang/pull/25251)(jacky.cheng,05-19)为全 greedy 采样使用 **AITER `greedy_sample`**;[#25097](https://github.com/sgl-project/sglang/pull/25097)(Raiden Makoto,05-13)**ROCm 上的 Triton 融合 store cache**;[#25375](https://github.com/sgl-project/sglang/pull/25375)(Thomas Wang,05-18)wqb 输入的 **rmsnorm_quant 融合**。
+- **AITER kernel + 其他融合。** 05-07 cherry-pick 了 AITER MHC 前/后处理修复([commit b639cb6](https://github.com/sgl-project/sglang/commit/b639cb6));[#25043](https://github.com/sgl-project/sglang/pull/25043)(jacky.cheng,05-12)**将注意力路径上的 input_layernorm 与 FP8 per-128 group 量化融合**;[#25251](https://github.com/sgl-project/sglang/pull/25251)(jacky.cheng,05-19)为全 greedy 采样使用 **AITER `greedy_sample`**;[#25097](https://github.com/sgl-project/sglang/pull/25097)(Raiden Makoto,05-13)**ROCm 上的 Triton 融合 store cache**;[#25375](https://github.com/sgl-project/sglang/pull/25375)(Thomas Wang,05-18)wqb 输入的 **rmsnorm_quant 融合**。
**InferenceX 配方迭代循环。** InferenceX 基准测试(benchmark)配方通过大约每 2–3 天一次的镜像更新吸收每一波上游改进:容器镜像从 `rocm/sgl-dev:v0.5.10rc0-rocm720-mi35x-20260414`(04-25,仅 FP8,配方需要 `SGLANG_HACK_FLASHMLA_BACKEND=torch` 才能编译)→ `rocm/sgl-dev:rocm720-mi35x-583b1b6-20260501-DSv4`(05-02,通过 `SGLANG_DSV4_FP4_EXPERTS=True` 启用 FP4)→ `a8410de6-20260502`(05-03,融合 compress-decode)→ `bfd32b6-20260507`(05-08,AITER MHC 前/后处理 + Triton SWA prepare)→ `0363e6c-20260509` → `b19052c-20260518`(05-19,稳定的 `lmsysorg/sglang:v0.5.12-rocm720-mi35x` 仓库,含 Triton 注意力后端、FlyDSL MoE、融合 hash topk)→ `8c3b5aa-20260521`(05-21 最终版)。镜像更新之间的配方调优收紧了 `--num-continuous-decode-steps`(4 → 8,+4.7%),将 `--max-running-requests` 和 `--cuda-graph-max-bs` 调整为矩阵并发值,并在 DP attention 配置上启用了 `--enable-prefill-delayer`。
@@ -147,7 +147,7 @@ DeepSeek 在预览发布时公布了 V4-Pro-Max 与 Claude Opus 4.6、GPT-5.4-xH
| 40 | _unreachable_ | _unreachable_ | _unreachable_ | 89 | 393 | _∞_ |
| 50 | _unreachable_ | _unreachable_ | _unreachable_ | _unreachable_ | 140 | _∞_ |
-核心结论是**从 2026-05-02 到 2026-05-21,在 10–20 tok/s/user 的服务区间内,等交互性下的每 GPU 吞吐量提升了 12–14 倍**。提升逐日期层层累加——每次镜像更新都将曲线再推高 1.6–4.4 倍。高交互性段(25+ tok/s/user)在 05-04 之后才完全打开,而 50 tok/s/user 仅在 05-21 配合最新的 FlyDSL MoE + 融合 hash topk 内核(`lmsysorg/sglang:v0.5.12-rocm720-mi35x`)后才可量测。
+核心结论是**从 2026-05-02 到 2026-05-21,在 10–20 tok/s/user 的服务区间内,等交互性下的每 GPU 吞吐量提升了 12–14 倍**。提升逐日期层层累加——每次镜像更新都将曲线再推高 1.6–4.4 倍。高交互性段(25+ tok/s/user)在 05-04 之后才完全打开,而 50 tok/s/user 仅在 05-21 配合最新的 FlyDSL MoE + 融合 hash topk kernel(`lmsysorg/sglang:v0.5.12-rocm720-mi35x`)后才可量测。
点击查看完整 InferenceX 仪表板 →
@@ -31,11 +31,11 @@ GLM-5 是智谱(ZAI)的 MoE 旗舰模型,于 2026-02-11 发布 — 距本
## 推动这一结果的关键优化
-AMD 方面的标志性性能优化之一是 [sgl-project/sglang PR #21511](https://github.com/sgl-project/sglang/pull/21511)(由 [HaiShaw](https://github.com/HaiShaw) 提交,2026-04-03 合入)。该 PR 通过 SGLang 的 TileLang 后端为 MI300/MI355 启用了 FP8 KV 缓存和 FP8 注意力内核(在 DeepSeek-V3.2 和 GLM-5 上均已测试),并针对不同硬件代际采用了不同的融合策略:
+AMD 方面的标志性性能优化之一是 [sgl-project/sglang PR #21511](https://github.com/sgl-project/sglang/pull/21511)(由 [HaiShaw](https://github.com/HaiShaw) 提交,2026-04-03 合入)。该 PR 通过 SGLang 的 TileLang 后端为 MI300/MI355 启用了 FP8 KV 缓存和 FP8 注意力 kernel(在 DeepSeek-V3.2 和 GLM-5 上均已测试),并针对不同硬件代际采用了不同的融合策略:
-- **在 MI355 上**,该 PR **复用了现有的 `fused_qk_rope_cat_and_cache_mla` 内核来同时处理 Q 和 KV 的 FP8 量化**。QK rope 拼接、MLA 缓存写入以及 Q 和 KV 的 FP8 量化全部合并到每个解码步骤的单次内核调用中 — 无需额外的 HBM 往返,无需单独的量化内核启动。
+- **在 MI355 上**,该 PR **复用了现有的 `fused_qk_rope_cat_and_cache_mla` kernel 来同时处理 Q 和 KV 的 FP8 量化**。QK rope 拼接、MLA 缓存写入以及 Q 和 KV 的 FP8 量化全部合并到每个解码步骤的单次 kernel 调用中 — 无需额外的 HBM 往返,无需单独的量化 kernel 启动。
-TileLang 依赖版本已更新以在 AMD 上启用 FP8 GEMM,并新增了 `sparse_mla_fwd_decode_partial_fp8` 内核用于部分解码归约路径。该 PR 报告 MI355 吞吐量提升超过 5%(MI300 超过 10%),gsm8k 准确率无下降(DeepSeek-V3.2 0.945 → 0.946;GLM-5 0.946 → 0.950),通过 `--kv-cache-dtype fp8_e4m3` 配合 TileLang 预填充/解码后端激活。
+TileLang 依赖版本已更新以在 AMD 上启用 FP8 GEMM,并新增了 `sparse_mla_fwd_decode_partial_fp8` kernel 用于部分解码归约路径。该 PR 报告 MI355 吞吐量提升超过 5%(MI300 超过 10%),gsm8k 准确率无下降(DeepSeek-V3.2 0.945 → 0.946;GLM-5 0.946 → 0.950),通过 `--kv-cache-dtype fp8_e4m3` 配合 TileLang 预填充/解码后端激活。
## 基准测试数据
@@ -142,7 +142,7 @@ TileLang 依赖版本已更新以在 AMD 上启用 FP8 GEMM,并新增了 `spar
## 致谢
-该方案的快速落地得益于 [Anush Elangovan](https://x.com/AnushElangovan)、[HaiShaw](https://github.com/HaiShaw) 及更广泛的 AMD AI 团队在 GLM-5 发布后 14 周内完成了上游 SGLang TileLang 融合 MLA + FP8 KV 内核的提交。SGLang 维护者在提交后数天内即完成了审查与合入。从上游到基准测试的闭环速度就是护城河。
+该方案的快速落地得益于 [Anush Elangovan](https://x.com/AnushElangovan)、[HaiShaw](https://github.com/HaiShaw) 及更广泛的 AMD AI 团队在 GLM-5 发布后 14 周内完成了上游 SGLang TileLang 融合 MLA + FP8 KV kernel 的提交。SGLang 维护者在提交后数天内即完成了审查与合入。从上游到基准测试的闭环速度就是护城河。
点击查看完整 InferenceX 仪表板 →
@@ -165,7 +165,7 @@ TileLang 依赖版本已更新以在 AMD 上启用 FP8 GEMM,并新增了 `spar
"name": "SGLang PR #21511 是什么?它如何帮助 MI355X 运行 GLM-5?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "sgl-project/sglang PR #21511(由 HaiShaw 提交,2026-04-03 合入)通过 SGLang 的 TileLang 后端为 AMD MI300 和 MI355 启用了 FP8 KV 缓存和 FP8 注意力内核,在 DeepSeek-V3.2 和 GLM-5 上均已测试。在 MI355 上,它复用了现有的 fused_qk_rope_cat_and_cache_mla 内核来同时处理 Q 和 KV 的 FP8 量化,将 QK rope 拼接、MLA 缓存写入以及 FP8 量化合并到每个解码步骤的单次内核调用中。在 MI300 上,使用独立的 Triton 内核 set_mla_kv_buffer_fp8_quant 处理 KV 缓存量化。该 PR 报告 MI355 吞吐量提升超过 5%(MI300 超过 10%),gsm8k 准确率无下降(GLM-5 0.946 → 0.950,DeepSeek-V3.2 0.945 → 0.946),通过 --kv-cache-dtype fp8_e4m3 配合 TileLang 预填充/解码后端激活。"
+ "text": "sgl-project/sglang PR #21511(由 HaiShaw 提交,2026-04-03 合入)通过 SGLang 的 TileLang 后端为 AMD MI300 和 MI355 启用了 FP8 KV 缓存和 FP8 注意力 kernel,在 DeepSeek-V3.2 和 GLM-5 上均已测试。在 MI355 上,它复用了现有的 fused_qk_rope_cat_and_cache_mla kernel 来同时处理 Q 和 KV 的 FP8 量化,将 QK rope 拼接、MLA 缓存写入以及 FP8 量化合并到每个解码步骤的单次 kernel 调用中。在 MI300 上,使用独立的 Triton kernel set_mla_kv_buffer_fp8_quant 处理 KV 缓存量化。该 PR 报告 MI355 吞吐量提升超过 5%(MI300 超过 10%),gsm8k 准确率无下降(GLM-5 0.946 → 0.950,DeepSeek-V3.2 0.945 → 0.946),通过 --kv-cache-dtype fp8_e4m3 配合 TileLang 预填充/解码后端激活。"
}
},
{
diff --git a/packages/app/content/blog/zh/mi355x-kimi-k2-5-vllm-aiter-7x-speedup.mdx b/packages/app/content/blog/zh/mi355x-kimi-k2-5-vllm-aiter-7x-speedup.mdx
index e76bf1bd5..7cbb5067e 100644
--- a/packages/app/content/blog/zh/mi355x-kimi-k2-5-vllm-aiter-7x-speedup.mdx
+++ b/packages/app/content/blog/zh/mi355x-kimi-k2-5-vllm-aiter-7x-speedup.mdx
@@ -28,9 +28,9 @@ tags:
Kimi K2.5 是一个 1T 参数的 MoE 模型,使用多头潜在注意力(MLA,Multi-head Latent Attention),这是 DeepSeek 在 V2 中引入的注意力变体。MLA 通过将 key 和 value 投影到共享潜空间来减少 KV 缓存占用。由此产生的每 rank 注意力头数取决于 tensor-parallel rank 数:TP=4 时 Kimi K2.5 为 16 头/rank,TP=8 时为 8 头/rank。
-AITER(AMD 面向 ROCm 的手动调优 AI Tensor Engine)在 CDNA4 上有优化的 MLA 内核路径,但 vLLM 的集成代码在 TP=8 时未能正确分发到该路径。AITER 的 MLA 解码内核围绕 `gqa_ratio=16` 的 ASM 路径构建,原生接受 16 头/rank(TP=4)和 128 头/rank,并拒绝中间值。在 Kimi K2.5 TP=8 的 8 头/rank 下,分发因头数断言失败而回退到 vLLM 的参考 TritonMLA 路径,该路径在 MXFP4 下比 AITER 慢很多。
+AITER(AMD 面向 ROCm 的手动调优 AI Tensor Engine)在 CDNA4 上有优化的 MLA kernel 路径,但 vLLM 的集成代码在 TP=8 时未能正确分发到该路径。AITER 的 MLA 解码 kernel 围绕 `gqa_ratio=16` 的 ASM 路径构建,原生接受 16 头/rank(TP=4)和 128 头/rank,并拒绝中间值。在 Kimi K2.5 TP=8 的 8 头/rank 下,分发因头数断言失败而回退到 vLLM 的参考 TritonMLA 路径,该路径在 MXFP4 下比 AITER 慢很多。
-PR #35850 在单次提交中完成了三项修改:通过头重复技巧(将 8 头填充到 16 头以使用现有的 `gqa_ratio=16` ASM 内核)支持 `num_heads < 16` 的 AITER MLA——这为 Kimi K2.5 TP=8 和 Kimi-Linear TP=16 解锁了性能;放宽了头数断言以接受 4、8 或 [16, 128] 内任意 16 的倍数;以及当使用 FP8 KV 缓存时自动从 TritonMLA 回退到 AITER MLA(TritonMLA 对 FP8 KV 抛出 `NotImplementedError`)。三项修改均随 vLLM 0.18 发布。此外,AMD 对 MoE 专家形态的 MXFP4 GEMM 自动调优也与该 PR 一起贡献了观测到的吞吐量提升。
+PR #35850 在单次提交中完成了三项修改:通过头重复技巧(将 8 头填充到 16 头以使用现有的 `gqa_ratio=16` ASM kernel)支持 `num_heads < 16` 的 AITER MLA——这为 Kimi K2.5 TP=8 和 Kimi-Linear TP=16 解锁了性能;放宽了头数断言以接受 4、8 或 [16, 128] 内任意 16 的倍数;以及当使用 FP8 KV 缓存时自动从 TritonMLA 回退到 AITER MLA(TritonMLA 对 FP8 KV 抛出 `NotImplementedError`)。三项修改均随 vLLM 0.18 发布。此外,AMD 对 MoE 专家矩阵形状(shape)的 MXFP4 GEMM 自动调优也与该 PR 一起贡献了观测到的吞吐量提升。
## 解读曲线
@@ -49,7 +49,7 @@ InferenceX 的基准测试结果在变化一落地就捕获到了:
| 3 月 26 日 | 32 | 8 | 1,255 | 27 ms | 36.4 | 6.5x |
| 3 月 26 日 | 64 | 8 | 1,647 | 43 ms | 23.3 | 4.7x |
-两个日期均使用 TP=8 以进行等条件对比。延迟下限从 152–199 ms 崩塌至 13–43 ms,覆盖整个批次曲线。
+两个日期均使用 TP=8 以进行等条件对比。延迟下限从 152–199 ms 骤降至 13–43 ms,覆盖整个批次曲线。
对于峰值吞吐量,修复后的最优配方切换到 TP=4,以少量低批次交互性为代价换取更高的每 GPU token 数:
@@ -67,7 +67,7 @@ InferenceX 的基准测试结果在变化一落地就捕获到了:
| 337 | 5.1(插值,约并发 62) | **78.9**(实测,并发 4) | **15.6x** |
| 380 | 4.9(外推) | 74.7(插值,约并发 5) | 15.2x |
-"最高 15 倍"的标题出现在 337 tok/s/GPU 处,v0.16 破损的延迟下限(152–199 ms TPOT,与批大小无关)与 v0.18 在并发 4 下 13 ms 的正常下限在此交汇。在该工作点上,vLLM v0.18 已能在 Kimi K2.5 推理上实现接近实时语音的延迟。
+"最高 15 倍"的标题出现在 337 tok/s/GPU 处,v0.16 异常的延迟下限(152–199 ms TPOT,与批大小无关)与 v0.18 在并发 4 下 13 ms 的正常下限在此交汇。在该工作点上,vLLM v0.18 已能在 Kimi K2.5 推理上实现接近实时语音的延迟。
点击查看完整 InferenceX 仪表板 →
@@ -99,7 +99,7 @@ AMD 已经展示了其能够在自有技术栈上交付生产级分离式推理
"name": "vLLM PR #35850 为 MI355X 上的 Kimi K2.5 修复了什么?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "vLLM PR #35850(2026 年 3 月 6 日合入)通过头重复技巧为 MI355X CDNA4 添加了 num_heads < 16 的 AITER MLA 支持,将 8 个头填充到 16 个后调用优化的 gqa_ratio=16 ASM 内核。这为 Kimi K2.5 TP=8(8 头/rank)和 Kimi-Linear TP=16(4 头/rank)解锁了性能。该 PR 还放宽了头数断言以接受 4、8 或 [16, 128] 内任意 16 的倍数,并在使用 FP8 KV 缓存时添加了从 TritonMLA 到 AITER MLA 的自动回退。修复前,TP=8 的 Kimi K2.5 回退到参考 Triton MLA 路径,在 MXFP4 下比 AITER 慢很多。该修复随 vLLM 0.18 发布。"
+ "text": "vLLM PR #35850(2026 年 3 月 6 日合入)通过头重复技巧为 MI355X CDNA4 添加了 num_heads < 16 的 AITER MLA 支持,将 8 个头填充到 16 个后调用优化的 gqa_ratio=16 ASM kernel。这为 Kimi K2.5 TP=8(8 头/rank)和 Kimi-Linear TP=16(4 头/rank)解锁了性能。该 PR 还放宽了头数断言以接受 4、8 或 [16, 128] 内任意 16 的倍数,并在使用 FP8 KV 缓存时添加了从 TritonMLA 到 AITER MLA 的自动回退。修复前,TP=8 的 Kimi K2.5 回退到参考 Triton MLA 路径,在 MXFP4 下比 AITER 慢很多。该修复随 vLLM 0.18 发布。"
}
},
{
diff --git a/packages/app/content/blog/zh/mi355x-qwen3-5-sglang-v0-5-12-up-to-17x.mdx b/packages/app/content/blog/zh/mi355x-qwen3-5-sglang-v0-5-12-up-to-17x.mdx
index 5e2e6738d..e73832a9a 100644
--- a/packages/app/content/blog/zh/mi355x-qwen3-5-sglang-v0-5-12-up-to-17x.mdx
+++ b/packages/app/content/blog/zh/mi355x-qwen3-5-sglang-v0-5-12-up-to-17x.mdx
@@ -1,7 +1,7 @@
---
title: 'AMD MI355X Qwen3.5 397B-A17B 推理:SGLang FP8 三个月内每 GPU 吞吐量提升最高 19 倍'
-subtitle: '从 v0.5.8(2 月)→ v0.5.10rc0(4 月)→ v0.5.12(5 月),三次 AITER 内核合入 MI355X 加上从 TP=8 到 TP=2/TP=4 的重新调优,将 Qwen3.5 8k/1k 峰值从 1.3k 推高至 6.4k tok/s/GPU,并将曲线延伸至 75 tok/s/user'
-seoDescription: 'AMD MI355X 在 SGLang FP8 上 3 个月内将 Qwen3.5 397B-A17B 每 GPU 吞吐量最高提升 19 倍——经 AITER 内核从 1.3k 提升至 6.4k tok/s/GPU。'
+subtitle: '从 v0.5.8(2 月)→ v0.5.10rc0(4 月)→ v0.5.12(5 月),三次 AITER kernel 合入 MI355X 加上从 TP=8 到 TP=2/TP=4 的重新调优,将 Qwen3.5 8k/1k 峰值从 1.3k 推高至 6.4k tok/s/GPU,并将曲线延伸至 75 tok/s/user'
+seoDescription: 'AMD MI355X 在 SGLang FP8 上 3 个月内将 Qwen3.5 397B-A17B 每 GPU 吞吐量最高提升 19 倍——经 AITER kernel 从 1.3k 提升至 6.4k tok/s/GPU。'
date: '2026-05-25'
publishDate: '2026-05-25'
tags:
@@ -15,7 +15,7 @@ tags:
- rocm
---
-阿里巴巴于 [2026-02-16 发布 Qwen3.5-397B-A17B](https://www.alibabacloud.com/blog/602894) 后 13 周,AMD MI355X 上 SGLang FP8 在 8k/1k 工作负载下的每 GPU 吞吐量在 40 tok/s/user 的等交互性下**最高提升至 19.0 倍**(在仪表板的单调三次 Hermite Pareto 插值上,从 2026-02-20 v0.5.8.post1 基线的 192 tok/s/GPU 提升至 2026-05-19 v0.5.12 运行的 3,660 tok/s/GPU)。这一增长叠加了三个 SGLang 版本以及三次 AITER MoE 内核合入带来的大部分提升,5 月的 v0.5.10rc0 → v0.5.12 镜像升级又在此基础上额外贡献了约 **1.5 倍**。
+阿里巴巴于 [2026-02-16 发布 Qwen3.5-397B-A17B](https://www.alibabacloud.com/blog/602894) 后 13 周,AMD MI355X 上 SGLang FP8 在 8k/1k 工作负载下的每 GPU 吞吐量在 40 tok/s/user 的等交互性下**最高提升至 19.0 倍**(在仪表板的单调三次 Hermite Pareto 插值上,从 2026-02-20 v0.5.8.post1 基线的 192 tok/s/GPU 提升至 2026-05-19 v0.5.12 运行的 3,660 tok/s/GPU)。这一增长叠加了三个 SGLang 版本以及三次 AITER MoE kernel 合入带来的大部分提升,5 月的 v0.5.10rc0 → v0.5.12 镜像升级又在此基础上额外贡献了约 **1.5 倍**。
这完全是软件优化——全程使用相同的 MI355X CDNA4 硅片,TCO 始终为 $1.48/GPU/hr。相关记录:[sgl-project/sglang#20736](https://github.com/sgl-project/sglang/pull/20736)、[sgl-project/sglang#21188](https://github.com/sgl-project/sglang/pull/21188) 和 [sgl-project/sglang#21421](https://github.com/sgl-project/sglang/pull/21421),均在 3–4 月合入,且均通过 `SGLANG_USE_AITER=1` 开关控制。上游到基准测试的闭环速度本身就是护城河。
@@ -36,9 +36,9 @@ Qwen3.5-397B-A17B 是阿里巴巴的 MoE 旗舰模型,于 2026-02-16 发布,
带来这些巨大性能提升的部分优化包括:
-- **[sgl-project/sglang PR #20736](https://github.com/sgl-project/sglang/pull/20736)**,由 [zhentaocc](https://github.com/zhentaocc) 提交(合著者 [yichiche](https://github.com/yichiche)),2026-04-15 合入——**在 Qwen2 MoE 和 Qwen3.5 MoE 中将共享专家与路由专家融合**。当 `shared_expert_intermediate_size == moe_intermediate_size` 时,共享专家被视为额外的一个专家(top-K + 1),在单次 AITER MoE 分发中一并处理。每个 MoE 层减少一次内核启动,共享专家权重的 HBM 往返次数也减少。据报告在 Qwen3.5 并发 16 时总吞吐量提升 +4.6%,TPOT 降低 -4%;FP8 精度最初需要 AITER split-K 修复后才能启用。
-- **[sgl-project/sglang PR #21188](https://github.com/sgl-project/sglang/pull/21188)**,由 [yichiche](https://github.com/yichiche) 提交,2026-03-23 合入——**为 `GemmaRMSNorm` 添加 `forward_hip` 路径,使 AMD GPU 使用融合 RMSNorm 内核(AITER `fused_add_rms_norm` / `rms_norm`)而非原生回退路径**。原生路径在 MI355X 上受标量运算限制;融合路径将 Gemma 风格的 `weight + 1.0` 偏移吸收进内核中。据报告在 8x MI355X、并发 1、8k/1k 下:**中位端到端延迟降低 -23.1%,总吞吐量提升 +30.0%,中位首 token 延迟(TTFT)降低 -17.0%**,同时 GSM8K 精度从 0.943 提升至 0.955。
-- **[sgl-project/sglang PR #21421](https://github.com/sgl-project/sglang/pull/21421)**,由 [zhentaocc](https://github.com/zhentaocc) 提交,2026-03-26 合入——**将 AITER 的 `fused_topk` 内核集成到 SGLang 的 `fused_topk` 中,用于 softmax 评分的 MoE top-K 选择**。启用 AITER 时自动分发到 `aiter.fused_moe.fused_topk`。内核微基准测试显示:在 Qwen3.5 形态(E=512, top-K=10)上比 sgl-kernel 基线快约 1.31x 到 **6.29x**,在高 token 数下增益最大。端到端 bs=64 1k/1k 下:总吞吐量提升 +1.9%,GSM8K 精度与基线偏差在 ±0.001 以内。
+- **[sgl-project/sglang PR #20736](https://github.com/sgl-project/sglang/pull/20736)**,由 [zhentaocc](https://github.com/zhentaocc) 提交(合著者 [yichiche](https://github.com/yichiche)),2026-04-15 合入——**在 Qwen2 MoE 和 Qwen3.5 MoE 中将共享专家与路由专家融合**。当 `shared_expert_intermediate_size == moe_intermediate_size` 时,共享专家被视为额外的一个专家(top-K + 1),在单次 AITER MoE 分发中一并处理。每个 MoE 层减少一次 kernel 启动,共享专家权重的 HBM 往返次数也减少。据报告在 Qwen3.5 并发 16 时总吞吐量提升 4.6%,TPOT 降低 4%;FP8 精度最初需要 AITER split-K 修复后才能启用。
+- **[sgl-project/sglang PR #21188](https://github.com/sgl-project/sglang/pull/21188)**,由 [yichiche](https://github.com/yichiche) 提交,2026-03-23 合入——**为 `GemmaRMSNorm` 添加 `forward_hip` 路径,使 AMD GPU 使用融合 RMSNorm kernel(AITER `fused_add_rms_norm` / `rms_norm`)而非原生回退路径**。原生路径在 MI355X 上受标量运算限制;融合路径将 Gemma 风格的 `weight + 1.0` 偏移吸收进 kernel 中。据报告在 8x MI355X、并发 1、8k/1k 下:**中位端到端延迟降低 23.1%,总吞吐量提升 30.0%,中位首 token 延迟(TTFT)降低 17.0%**,同时 GSM8K 精度从 0.943 提升至 0.955。
+- **[sgl-project/sglang PR #21421](https://github.com/sgl-project/sglang/pull/21421)**,由 [zhentaocc](https://github.com/zhentaocc) 提交,2026-03-26 合入——**将 AITER 的 `fused_topk` kernel 集成到 SGLang 的 `fused_topk` 中,用于 softmax 评分的 MoE top-K 选择**。启用 AITER 时自动分发到 `aiter.fused_moe.fused_topk`。kernel 微基准测试显示:在 Qwen3.5 形态(E=512, top-K=10)上比 sgl-kernel 基线快约 1.31x 到 **6.29x**,在高 token 数下增益最大。端到端 bs=64 1k/1k 下:总吞吐量提升 1.9%,GSM8K 精度与基线偏差在 ±0.001 以内。
## 测试数据
@@ -149,7 +149,7 @@ Qwen3.5-397B-A17B 是阿里巴巴的 MoE 旗舰模型,于 2026-02-16 发布,
"name": "哪些 SGLang PR 推动了 MI355X Qwen3.5 的加速?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "三个由 AMD 编写、通过 SGLANG_USE_AITER=1 开关控制的上游 PR 被纳入 v0.5.10rc0 镜像。PR #20736(zhentaocc 提交,2026-04-15 合入)在 Qwen2/Qwen3.5 MoE 中将共享专家与路由专家融合为单次 AITER 分发中的 topk+1。PR #21188(yichiche 提交,2026-03-23 合入)为 GemmaRMSNorm 添加 forward_hip 路径,使 AMD GPU 使用融合 RMSNorm 内核(AITER fused_add_rms_norm / rms_norm)而非原生回退路径,据报告在 8k/1k 并发 1 下端到端延迟降低 -23.1%,吞吐量提升 +30.0%。PR #21421(zhentaocc 提交,2026-03-26 合入)将 AITER 的 fused_topk 内核集成到 SGLang 的 fused_topk 中用于 softmax MoE top-K 选择,内核微基准测试在 Qwen3.5 形态上比 sgl-kernel 基线快 1.31x 到 6.29x。"
+ "text": "三个由 AMD 编写、通过 SGLANG_USE_AITER=1 开关控制的上游 PR 被纳入 v0.5.10rc0 镜像。PR #20736(zhentaocc 提交,2026-04-15 合入)在 Qwen2/Qwen3.5 MoE 中将共享专家与路由专家融合为单次 AITER 分发中的 topk+1。PR #21188(yichiche 提交,2026-03-23 合入)为 GemmaRMSNorm 添加 forward_hip 路径,使 AMD GPU 使用融合 RMSNorm kernel(AITER fused_add_rms_norm / rms_norm)而非原生回退路径,据报告在 8k/1k 并发 1 下端到端延迟降低 23.1%,吞吐量提升 30.0%。PR #21421(zhentaocc 提交,2026-03-26 合入)将 AITER 的 fused_topk kernel 集成到 SGLang 的 fused_topk 中用于 softmax MoE top-K 选择,kernel 微基准测试在 Qwen3.5 形态上比 sgl-kernel 基线快 1.31x 到 6.29x。"
}
},
{
@@ -157,7 +157,7 @@ Qwen3.5-397B-A17B 是阿里巴巴的 MoE 旗舰模型,于 2026-02-16 发布,
"name": "从 TP=8 切换到 TP=2/TP=4 带来了多少增益?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "2026 年 4 月的 InferenceX 配方更新将 TP 重新调优、v0.5.10rc0 镜像升级和 AITER PR 打包为一次变更,因此从公开的 InferenceX 数据集无法将它们完全分离。可以确定的是:TP=8 在 Qwen3.5 的 512 专家 MoE 分发路径上浪费了 MI355X 大部分的 tensor-core 算力,而 TP=2 / TP=4 将解码批次分配到更少的 rank 上以保持 AITER 融合 MoE 分发的高效运行。TP 重新调优是 AITER 内核优化在端到端层面得以体现的必要条件。"
+ "text": "2026 年 4 月的 InferenceX 配方更新将 TP 重新调优、v0.5.10rc0 镜像升级和 AITER PR 打包为一次变更,因此从公开的 InferenceX 数据集无法将它们完全分离。可以确定的是:TP=8 在 Qwen3.5 的 512 专家 MoE 分发路径上浪费了 MI355X 大部分的 tensor-core 算力,而 TP=2 / TP=4 将解码批次分配到更少的 rank 上以保持 AITER 融合 MoE 分发的高效运行。TP 重新调优是 AITER kernel 优化在端到端层面得以体现的必要条件。"
}
},
{
diff --git a/packages/app/content/blog/zh/minimax-m3-agentx-b200-b300-vs-rack-scale.mdx b/packages/app/content/blog/zh/minimax-m3-agentx-b200-b300-vs-rack-scale.mdx
index 37164b1da..c0faa19d4 100644
--- a/packages/app/content/blog/zh/minimax-m3-agentx-b200-b300-vs-rack-scale.mdx
+++ b/packages/app/content/blog/zh/minimax-m3-agentx-b200-b300-vs-rack-scale.mdx
@@ -30,7 +30,7 @@ tags:
## 没有人在使用上下文并行
-尽管 p90 输入序列长度达到 317k token,目前仍没有任何提交使用[上下文并行](/zh/glossary/context-parallelism)。这恰恰是该技术存在的意义所在,因此这种缺席需要解释。
+尽管 p90 输入序列长度达到 317k token,目前仍没有任何提交使用[上下文并行](/zh/glossary/context-parallelism)。这恰恰是该技术所针对的场景,因此这种缺席需要解释。
M3 只有 4 个 KV head,即使在 TP8 下 DCP 也最多只能到 2;而且 MSA indexer 还需要单独的上下文并行处理,相关 vLLM PR 已经提交。因此这个上限是架构层面的,而不是调优疏忽,它也限定了长上下文并行策略在这个模型上能带来多少收益。
@@ -38,7 +38,7 @@ M3 只有 4 个 KV head,即使在 TP8 下 DCP 也最多只能到 2;而且 MS
NVIDIA 所有 Pareto 最优点在并发 20 以上都启用了 [KV offload](/zh/glossary/kv-cache-offload)。而 AMD 的 Pareto 最优点没有一个使用 DRAM KV offload;在其他模型上,AMD 使用 offload 的比例也低于 NVIDIA。
-原因很机械:AMD vLLM 上 CPU KV cache offload 所需的 GPU 到 CPU 传输效率极低,因为 hipMemcpyBatchAsync API 直到 ROCm 7.14 才提供。没有它,vLLM 原生的 simple CPU offloading 只能做串行 memcpy,而无法把多次拷贝合并成更大的消息。
+原因在于实现机制:AMD vLLM 上 CPU KV cache offload 所需的 GPU 到 CPU 传输效率极低,因为 hipMemcpyBatchAsync API 直到 ROCm 7.14 才提供。没有它,vLLM 原生的 simple CPU offloading 只能做串行 memcpy,而无法把多次拷贝合并成更大的消息。
-性能提升在低并发下最为显著。在并发数 4 和 8 时,解码循环的每步耗时中有相当比例花在 Python 调度器和内核分发代码上而非矩阵乘法中,因此 0.5.6 的调度器和计算图优化效果最为直接。在高并发下 tensor core 接近饱和,较小的吞吐量提升(并发数 64 为 1.03 倍,并发数 128 为 1.16 倍)来自重构后的注意力内核路径。
+性能提升在低并发下最为显著。在并发数 4 和 8 时,解码循环的每步耗时中有相当比例花在 Python 调度器和 kernel 分发代码上而非矩阵乘法中,因此 0.5.6 的调度器和计算图优化效果最为直接。在高并发下 tensor core 接近饱和,较小的吞吐量提升(并发数 64 为 1.03 倍,并发数 128 为 1.16 倍)来自重构后的注意力 kernel 路径。
## SGLang 0.5.6 中的关键更新
-[SGLang 0.5.6](https://github.com/sgl-project/sglang/releases/tag/v0.5.6) 于 2025-12-03 发布。三项更新与低并发吞吐量提升直接相关。分段 CUDA graph 支持扩展到了 DeepSeek V3 和 MLA 注意力路径,减少了构建和回放计算图的每步 Python 开销。事件循环在 PD 分离式、重叠式和 DP 注意力服务模式间统一,降低了内部循环开销。引入了 JIT 内核,减少了启动成本并允许内核编译针对运行时观察到的形状进行特化。
+[SGLang 0.5.6](https://github.com/sgl-project/sglang/releases/tag/v0.5.6) 于 2025-12-03 发布。三项更新与低并发吞吐量提升直接相关。分段 CUDA graph 支持扩展到了 DeepSeek V3 和 MLA 注意力路径,减少了构建和回放计算图的每步 Python 开销。事件循环在 PD 分离式、重叠式和 DP 注意力服务模式间统一,降低了内部循环开销。引入了 JIT kernel,减少了启动成本并允许 kernel 编译针对运行时观察到的形状进行特化。
-另外三项 0.5.6 更新影响注意力内核路径。MHA 和 MLA KV 缓存重构以支持 FP4。FlashInfer TRTLLM GEN MHA 路径重新启用。FlashInfer 更新至 0.5.2。这些在高并发下更为重要,此时 KV 缓存较大且注意力计算是主要开销。并发数 128 下的 1.16 倍提升即来自此路径。
+另外三项 0.5.6 更新影响注意力 kernel 路径。MHA 和 MLA KV 缓存重构以支持 FP4。FlashInfer TRTLLM GEN MHA 路径重新启用。FlashInfer 更新至 0.5.2。这些在高并发下更为重要,此时 KV 缓存较大且注意力计算是主要开销。并发数 128 下的 1.16 倍提升即来自此路径。
## 基准测试数据
@@ -64,7 +64,7 @@ B200 SGLang,DeepSeek R1 NVFP4,TP 4 / EP 4 解码,16 GPU 非分离式资源
## 各项优化在曲线上的作用位置
-TP 4 / EP 4 配置下 DeepSeek R1 NVFP4 的解码有固定的每步开销。内核启动、Python 调度器处理和计算图构建是主要贡献项,与注意力和 MoE GEMM 计算并列。在并发数 4 时,GEMM 规模较小,固定开销占步骤耗时的比例显著。减少固定开销直接加速了每步执行,这就是最大提升比(并发数 4 为 1.79 倍,并发数 8 为 1.59 倍)出现在低并发的原因。分段 CUDA graph 和 JIT 内核是相关的发布项。
+TP 4 / EP 4 配置下 DeepSeek R1 NVFP4 的解码有固定的每步开销。kernel 启动、Python 调度器处理和计算图构建是主要贡献项,与注意力和 MoE GEMM 计算并列。在并发数 4 时,GEMM 规模较小,固定开销占步骤耗时的比例显著。减少固定开销直接加速了每步执行,这就是最大提升比(并发数 4 为 1.79 倍,并发数 8 为 1.59 倍)出现在低并发的原因。分段 CUDA graph 和 JIT kernel 是相关的发布项。
在并发数 128 时,KV 缓存较大,注意力计算是每步的主要开销。重构后的 MHA 和 MLA KV 缓存对 FP4 的支持以及重新启用的 FlashInfer TRTLLM GEN MHA 路径在并发数 128 下产生了 1.16 倍的提升,尽管调度器开销的减少在此并发量级已趋于平坦。在中等并发数(16、32、64)下,两种效果均不占主导,吞吐量提升较小且不太稳定(1.02 倍、1.33 倍、1.03 倍)。
@@ -89,7 +89,7 @@ TP 4 / EP 4 配置下 DeepSeek R1 NVFP4 的解码有固定的每步开销。内
"name": "SGLang 0.5.6 中哪些变更带来了性能提升?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "三项更新在低并发下贡献最大。分段 CUDA graph 支持扩展到了 DeepSeek V3 和 MLA 注意力路径,减少了每步 Python 和内核启动开销。事件循环在 PD 分离式、重叠式和 DP 注意力服务模式间统一,收紧了内部解码循环。引入了 JIT 内核,降低了启动成本并允许内核编译针对运行时观察到的形状进行特化。MHA 和 MLA KV 缓存重构以支持 FP4,FlashInfer 更新至 0.5.2,这些提高了注意力内核的上限,但对低并发吞吐量提升贡献较小。"
+ "text": "三项更新在低并发下贡献最大。分段 CUDA graph 支持扩展到了 DeepSeek V3 和 MLA 注意力路径,减少了每步 Python 和 kernel 启动开销。事件循环在 PD 分离式、重叠式和 DP 注意力服务模式间统一,收紧了内部解码循环。引入了 JIT kernel,降低了启动成本并允许 kernel 编译针对运行时观察到的形状进行特化。MHA 和 MLA KV 缓存重构以支持 FP4,FlashInfer 更新至 0.5.2,这些提高了注意力 kernel 的上限,但对低并发吞吐量提升贡献较小。"
}
},
{
@@ -97,7 +97,7 @@ TP 4 / EP 4 配置下 DeepSeek R1 NVFP4 的解码有固定的每步开销。内
"name": "为什么 0.5.6 的性能提升在低并发下最大?",
"acceptedAnswer": {
"@type": "Answer",
- "text": "调度器和内核启动开销在小批量时占每个解码步骤的比例更大。在 8k/1k 并发数 4 下,MoE GEMM 形状较小,每步固定开销占解码步骤的比例显著,因此分段 CUDA graph 和 JIT 内核的变更带来了明显的 1.79 倍提升。在中等并发(16 至 64)时,调度器优化的收益减弱而注意力内核尚未成为主导,提升比率较小且不太稳定。在并发数 128 时 KV 缓存较大,注意力计算主导了每步耗时,重构的 MHA 和 MLA KV 缓存加上重新启用的 FlashInfer TRTLLM GEN MHA 路径带来了 1.16 倍的提升。"
+ "text": "调度器和 kernel 启动开销在小批量时占每个解码步骤的比例更大。在 8k/1k 并发数 4 下,MoE GEMM 形状较小,每步固定开销占解码步骤的比例显著,因此分段 CUDA graph 和 JIT kernel 的变更带来了明显的 1.79 倍提升。在中等并发(16 至 64)时,调度器优化的收益减弱而注意力 kernel 尚未成为主导,提升比率较小且不太稳定。在并发数 128 时 KV 缓存较大,注意力计算主导了每步耗时,重构的 MHA 和 MLA KV 缓存加上重新启用的 FlashInfer TRTLLM GEN MHA 路径带来了 1.16 倍的提升。"
}
},
{
diff --git a/packages/app/content/blog/zh/sparse-savings-persistent-demand-inside-glm53.mdx b/packages/app/content/blog/zh/sparse-savings-persistent-demand-inside-glm53.mdx
index fd785a6aa..dc21783a5 100644
--- a/packages/app/content/blog/zh/sparse-savings-persistent-demand-inside-glm53.mdx
+++ b/packages/app/content/blog/zh/sparse-savings-persistent-demand-inside-glm53.mdx
@@ -97,7 +97,7 @@ GLM 5.2 / 5.3 的注意力架构降低了内存需求,但长时间运行的智
### TileRT
-TileRT 对 GLM5.3 的支持首先落地于 AMD MI355X。TileRT 是一种低延迟 LLM 推理引擎,将 decode 编译成单个持久化内核,减少内核启动开销,并让计算、内存访问和通信重叠。
+TileRT 对 GLM5.3 的支持首先落地于 AMD MI355X。TileRT 是一种低延迟 LLM 推理引擎,将 decode 编译成单个持久化 kernel,减少 kernel 启动开销,并让计算、内存访问和通信重叠。
它优先提高单用户 token 生成速度,而非追求最大批处理吞吐量;prefill 则由 vLLM 处理。
@@ -138,7 +138,7 @@ lightning indexer 在功能上类似**轻量级注意力机制**。query 和 key
### 稀疏 MLA
-[我们在 Kimi K3 文章中解释过](https://newsletter.semianalysis.com/i/209189055/multi-head-latent-attention),MLA 有 Multi-Head Attention(MHA)和 Multi-Query Attention(MQA)两种运行模式。两者各有取舍:MHA 的 FLOPs 较少,但内存成本是 42 倍;MQA 的内存成本较低,但 FLOPs 最多达到 3.4 倍。DSA 使用 MQA 模式,因为稀疏注意力关注的 token 更少,可以缓解其较高的计算量。不过,实际存在一个序列长度阈值,低于该阈值时 MHA 反而更高效。直观上,较短序列下内存加载时间的主导性较弱,FLOPs 较少的 MHA 就可能占优。vLLM 实现了这一机制:数据并行时,序列长度从 2K 到约 5K 使用 MHA;张量并行时,则从 2K 到约 77K 使用 MHA。下限设为 2K,是因为 top K 为 2048,而低于 2K 时使用稠密注意力。
+[我们在 Kimi K3 文章中解释过](https://newsletter.semianalysis.com/i/209189055/multi-head-latent-attention),MLA 有 Multi-Head Attention(MHA)和 Multi-Query Attention(MQA)两种运行模式。两者各有取舍:MHA 的 FLOPs 较少,但内存成本是 MQA 的 42 倍;MQA 的内存成本较低,但 FLOPs 最多为 MHA 的 3.4 倍。DSA 使用 MQA 模式,因为稀疏注意力关注的 token 更少,可以缓解其较高的计算量。不过,实际存在一个序列长度阈值,低于该阈值时 MHA 反而更高效。直观上,较短序列下内存加载时间的主导性较弱,FLOPs 较少的 MHA 就可能占优。vLLM 实现了这一机制:数据并行时,序列长度从 2K 到约 5K 使用 MHA;张量并行时,则从 2K 到约 77K 使用 MHA。下限设为 2K,是因为 top K 为 2048,而低于 2K 时使用稠密注意力。
-在原始性能曲线的大部分区间里,TPU 并没有超过 NVIDIA GPU。但这种对比没有考虑 TPU 更低的 TCO。**TPU 的买家真正关心的是能赚多少收入,也就是每美元性能和每瓦性能。**
+在原始性能曲线的大部分区间里,TPU 并没有超过 NVIDIA GPU。但这种对比没有考虑 TPU 更低的 TCO。**TPU 的买家主要关心的是能赚多少收入,也就是每美元性能和每瓦性能。**
即便如此,在 20 tok/s/user 的交互速度下,Ironwood 在原始吞吐量上同样领先:达到 9,364 total tokens/s/chip,B200 为 8,903,B300 为 8,925。在这些运行中,这比两款 GPU 都高出约 5%。再叠加更低的建模小时成本,Ironwood 的每美元 token 数比 B200 多 50.4%,比 B300 多 96.0%。
@@ -127,7 +127,7 @@ Google 在内部生产环境中运行分离式推理已有多年,那条路径
点击查看完整 InferenceX 仪表板 →
-## 全新原生、一等公民的 TorchTPU 后端对比此前的 TorchAX 软件栈
+## 推理服务:全新原生、一等公民的 TorchTPU 后端对比此前的 TorchAX 软件栈
### 此前的 TorchAX vLLM 后端
@@ -139,7 +139,7 @@ vLLM 对 TPU 的支持经历了三个阶段:
- 当前公开的后端 [tpu-inference](https://vllm.ai/blog/2025-10-16-vllm-tpu) 在有针对 TPU 优化的 JAX 实现时优先使用它;否则由 TorchAX 把原始 PyTorch 模型翻译成 JAX 可以执行的算子。目标是复用成熟的 TPU 原语和并行支持,而不必重写每一个 PyTorch 模型。
- 即将推出的第三种设计 TorchTPU,让 vLLM 把 TPU 当作原生 PyTorch 设备。它将成为今后 SGLang 和 vLLM 在 TPU 上的首选后端。
-下图聚焦第二阶段,展示了 vLLM 的 tpu-inference 后端如何把直接的 JAX 模型与通过 TorchAX 运行的 PyTorch 模型结合起来。
+下图聚焦第二阶段,展示了 vLLM 的 tpu-inference 后端如何把直接以 JAX 实现的模型与通过 TorchAX 运行的 PyTorch 模型结合起来。
-RPA v3 的 block 大小启发式规则也有类似的盲点。在 v7x 的 decode 阶段,它把 KV 计算 block 设为与 KV 读取 block 相同,约 16k 个 token,几乎没有给预取缓冲区留下任何 VMEM。[把两者拆开](https://github.com/vllm-project/tpu-inference/pull/3102)后,KV 读取 block 保持 16k 个 token,计算 block 缩小到 4k。这给了流水线在 MXU 之前跑起来的空间,使 decode 吞吐量从 64.9k 提升到 96.3k tokens/s,提升 49%,并在 Qwen3-0.6B 上通过四次运行复现。在 block 大小的扫描中,吞吐量呈现出干净的倒 U 形曲线。由于调优参数表为每种形状只存一个 block 大小,无法表达这一改进,因此该改动最初以环境变量覆盖的形式落地。后续改动扩展了该表,以分别保存读取和计算两个大小。
+RPA v3 的 block 大小启发式规则也有类似的盲点。在 v7x 的 decode 阶段,它把 KV 计算 block 设为与 KV 读取 block 相同,约 16k 个 token,几乎没有给预取缓冲区留下任何 VMEM。[把两者拆开](https://github.com/vllm-project/tpu-inference/pull/3102)后,KV 读取 block 保持 16k 个 token,计算 block 缩小到 4k。这给了流水线在 MXU 之前跑起来的空间,使 decode 吞吐量从 64.9k 提升到 96.3k tokens/s,提升 49%,并在 Qwen3-0.6B 上通过四次运行复现。在 block 大小的扫描中,吞吐量呈现出清晰的倒 U 形曲线。由于调优参数表为每种形状只存一个 block 大小,无法表达这一改进,因此该改动最初以环境变量覆盖的形式落地。后续改动扩展了该表,以分别保存读取和计算两个大小。
-从图中可以看到,GB300 NVL72 唯一的 MiniMax-M3 AgentX 曲线来自较早的运行,前沿从 99 tok/s/user 才开始,因此没有可与 Vera Rubin 每美元 136.6M token 的峰值对比的 GB300 NVL72 高吞吐点。在另一端,Vera Rubin 的 10-GPU 分离式配置可达 483 tok/s/user。
+从图中可以看到,GB300 NVL72 唯一的 MiniMax-M3 AgentX 曲线来自较早的运行,前沿从 99 tok/s/user 才开始,因此 GB300 NVL72 没有可与 Vera Rubin 每美元 136.6M token 峰值对比的高吞吐点。在另一端,Vera Rubin 的 10-GPU 分离式配置可达 483 tok/s/user。
数值为每 1 美元 TCO 的 M token 数,GB300 各行均运行 Dynamo vLLM,比值为 Vera Rubin / GB300。
diff --git a/packages/app/content/models/zh/deepseek-v41-flash.mdx b/packages/app/content/models/zh/deepseek-v41-flash.mdx
index bfc9558d1..733c05ce9 100644
--- a/packages/app/content/models/zh/deepseek-v41-flash.mdx
+++ b/packages/app/content/models/zh/deepseek-v41-flash.mdx
@@ -21,6 +21,6 @@ DeepSeek-V4.1-Flash 是原生支持图像与文本输入的 MoE 模型,采用
上述维度以及 3 层 next-token prediction 配置均可在[公开配置](https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash/raw/main/config.json)中核对。[模型卡](https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash)解释了 prefill 与 decode 激活参数量不同的原因,不能用单一数值代替。
-## 推理数据范围
+## 推理服务范围
模型以 MIT 许可证发布。厂商报告的 FP4 KV cache 占用和有界 SWA replay 属于架构特性;InferenceX 的实测性能取决于实际 checkpoint、推理引擎及运行配置,不能只根据参数量推导速度提升([模型卡](https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash))。
diff --git a/packages/app/content/models/zh/muse-spark-open.mdx b/packages/app/content/models/zh/muse-spark-open.mdx
index 0e588c521..412770f53 100644
--- a/packages/app/content/models/zh/muse-spark-open.mdx
+++ b/packages/app/content/models/zh/muse-spark-open.mdx
@@ -20,6 +20,6 @@ Muse Spark Open 是 Meta 面向代码与智能体任务发布的开放权重模
上述层数与张量维度来自 [AMD 发布的 checkpoint 配置](https://huggingface.co/amd/Muse-Spark-Open-816B-A42B-Quark-MXFP4/raw/main/config.json)与 [Transformers 实现文档](https://huggingface.co/docs/transformers/v5.20.0/en/model_doc/muse_spark)。Meta 的原始 checkpoint 配置需要申请访问权限,因此这里列出上述公开来源以说明数据出处,而不暗示该文件可以自由获取。
-## Checkpoint 与数据范围
+## Checkpoint 与适用范围
Meta 以 Muse Model License 发布 BF16 和 NVFP4 checkpoint,AMD 另行发布 MXFP4 checkpoint。816B 是厂商公布的标称参数量,与仓库中的张量统计值不同,引用时应保留其原本的统计口径。架构说明属于静态元数据;下方 InferenceX 图表展示实测的推理性能([Meta 文档](https://dev.meta.ai/docs/muse-spark-open))。
diff --git a/packages/app/src/lib/blog/blog-content.test.ts b/packages/app/src/lib/blog/blog-content.test.ts
index 00b72ea75..149083926 100644
--- a/packages/app/src/lib/blog/blog-content.test.ts
+++ b/packages/app/src/lib/blog/blog-content.test.ts
@@ -1,5 +1,7 @@
import fs from 'node:fs';
import path from 'node:path';
+import { compileMDX } from 'next-mdx-remote/rsc';
+import { renderToStaticMarkup } from 'react-dom/server';
import { describe, expect, it } from 'vitest';
import { compareBlogPair } from '../i18n/zh-objective-guard';
@@ -86,3 +88,25 @@ describe.each(enFiles)('%s', (file) => {
}
});
});
+
+describe('Chinese technical Markdown rendering', () => {
+ it('renders every multiplication factor in the workflow job calculation', async () => {
+ const source = read(path.join(ZH_DIR, 'inferencemax-open-source-inference-benchmarking.mdx'));
+ const paragraph = source.split('\n\n').find((block) => block.startsWith('具体来说:'));
+ expect(paragraph).toBeDefined();
+ const { content } = await compileMDX({ source: paragraph! });
+ const html = renderToStaticMarkup(content);
+ expect(html).toContain('3 * 7 * 3 * 2 * 4 * 4 = 2016');
+ expect(html).not.toContain('');
+ });
+
+ it('preserves underscores and the wildcard in the SGLang optimization flag', async () => {
+ const source = read(path.join(ZH_DIR, 'mi355x-deepseek-v4-pro-sglang-110x-in-26-days.mdx'));
+ const paragraph = source
+ .split('\n')
+ .find((block) => block.startsWith('- **分支 → SGLang main 上游迁移。**'));
+ expect(paragraph).toBeDefined();
+ const { content } = await compileMDX({ source: paragraph! });
+ expect(renderToStaticMarkup(content)).toContain('SGLANG_OPT_*');
+ });
+});