2026-09-02 15:18:11 +08:00

3.4 KiB
Raw Blame History

Kimi-K3 DP2 无投机 A/B

两个独立四节点 SGLang 副本通过 SGLang Router 做 round-robin 负载均衡。固定 EP4,比较:

  • tp32:每副本 TP32/PP1/EP4
  • pp8:每副本 TP4/PP8/EP4
  • tp32-dflash:每副本 TP32/PP1/EP4,开启 DFlashdraft tokens 16mem-fraction-static=0.83 为 16K Prefill 的 FlashInfer MoE workspace 留出余量

测试口径固定为 SPEED-Bench、16K -> 512C=8、40 请求、chunk 8K、BF16 KV、FlashInfer MXFP4并关闭 Prefix Cache。tp32pp8 不启用投机解码;tp32-dflash 只增加 DFlash 及其必要参数。

cd /data/hzy/sskj/experiments/pro6000/kimi3_pro6000_dp2_nospec_ab

# 只展开命令
bash run_dp2_nospec_ab.sh dry-run tp32
bash run_dp2_nospec_ab.sh dry-run pp8
bash run_dp2_nospec_ab.sh dry-run tp32-dflash

# 完整实验
RUN_ID=dp2-tp32-$(date +%Y%m%d-%H%M%S) bash run_dp2_nospec_ab.sh all tp32
RUN_ID=dp2-pp8-$(date +%Y%m%d-%H%M%S) bash run_dp2_nospec_ab.sh all pp8
RUN_ID=dp2-tp32-dflash-$(date +%Y%m%d-%H%M%S) bash run_dp2_nospec_ab.sh all tp32-dflash

每轮结果保存在 results/<RUN_ID>/。正式计时前,脚本分别给两个副本发送一个 16K -> 1 请求,避免 Router 只预热到一个副本。

2026-09-02 正式结果

模式 Input TPS Output TPS TTFT mean / p95 TPOT mean / p95 E2E mean
2 x TP32/PP1/EP4 2797.64 85.99 8.35s / 20.79s 75.93ms / 88.06ms 47.15s
2 x TP4/PP8/EP4 1799.46 55.31 7.84s / 11.68s 126.86ms / 145.13ms 72.66s
2 x TP32/PP1/EP4 + DFlash 2218.94 68.20 8.12s / 21.75s 98.44ms / 154.58ms 58.42s

TP32 DFlash 对照

tp32-dflash 的投机参数与 PD+DFlash 保持一致draft model 为 Kimi-K3-DFlashdraft KV 为 BF16speculative-num-draft-tokens=16。Router 后的 /server_info 不汇总接受长度;两副本 Decode 日志共 37 个周期采样的平均接受长度为 3.76,平均接受率为 0.184。

指标 TP32 无投机 TP32 + DFlash 变化
Benchmark duration 238.18s 300.30s +26.08%
Input / Output TPS 2797.64 / 85.99 2218.94 / 68.20 -20.69%
TTFT mean / p95 8.35s / 20.79s 8.12s / 21.75s -2.73% / +4.62%
TPOT mean / p95 75.93ms / 88.06ms 98.44ms / 154.58ms +29.64% / +75.54%
E2E mean / p95 47.15s / 59.25s 58.42s / 88.76s +23.90% / +49.83%

在当前 16K -> 512, C=8 口径下DFlash 没有带来端到端收益:平均 TTFT 仅下降 2.73%P95 TTFT 反而增加 4.62%,吞吐下降 20.69%TPOT 和 E2E 明显恶化。当前参数不建议用于 DP2 正式部署。

第一次 DFlash 正式轮使用 mem-fraction-static=0.86,在首个 16K Prefill 的 FlashInfer MXFP4 MoE workspace 分配阶段 OOMDP2 单实例同时承担 Prefill 和 Decode不能直接复用 PD 的 D-only 显存比例。仅将该模式降到 0.83 后完整通过,投机参数未改变。

证据目录:

  • results/dp2-tp32-final-20260902-123051/
  • results/dp2-pp8-final-20260902-130711/
  • results/dp2-tp32-dflash-mem083-20260902-143710/
  • 首轮 OOM 证据:results/dp2-tp32-dflash-final-20260902-141001/

三轮最终结果均为 40/40 请求成功。Router 使用固定 round_robin,两副本均实际处理请求。正式运行后补充了 Router 的模型目录挂载,避免后续 tokenizer 注册产生与 round-robin 转发无关的错误日志。