EPLB Simulator

演示 MoE 专家在 EP GPU 间的重排(replicate + packing)。

数据流架构图

Token Batch 一次 MoE forward 的 token,热点 token 会集中命中少数 logical experts。
→top-k router
MoE Router token → logical expert id
→record
expert0 hot tokens
expert1 hot tokens
expert2 warm tokens
expert3 cold tokens
Expert Load Window 本页直接展示“窗口汇总后的 logical 热度”;真实框架通常先按 physical 记数,再用 mapping 聚合成 logical。
→rebalance
EPLB Algorithm replicate_experts + balanced_packing
phy2log: slot0→expert0 slot1→expert0 slot2→expert1
logcnt: expert0×2 expert1×2 expert2×1
→dispatch
EP GPU Load physical experts 分散到 EP ranks,减少 straggler。
Before 静态 id % GPU:最热 logical expert 所在卡成为慢卡。
↺P2P move
Online Execute SGLang / vLLM 根据 old/new mapping 搬 expert 权重,然后切换 phy2log/log2phy/logcnt。
注意:DeepSeek EPLB 仓库只给算法;在线统计和权重迁移由 SGLang / vLLM 集成。
模拟器简化:不模拟真实 ring buffer、window_size、step_interval、all-reduce 和 P2P 搬权重耗时;这里的 token 热度可理解为“最近窗口已经汇总好的统计快照”。自动演示里的 tick/rebalance 只是动画节拍。
观测演示用:直接看 logical expert token 热度;真实实现会先记录 physical 计数。
复制热点 logical expert 获得更多 physical slots / copies。
装箱physical experts 按负载分到 EP GPU。
指标balancedness = mean / max,越接近 1 越均衡。

重排结果

手动模式
1.00before: id%GPU
1.00after: 当前策略
-hot expert
0physical slots
before/after 是演示指标:按当前 EP GPU 负载计算 mean/max;不是框架直接导出的字段。physical slots = logical experts + 冗余副本槽总数。

Logical Expert 热度

EP GPU 负载