MoE 服务每步重分专家副本:Relief 用整数松弛逼近每步最优,片上引擎把有效利用率提到 99.5%
核心概要
专家并行 MoE 服务中,每层都要等负载最重的 GPU 收工,而路由每个解码步都在变。Relief 不再求解每步的线性规划,改用整数双向成对松弛,在副本边上反复折半搬运负载,几轮就逼近每步最优。在三个开源 MoE 家族的解码路由上,按相对每步最优的有效利用率计,部署的静态方案为 66% 到 72%,GPU 内核升到 93%,片上引擎升到 99.5%,最大一处比静态放置多回收 37.3 个百分点。
深度剖析
专家并行 MoE 层每完成一个解码步,都要等组内负载最重的 GPU 算完,其余 GPU 预留的时间空转;Relief 把这一步的副本分流决策做成每层每步都重算的整数松弛,不再依赖分钟级的专家重放置。 生产引擎目前只在分钟级的 EPLB 重放置之间,按位置取模或随机挑选副本,不看负载;精确的每步线性规划求解器单次约 102 微秒,在短层上损失的有效利用率超过它换回的均衡。 在 Qwen3-30B-A3B、OLMoE-1B-7B 和 Qwen1.5-MoE-A2.7B 三个开源 MoE 家族的 GSM8K 与 WildChat 解码路由上,按相对每步最优的有效利用率计,部署的静态放置为 66% 到 72%,GPU 内核为 93%,片上引擎为 99.5%。
算法把每个复制专家的 token 在两个副本之间的分配看成一串可调的分数,直接修改每块 GPU 的负载表,让负载从重的一侧流向轻的一侧。 精确求解器通过最小化峰值的线性规划得到这些分数,而 Relief 用整数加、比较和移位完成同样的均衡,工作集就是负载向量本身。 每一轮沿副本边把两个 rank 的负载差折半搬运,并立即写回负载表供下一轮读取;在 8 到 64 块 GPU 的环面放置上,几轮之后与每步最优的差距在零点几个百分点以内。
同一套松弛被做成三种部署:服务 GPU 上的 CUDA 内核、加速器旁的固定功能硅块,以及经 PCIe 接入的 FPGA 卡,三者返回逐位相同的分流结果。 内核只需部署已有的 GPU,但负载表放在共享内存里,每次依赖读取要等约 25 纳秒的访存延迟;片上引擎把同一张表放进寄存器,依赖读取变成导线延迟。 片上引擎在 ASAP7 7 纳米工艺下占 0.14 平方毫米标准单元、约一千万晶体管,按晶体管计约为当前加速器的 0.02%;单次求解从 16 块 GPU 时的 0.75 微秒到 64 块时的 0.79 微秒,几乎不随组规模增长。
启示与展望
评估覆盖三个开源 MoE 家族在 GSM8K 与 WildChat 上采集的解码路由,组规模 8 到 64 块 GPU,放置为每 rank 两个副本槽的环面;片上引擎的面积与频率来自 ASAP7 7 纳米教学 PDK 的 OpenROAD 流程,FPGA 部署在 XCVH1582 上完成布局布线并满足时序。
绝对功耗未报告,因为该网表的向量化活动估计在重收敛算术上发散;片上引擎的面积与频率取自教学 PDK 的全局布线估计寄生参数,并非流片测量;评估把每次决策按完全阻塞计入,未与层内其他工作重叠。
