meta-pytorch/monarch

PyTorch Single Controller

해결하는 문제

Monarch는 PyTorch에서 분산 프로그래밍의 복잡성을 단순화합니다. 대규모 AI 학습 및 추론 워크로드에서 원격 프로세스를 관리하고, 그들 간의 통신을 조율하며, 하드웨어 수준의 메모리 전송 및 장애를 처리하는 문제를 해결합니다.

작동 방식

Monarch는 메시지를 효율적으로 브로드캐스트하기 위해 액터를 "메시"로 조직하는 확장 가능한 액터 기반 메시징 시스템을 사용합니다. 장애 내성을 관리하기 위해 감시 트리(supervision trees)를 활용하여 장애가 위로 전파되어 구조화된 복구를 보장합니다. 고성능 데이터 이동을 위해 libibverbs를 통한 포인트투포인트 RDMA 전송을 통합하고, 여러 프로세스에 분산된 텐서를 작업할 수 있는 분산 텐서 API를 제공합니다.

대상 사용자

대규모 분산 PyTorch 애플리케이션을 개발하는 개발자들을 위한 것으로, 견고한 장애 내성, 고성능 GPU/CPU 메모리 전송, 그리고 원격 액터를 스케일링 가능한 방식으로 관리할 필요가 있는 사용자에게 적합합니다.

주요 특징

  • 확장 가능한 액터 메시징: 액터를 메시에 그룹화하여 메시지를 효율적으로 브로드캐스트.
  • 장애 내성: 감시 트리를 사용하여 구조화된 오류 동작과 세밀한 복구를 제공.
  • RDMA 지원: GPU 또는 CPU 메모리의 저비용 등록 및 원측 전송을 가능하게 함.
  • 분산 텐서: 다양한 프로세스에 분산된 텐서에 대한 네이티브 지원.
  • 유연한 빌드: CUDA, ROCm, CPU 전용 환경을 모두 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트