-
最近拜读了https://bbs.huaweicloud.com/blogs/450734这篇文章,里面讲解将ALL-reduce和GEMM融合的分块方式只切分M轴。因为通信任务调用的Hccl API要求分块数据内存连续,若按N轴切分,则每行数据都被切断,导致通信数据的内存不连续,不满足通信要求;若按M轴切分,则每行数据都是内存连续的,满足通信要求。看完后有两个疑问想请教下:文章里提到只对M轴切分,是否可以认为只对左矩阵切分,每个GPU拿到部分左矩阵数据,而右矩阵不切分,每个GPU拿到完整的右矩阵数据若只对M轴切分,则多卡通信汇聚数据的时候,理论上不需要将多卡的数据进行求和,这里为啥需要使用all-reduce而不是all-gather(我知道目前也是支持all-gather与gemm融合的,只不过all-reduce的这个分块方式令我有些困惑)由于我刚接触该融合特性,如果上面的理解有不到位的地方还请指正,多谢!