Sequence Parallelism 相关
初版
环形计算,devices按行切分QKV矩阵,得到Qn,Kn,Vn∈RL/N×A,之后执行N−1轮环形通信,计算Sn=concati=1N(Qn(Ki)T)∈RL/N×L,之后再进行N−1轮环形通信,计算attention输出On=SnV=concati=1N(SinVi),其中Sin代表Sn按列切分为N段
性能比较
因此若SP>TP则:
- BL>32H
- BL>16AZ
通信比较
二者相同,都是8(N−1)BZ(L/N)A,详细推导省略
对于TP来说的优势
在与PP结合的时候可以减少一次all-gather,这是因为TP会在进入下一阶段的时候对输入也做split,在计算结束之后在all-gather,但是由于SP在初始阶段就会做split,所以就可以失去这个操作
Ulysses
沿着head cnt做切分,这样一张卡上是若干个完整的头,可以直接计算Attention,并且可以用一些常规的方法加速,例如FlashAttention等
注意在上图中d=hc×hs,是将多头的直接concat起来得到的向量
Ring-Attention
Flash Attention的并行化版本,利用异步P2P通信,在一个设备上计算局部attention的同时传递K-V块