内容提要
Atlassian将RDMA网络、Lustre存储、GPU调度与验证整合为统一平台以支持分布式AI训练。此前RDMA静默回退TCP导致多节点性能减半且难察觉,改造后训练吞吐提升2.04倍,中位步时从12.36秒降至6.07秒。核心经验是网络、存储、调度与验证须作为整体系统设计。
延伸解读
静默降级:分布式训练中最危险的性能陷阱
文章指出,RDMA配置错误会静默回退到TCP,作业继续运行但速度减半,且无任何报错。更严重的是,Atlassian的RDMA设备插件在271天内从未正常工作,因无消费者而未被发现。这揭示了一个关键风险:当多节点训练需求稀少时,基础设施故障缺乏信号。因此,仅靠仪表盘监控作业行为不够,必须引入合成验证来主动确认网络路径是否按预期工作。
性能即正确性:为什么网络和存储必须作为一等公民
在分布式AI训练中,性能不是优化项,而是正确性的一部分。文章强调,节点间通信和共享存储的延迟会直接导致GPU利用率下降、步时波动,甚至作业无法完成。Atlassian将RDMA网络、Lustre存储、GPU调度和验证整合为统一平台,使训练吞吐提升2.04倍,中位步时从12.36秒降至6.07秒。这证明,平台团队必须将网络、存储、调度和验证视为一个整体系统来设计。
跨云差异:不要假设行为可移植
Atlassian的经验表明,不同云厂商对RDMA网络和GPU预留的管理方式差异巨大。在一个云上,托管网络结构自动处理预留和区域变更,平台团队无需感知;在另一个云上,RDMA子网映射需自行维护。此外,GPU分配可能集中在一个块或分散在多个块,影响拓扑感知调度。因此,跨云部署时不能假设配置和行为可移植,必须针对每个云的能力和约束调整设计。
验证策略:粗粒度但足以捕捉关键故障
文章承认,当前验证无法将性能下降精确归因到传输层,但通过记录作业使用的存储路径、传输方式(套接字或RDMA)和总训练时间,足以捕捉静默回退等关键故障。这提示我们,在缺乏细粒度遥测时,聚焦于关键路径的验证信号仍能有效保障分布式训练的可靠性。平台应确保作业在预期传输和存储路径上运行,而非仅确认“作业已运行”。
Q&A
为什么分布式AI训练需要把网络、存储、调度和验证作为一个整体来设计?
因为分布式训练中,性能本身就是正确性的一部分。如果这些组件各自独立,容易出现静默降级,比如RDMA回退到TCP导致性能减半却难以察觉。只有将它们作为统一平台设计,才能确保训练可靠、可重复,并避免隐藏的性能故障。
RDMA静默回退到TCP会带来什么后果?Atlassian是如何发现这个问题的?
RDMA静默回退到TCP会使多节点训练性能减半,且没有错误提示,难以察觉。Atlassian在另一个云上发现RDMA设备插件从未正常工作,导致所有支持RDMA的节点一直处于CrashLoopBackOff状态,直到271天后在验证无关的GPU操作器升级时偶然发现。
Atlassian在改造后取得了哪些具体的性能提升?
改造后,训练吞吐提升了2.04倍,中位步时从12.36秒降至6.07秒。在2节点H200 GPU上,NCCL all-reduce的峰值总线带宽达到355 GB/s。100步基准测试时间从约1950秒缩短到约836秒。
Atlassian的平台如何让ML团队无需管理底层基础设施就能运行分布式训练?
平台通过以下方式吸收复杂性:在节点镜像中预装RDMA用户态库、通信运行时和网络插件;通过CSI驱动将Lustre作为ReadWriteMany PVC挂载;在准入时自动注入网络和存储配置到Pod spec;使用gang scheduling确保作业获得所有worker;并在作业被视为健康前验证传输路径。ML团队只需提交作业,无需手写底层配置。
在构建这个平台时,Atlassian遇到了哪些主要挑战?
主要挑战包括:跨两个顶级云提供商获取足够兼容的GPU节点;向云提供商提出非标准的GPU放置、高性能网络和共享存储组合需求;拓扑、预留和配置时机难以协调;共享存储(Lustre)在新区域或集群需要手动搭建新实例;以及跨网络、节点设置、存储、调度和工作负载集成的跨团队交付。
为什么说“作业运行了”不足以作为分布式训练的成功信号?Atlassian如何验证?
因为作业可能运行在降级的路径上(如TCP而非RDMA),性能远低于预期却无错误。Atlassian的验证包括:确认作业使用的存储路径、传输是socket还是RDMA,以及总训练时间。这些信息足以捕获文中描述的故障,但验证仍较粗粒度,没有每作业的遥测来定位传输导致的减速。