tbo-sbo

tbo-sbo
gogongxttbo-sbo
tbo 就是 two batch overlap,最开始由deepseek提出,主要的目标是基于deepep的实现思路,优化计算和通信的overlap
在整体的计算流程中,有
attention -> alltoall -> moe -> alltoall -> ...,我们可以构造两个batch,实现一个做矩阵计算,另一个做alltoall通信,从而overlap
tbo是给decode准备的,主要原因是decode是带宽瓶颈,计算耗时短,两个batch可以相互干扰影响低
不过实际蚂蚁在h20上部署deepseek时发现了tbo在高并发下反而会更慢,因为h20算力太低,高并发会延迟爆炸不满足slo
因此也是联合deepseek,sglang提出了sbo:
两点优化:
- 计算shared experts时进行dispatch通信
- 计算down的时候就边计算边发送,按照block_m粒度进行处理,一个块好了就直接发送
sbo的pr链接:
- SBO in SGLang: https://github.com/sgl-project/sglang/pull/9660
- SBO in DeepEP: https://github.com/deepseek-ai/DeepEP/pull/390
- SBO in DeepGEMM: https://github.com/deepseek-ai/DeepGEMM/pull/183
NOTE
对于tbo和sbo的实现和可用性
- tbo是官方deepep版本对lowlatency支持,使用双buffer进行支持,对于prefill官方deepep没有支持,sglang是自己进行了两个batch切分,实例化了两个deepep对象,来实现tbo
- sbo在deepep用的特定的蚂蚁的优化分支antgroup-opt,这个优化暂时还没有合入到主分支,虽然当前sglang环境变量都始终开了sbo,但是要特定的版本才能真正有用,不然也会退化到不用sbo
评论
匿名评论隐私政策






