基础知识
通算融合算子
相比于一般的计算或搬运类算子,通算融合算子将原本串行的通信和计算操作融合在一起,通过在算子内部进行数据切分,实现了计算和通信任务在算子内的并行执行,从而提升算子性能。通算融合算子统称为MC²算子,即Matrix Computation & Communication。
如下图所示,串行的通信算子和计算算子的理想执行耗时为两个算子执行时间的加和,而在融合通信和计算任务得到的通算融合算子内,将需要通信和计算的数据进行切分,一次通信和计算的数据量减少,整个通信和计算任务分多次进行,使得计算与通信流水并行,理论执行耗时大大缩短,从而带来性能收益。
图1 通信计算融合前后的理论执行耗时对比示意图

使用场景和优势
随着模型规模的增长,单设备上的训练和推理在计算能力、内存容量和能效等方面面临瓶颈,因此分布式并行计算成为必选技术路径。对于大模型分布式训练和推理过程中的通信和计算任务,可根据通信和计算的依赖关系分为两类:
- 弱依赖计算通信任务
- 强依赖计算通信任务
通算融合技术与网络模型结构密切相关,一般而言,符合上述强依赖计算通信任务都有可能通过通算融合算子实现性能提升。
父主题: 通算融合