deepseek-ai/DeepEP

DeepEP: an efficient expert-parallel communication library

DeepEP – Mixture-of-Experts (MoE) 모델을 위한 고성능 커뮤니케이션

개요 – DeepEP(DeepEveryParallel)는 대규모 Mixture-of-Experts(MoE) 학습 및 추론에 필요한 초고속 GPU 간 통신 프리미티브를 제공하는 C++/Python 라이브러리입니다. 전문가 병렬(EP) 올투올 커널과 함께 파이프라인, 컨텍스트, 데이터 병렬 및 원격 메모리 액세스(Engram)에 대한 실험적 지원을 구현합니다. 커널은 컴패니언 도구인 DeepJIT를 사용하여 런타임에 JIT 컴파일되어 사용 중인 정확한 GPU 아키텍처에 맞게 튜닝됩니다.

중요성 – MoE 모델은 신경망 계층을 많은 전문가로 분할하고 각 토큰을 그중 몇 개로 라우팅합니다. 이는 모델 용량을 크게 늘리지만 모든 계층에서 GPU 간 텐서 이동이 필요합니다. 기존 NCCL 컬렉티브는 병목 현상이 됩니다. DeepEP의 EP 커널은 고처리량, 저지연 올투올 디스패치/컴바인을 달성하고, FP8 디스패치를 지원하며, NVLink를 통해 전문가 가중치를 프리페치하고 중복 그래디언트를 줄여 MoonEP 및 UltraEP에서 설명된 '전문가 복제' 기술을 가능하게 합니다.

주요 기능

  • JIT 컴파일된 EP 커널(DeepJIT 통해) – 런타임 시 정확한 SM 수와 GPU 모델로 컴파일됩니다.
  • NCCL-Gin 백엔드 – 기존 NCCL 통신자를 재사용할 수 있는 경량 디바이스 사이드 API.
  • 통합 EPBuffer API – 디스패치, 컴바인, 가중치 프리페치, 그래디언트 감소 및 버퍼 할당을 처리하는 단일 객체.
  • 실험적 프리미티브 – Engram(RDMA 기반 원격 메모리), 파이프라인 병렬(PP), 컨텍스트/데이터 병렬 워크로드용 버킷 컬렉티브.
  • NVIDIA Hopper+ GPU 지원 및 별도 리포지토리를 통한 Huawei Ascend 950 NPU 지원.
  • 분석적 SM/QP 수 추정 – 자동 튜닝 불필요.
  • 중복 전문가 지원 – 동적 전문가 복제를 위한 lb_prefetch_weights / lb_reduce_grads.

일반적인 워크플로

  1. EPBuffer 생성 – MoE 하이퍼파라미터(은닉 크기, top-k, 전문가 수, FP8 플래그)로 생성합니다. 버퍼는 올투올 커널에 할당할 SM 수를 추정합니다.
  2. 디스패치 – buffer.dispatch(...)를 호출하여 모든 랭크에 걸쳐 적절한 전문가에게 토큰을 라우팅합니다. 이 호출은 EventOverlap을 반환하며 나중에 대기할 수 있어 계산-통신 오버랩이 가능합니다.
  3. 전문가 GEMM 실행 – 수신된 토큰에 대해 실행합니다.
  4. 컴바인 – buffer.combine(...)(또는 역방향 헬퍼)를 호출하여 전문가 출력을 원래 랭크로 줄입니다.
  5. (선택) 부하 분산 – lb_prefetch_weights와 lb_reduce_grads를 사용하여 부하가 높은 전문가를 NVLink 연결 GPU 간에 복제합니다.

설치 스냅샷

# 서브모듈(DeepJIT) 복제 및 초기화
git submodule update --init --recursive
# 호환 NCCL 패키지 설치(CUDA 13용 예시)
python -m pip install "nvidia-nccl-cu13>=2.32.3" --no-deps
# 휠 빌드 및 설치
bash install.sh

빌드는 로컬 CUDA, NCCL 및 C++20 툴체인에 대해 C++ 확장을 컴파일합니다. 설치 시 GPU는 필요 없습니다. 커널은 첫 사용 시 컴파일됩니다.

DeepEP 사용 시기

  • 대규모 MoE 모델(예: 수천 개의 전문가를 가진 GPT 스타일)의 학습 또는 추론.
  • GPU 간 부하 균형을 위해 전문가 복제가 필요한 시나리오.
  • NVLink 노드 내 링크 및 선택적으로 RDMA 노드 간 네트워크가 있는 시스템.
  • 이미 PyTorch 2.x를 사용 중이며 올투올 통신 계층의 드롭인 교체를 원하는 프로젝트.

제한 사항 / 실험적 부분

  • Engram, PP 및 버킷 컬렉티브는 여전히 실험적입니다.
  • EP 커널은 GPU SM이 필요하므로 순수 RDMA 전용 모드는 지원되지 않습니다.
  • 최신 하드웨어(NVIDIA Hopper 이상) 및 CUDA 13.1+ 필요.

리소스


DeepEP는 전문가 병렬 딥러닝 워크로드를 위한 특수 통신 라이브러리로, JIT 컴파일된 커널과 API를 제공하여 연구자와 엔지니어가 최신 GPU 클러스터에서 MoE 모델을 효율적으로 확장할 수 있게 합니다.

관련

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