meta-pytorch/monarch

PyTorch Single Controller

解决的问题

Monarch 简化了 PyTorch 中分布式编程的复杂性。它解决了在大规模 AI 训练和推理工作负载中管理远程进程、协调它们之间的通信,以及处理硬件级别的内存传输和故障的挑战。

工作原理

Monarch 使用可扩展的基于 Actor 的消息系统,其中 Actor 被组织成“网格”以实现高效的广播。它采用监督树来管理容错,确保故障向上传播以实现结构化恢复。为了实现高性能数据传输,它通过 libibverbs 集成点对点 RDMA 传输,并提供分布式张量 API,使 Actor 能够处理跨多个进程分片的张量。

适用人群

专为需要强大容错能力、高性能 GPU/CPU 内存传输以及可扩展方式管理远程 Actor 的大型分布式 PyTorch 应用开发者设计。

主要亮点

  • 可扩展的 Actor 消息机制:将 Actor 分组为网格,以高效广播消息。
  • 容错能力:使用监督树提供结构化的错误行为和细粒度恢复。
  • RDMA 支持:支持 GPU 或 CPU 内存的低成本注册和单边传输。
  • 分布式张量:原生支持跨不同进程分片的张量。
  • 灵活的构建方式:支持 CUDA、ROCm 和仅 CPU 环境。

相关

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