文章预览
玩AI推理的都知道,现在大模型推理动不动就成千上万用户同时请求,再加上每个请求的输入长度都不一样,这服务器压力山大!为了扛住这压力,多GPU并行成了标配,但GPU之间的通信延迟一直是个让人头疼的问题,严重拖性能后腿! 传统方法使用基于环的算法,其中部分值围绕 GPU 环传递。每个 GPU 贡献其值并将结果传递给其邻居。这个过程重复 2N-2 次,其中 N 是一起工作的 GPU 的数量,到该过程结束时,每个 GPU 都具有相同的总和值。需要对环进行第二次传递,以将总和值从最后一个 GPU 传播到其余 GPU 环形 AllReduce 算法描述如下: 环形算法:GPU-1 → GPU-2 → … → GPU-N → GPU-1 → GPU-2 → … → GPU-(N-1) 传统的Ring AllReduce算法,说白了就是让数据在所有GPU之间轮流传递,就像击鼓传花一样。这方法虽然看着公平,但问题是GPU数量越多,这“花”转的圈
………………………………