FreeToken 的完整层 Prefill 双缓冲
长提示词中不同 token 的专家路由并集接近完整专家集合,因此 FreeToken 使用两块完整层缓冲,在 GPU 计算当前层时通过 PCIe 传输下一层。
Prefill:单个 token 稀疏,长 Prompt 的路由并集却接近稠密
8192 个 token 各自只选少量专家
token 1 → E1, E7...
token 2 → E2, E9...
token 3 → E4, E11...
...
所有路由取并集
几乎覆盖这一层的全部 256 个专家
按需小传输会造成等待和碎片
完整层双缓冲:Copy Stream 和 Compute Stream 同时前进
时间片 1
时间片 2
时间片 3
PCIe Copy
GPU Compute
Buffer A ← 完整第 l 层
建立流水线
Buffer B ← 第 l + 1 层
A 正在被 GPU 使用
Buffer A ← 第 l + 2 层
B 正在被 GPU 使用
从 Buffer A 计算第 l 层
与第 l + 1 层传输重叠
从 Buffer B 计算第 l + 1 层
与第 l + 2 层传输重叠
两块 buffer 交换角色,理想情况下计算时间被传输时间覆盖
需要至少 2 × num_experts 个 slot;空间不足时回退到按需 Prefill