microsoft/msccl

Microsoft Collective Communication Library

解决的问题

MSCCL 解决了分布式机器学习中通用集合通信算法的低效问题。由于不同的硬件拓扑(加速器之间的连接方式)和缓冲区大小具有不同的延迟和带宽,通用方法往往无法最大化性能。MSCCL 允许用户实现并执行针对特定硬件配置量身定制的超优化通信模式。

工作原理

基于 NVIDIA 的 NCCL 构建,MSCCL 作为一个运行时框架,用于执行自定义的集合通信算法。它与 MSCCL 工具包协同工作,该工具包提供高级领域特定语言(MSCCLang)和编译器。编译器将这些自定义算法转换为 XML 格式的中间表示(IR),然后由 MSCCL 运行时在后端执行。如果没有提供自定义算法,系统会自动回退到标准的 NCCL 通用算法。

适用人群

本工具专为在多个加速器(如 Azure NDv4 上的 GPU)上进行大规模分布式 AI 训练的研究人员和工程师设计,他们需要从硬件互连中榨取最大性能。

主要亮点

  • 自定义可编程性:支持为特定拓扑和缓冲区大小创建优化的通信算法。
  • 性能提升:在特定配置(如 8xA100 NVLink 系统)下,相比原生 NCCL 可实现 2-3 倍的加速。
  • 集成性能分析:内置 NPKit,可提供发送和接收操作的详细时间线,用于识别传输瓶颈。
  • PyTorch 集成:提供在 PyTorch 环境中将默认 NCCL 替换为 MSCCL 的路径。

相关

  • 项目
  • 项目
  • 项目
  • 项目