Skip to content

Devil-SX/splitwise-modeling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Splitwise P/D 分离建模实验

这是一个可复现的分析模型,用论文图表数字化数据比较两种 LLM 推理部署策略:

  • Baseline / Co-located:每台机器同时承担 Prefill 和 Decode;
  • Split / Disaggregated:在机器粒度上建立独立的 Prefill 与 Decode 池。

实验研究的问题是:当 Prefill 和 Decode 的 batch–容量、batch–吞吐曲线具有 不同 scaling 趋势时,解除同机容量竞争能否提高集群的可持续请求吞吐率。

Important

这是独立的论文数据建模实验,不是 Splitwise 或 Kairos 的官方实现,也不是 H100 集群实测 benchmark。输入数据由论文 PDF 图表数字化得到,结果适合验证 建模关系和趋势,不应直接作为生产集群的容量规划结果。

实验结果

Split strategy heatmaps

图中前两幅分别给出 Prefill 和 Decode 的 Split/Baseline 实际吞吐倍率,第三幅 给出最优 Split 子策略,第四幅给出 Decode 节点比例 x/X。默认实验使用 BLOOM-176B 曲线、8×H100 80GB 机器、Kairos 四类固定长度负载,以及 X ∈ {2,4,8,16,32,64}

负载 X=2 X=4 X=8 X=16 X=32 X=64
LPLD 0.57× 0.84× 0.96× 0.96× 0.96× 0.96×
LPHD 0.85× 0.85× 1.02× 1.02× 1.02× 1.04×
HPLD 0.52× 0.77× 0.90× 0.97× 0.99× 0.98×
HPHD 0.85× 1.28× 1.49× 1.49× 1.49× 1.52×

主要观察:

  • HPHD 从 X=4 开始稳定受益,最大达到 1.52×
  • LPHD 只有较大集群获得轻微收益;LPLD、HPLD 在本模型中没有超过 Baseline;
  • 24 个配置中,最优策略为 TUF-D 19 次、TUF-P 4 次、CUF-P 1 次,未出现 CUF-D;
  • 因两种策略都严格保持请求流平衡,Prefill 和 Decode 的倍率在数值上相等: 两者都等于 Split/Baseline 的可持续 RPS 倍率。

策略标签含义:

标签 优先目标 P/D 后缀含义
CUF-P / CUF-D Capacity-utilization-first P/D 时间利用率达到 1
TUF-P / TUF-D Time-utilization-first P/D batch 容量达到上限

完整数值位于 results/cluster_results.csvresults/split_strategy_heatmaps.csv。 详细公式、候选策略和整数节点求解见 docs/model.md

快速复现

需要 Python 3.10+ 和 uv。项目使用本地 .venv, 不会修改系统 Python 环境。

git clone https://github.com/Devil-SX/splitwise-modeling.git
cd splitwise-modeling
uv sync
uv run python -m splitwise_model \
  --prompt-throughput-fit piecewise-linear \
  --decode-throughput-fit piecewise-linear \
  --output-dir results

运行测试:

uv run python -m unittest discover -s tests -v

常用选项:

--machines 2,4,8,16,32,64
--workloads lpld,lphd,hpld,hphd
--prompt-throughput-fit quadratic|piecewise-linear
--decode-throughput-fit quadratic|piecewise-linear
--data-dir data/paper
--output-dir results

piecewise-linear 在 Figure 6 测量点之间线性插值,在观测区间外固定使用最近 端点;quadratic 对全部散点做普通二次最小二乘拟合。容量曲线始终使用普通 二次拟合。

输出

文件 内容
results/split_strategy_heatmaps.png 两阶段倍率、最优子策略与 Decode 节点比例 x/X
results/bloom_phase_curves.png BLOOM 的 P/D 容量与吞吐曲线
results/fitted_curves.png 全部容量、BLOOM/Llama 吞吐数据与拟合
results/cluster_results.csv batch、节点分配、利用率、吞吐和 RPS
results/model_parameters.json 拟合参数、质量指标、逆函数和实验假设
results/report.md 按负载展开的可读实验报告

所有结果均可由上述命令重新生成。

数据来源与边界

仓库只包含数字化后的 CSV、来源定位、提取方法、校验说明和哈希,不包含论文 PDF。所有数值均标记为 digitized,不是论文作者发布的原始机器可读测量。 详见 data/paper/SOURCE.md

模型限制

  • 忽略 P/D 之间传输 KV Cache 的延时和带宽开销;
  • 不改变单机内部 8-way tensor parallel 划分;
  • beam=1,并假设 Decode 容量只随并发请求数变化;
  • 使用固定的负载中位序列长度,没有模拟请求长度分布、排队或 SLO;
  • Figure 7 的数字化散点没有模型标签,不能视为完整的 BLOOM 专属显存测量;
  • 容量逆函数可能超出论文观测区间,因此结果包含外推误差。

许可证

代码以 MIT License 发布。论文、论文图表及其内容版权归原作者或 出版方所有;仓库中的数字化数据仅用于研究复现和分析,请在使用时引用原论文。

About

Reproducible capacity and throughput modeling for co-located vs disaggregated LLM Prefill/Decode serving

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages