uccl-project/uccl

UCCL is an efficient communication library for GPUs, covering collectives, P2P (e.g., KV cache transfer, RL weight transfer), and EP (e.g., GPU-driven)

해결하는 문제

UCCL은 GPU 통신 라이브러리의 성능 병목 현상과 이식성 문제를 해결하기 위해 설계되었습니다. Nvidia, AMD, Broadcom, AWS EFA와 같은 이종 GPU 및 네트워킹 하드웨어를 지원하는 고성능, 유연성 및 이식성을 갖춘 통신 레이어를 제공하여, ML 워크로드가 NCCL 또는 RCCL과 같은 기존 라이브러리보다 더 높은 처리량과 낮은 지연 시간을 달성할 수 있도록 합니다.

작동 원리

UCCL은 GPU용 통신 라이브러리로 작동하며 세 가지 주요 구성 요소를 제공합니다:

  • UCCL-collective (UCCL-Tran): 소프트웨어 정의 전송 레이어를 사용하는 NCCL/RCCL의 드롭인 교체(drop-in replacement) 솔루션입니다. 최대 256개의 네트워크 경로에 걸쳐 패킷 스프레이를 사용하여 혼잡을 피하고, 고급 혼잡 제어 및 손실 복구를 위한 선택적 재전송을 구현합니다.
  • UCCL-P2P: 고대역폭 메시지 전송을 위한 initiator-target 전송 API를 제공하며, 특히 멀티스레드 전송 엔진을 갖춘 차세대 800Gbps NIC에 최적화되어 있습니다.
  • UCCL-EP: 다양한 GPU 및 NIC 벤더에서 높은 성능을 달성하는 전문가 병렬 통신(DeepEP 호환)의 이식 가능한 구현체입니다.

대상 사용자

대규모 ML 학습 및 추론을 수행하는 개발자와 연구자, 특히 이종 하드웨어 환경을 사용하거나 KV 캐시 전송 또는 전문가 병렬(MoE) 통신과 같은 작업을 위해 GPU 간 통신 최적화를 원하는 사용자를 대상으로 합니다.

주요 특징

  • 드롭인 교체: UCCL-collective는 애플리케이션 코드 변경 없이 NCCL/RCCL을 대체할 수 있습니다.
  • 이종 지원: Nvidia 및 AMD GPU와 다양한 NIC(Broadcom, Nvidia, AWS EFA)에서 작동합니다.
  • 고성능: 특정 설정에서 AllReduce 작업 시 NCCL보다 최대 3.7배 더 뛰어난 성능을 발휘합니다.
  • 광범위한 채택: NVIDIA NeMo, AMD TheRock 및 기타 분산 추론 스택에 통합되었습니다.