# Kimi-K3 DP2 无投机:TP32 与 PP8 对比 ## 测试目的 在 8 台 RTX 6000D 上部署两个独立四节点 SGLang 副本,通过 SGLang Router `round_robin` 组成 DP2,比较两种单副本并行策略: - TP32:`TP32/PP1/EP4` - PP8:`TP4/PP8/EP4` 本轮不启用投机解码,重点观察长输入场景下 TTFT 与长 Decode 的取舍。 ## 固定口径 | 项目 | 配置 | |---|---| | 数据集 | SPEED-Bench `/data/speedbench16k_complete.jsonl` | | 请求 | 40 条,16K 输入,512 输出 | | 客户端并发 | C=8 | | Chunked Prefill | 8K | | MoE | EP4,FlashInfer MXFP4,A2A=none | | KV Cache | BF16 | | Prefix Cache | 关闭 | | Router | 两副本 `round_robin` | | GPU | 601-608,共 64 卡 | 两种配置均在正式计时前分别预热两个副本,并由 benchmark 再执行一条标准 warmup。`Peak concurrent requests=12` 是 SGLang 报告的服务端峰值,可因排队高于客户端 `max_concurrency=8`,不表示客户端发出了 12 路并发。 ## 结果 | 指标 | DP2 TP32/PP1/EP4 | DP2 TP4/PP8/EP4 | PP8 相对 TP32 | |---|---:|---:|---:| | 成功请求 | 40/40 | 40/40 | 相同 | | Benchmark duration | 238.18s | 370.30s | +55.47% | | Input TPS | 2797.64 | 1799.46 | -35.68% | | Output TPS | 85.99 | 55.31 | -35.68% | | Total TPS | 2883.63 | 1854.76 | -35.68% | | TTFT mean | 8.35s | 7.84s | -6.15% | | TTFT median | 5.30s | 7.03s | +32.62% | | TTFT p95 | 20.79s | 11.68s | -43.82% | | TPOT mean | 75.93ms | 126.86ms | +67.07% | | TPOT median | 79.95ms | 136.09ms | +70.22% | | TPOT p95 | 88.06ms | 145.13ms | +64.80% | | E2E mean | 47.15s | 72.66s | +54.10% | | E2E p95 | 59.24s | 82.83s | +39.82% | ## 初步结论 PP8 继续体现了 Prefill 优势:平均 TTFT 小幅下降 6.15%,TTFT p95 降低 43.82%,长尾更稳定。这来自 TP 通信域从 32 缩到 4,并由流水线分摊模型层。 但 512-token Decode 暴露了 PP8 的代价。每个 token 都要依次通过 8 个 Pipeline Stage,TPOT 增加 67.07%,最终使 Output TPS 降低 35.68%、E2E 平均时延增加 54.10%。因此: - 以 P 节点 TTFT 为目标时,PP8 有价值,尤其能改善 TTFT 长尾。 - 作为不做 PD 分离的完整 16K→512 服务,TP32 综合表现更好。 - PP8 更适合作为 PD 分离中的 P 侧配置,由独立 D 侧承担长 Decode;不能用本轮 PP8 的 E2E/TPOT 直接否定其 P 侧价值。 TP32 的 TTFT median 更低但 p95 明显更高,说明该配置在 DP2 排队与长 Prefill 交错时波动更大。后续如继续优化单实例,应分别报告 median 与 p95,不能只看 mean。 ## 数据质量与日志说明 两轮 Router 初始命令没有挂载模型目录,因此 worker tokenizer 注册出现错误。Router 使用固定 `round_robin`,不依赖 tokenizer 做 cache-aware 路由;40/40 请求成功,两副本 Prefill 数量接近均分,未发现请求级失败或重试,所以不影响本轮 A/B 结论。脚本已补上 Router 模型只读挂载,后续运行不会再产生该注册错误。 满负载期间 Router 偶有 `/health` 超时,这是模型服务忙于长 Prefill/Decode 时健康响应延迟;两轮均未出现 OOM、NCCL collective failure、Traceback 或 EngineDeadError。 ## 原始结果 TP32: ```text /data/hzy/sskj/experiments/pro6000/kimi3_pro6000_dp2_nospec_ab/results/dp2-tp32-final-20260902-123051/ ``` PP8: ```text /data/hzy/sskj/experiments/pro6000/kimi3_pro6000_dp2_nospec_ab/results/dp2-pp8-final-20260902-130711/ ``` 核心 benchmark 日志分别位于: ```text bench/tp32_speedbench16k_c8_o512.log bench/pp8_speedbench16k_c8_o512.log ``` 每个结果目录同时保存完整启动命令、环境 manifest、输入校验值、Router 日志和八节点服务日志。