ascend-boost-comm解读:分布式通信加速方案
·
本文基于CANN开源社区的ascend-boost-comm仓库进行技术解读
- CANN组织链接:https://atomgit.com/cann
- 仓库链接:https://atomgit.com/cann/ascend-boost-comm
前言
在分布式训练中,通信往往是瓶颈。模型越大、卡数越多,通信开销越明显。
之前聊过hcomm和shmem这些通信基础库。ascend-boost-comm则是更高层的通信加速方案,专注于提升分布式场景下的通信效率。
分布式通信的挑战
多卡训练时,通信涉及:
随着规模增大,这些通信操作的时间占比越来越高。
ascend-boost-comm做了什么
从名字来看:ascend + boost + comm = 通信加速
主要方向:
1. 计算通信重叠
计算和通信同时进行,不互相等待:
重叠后,一边算一边传,整体时间更短。
2. 通信压缩
传输前压缩,接收后解压:
代价是压缩/解压的计算,但如果带宽是瓶颈,压缩是值得的。
3. 分层通信
不同层级用不同策略:
机器内用高速互联,机器间用网络。不同层级不同策略。
4. 异步通信
不阻塞等待通信完成:
# 同步方式
all_reduce(grad) # 阻塞等完成
compute_update()
# 异步方式
handle = all_reduce_async(grad) # 立即返回
compute_something_else() # 做其他事
wait(handle) # 需要时再等
使用场景
大模型训练
大模型梯度量大,通信压力大。需要各种优化手段。
超大规模训练
几百上千卡的训练,通信成为主要瓶颈。
跨数据中心训练
带宽有限,压缩和调度优化更重要。
和其他项目的关系
ascend-boost-comm在通信栈中起加速作用。
总结
ascend-boost-comm是分布式通信的加速方案,主要技术:
- 计算通信重叠
- 通信压缩
- 分层通信策略
- 异步通信
对于大规模分布式训练,这些优化能显著提升效率。
相关链接
- ascend-boost-comm仓库:https://atomgit.com/cann/ascend-boost-comm
- hcomm仓库:https://atomgit.com/cann/hcomm
- 分布式训练相关文档
这篇是我学习分布式通信优化时的笔记,如有错误欢迎指正。
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)