DeepEP의 특징

1

전문적인 분산 커뮤니케이션 프레임워크

DeepEP는 전문가 혼합(MoE) 및 전문가 병렬(EP) 시나리오에 특별히 최적화된 차세대 분산 통신 프레임워크입니다. 이 프레임워크는 처리량이 높고 지연 시간이 짧은 GPU용 올투올 통신 커널을 제공하여 MoE 스케줄링과 컴포저블 작업을 완벽하게 지원합니다.

2

고성능 아키텍처

순수 RDMA 기술을 기반으로 하는 DeepEP는 추론 디코딩 성능에 특별히 최적화된 저지연 커널 세트를 제공하며, SM 리소스를 차지하지 않고 뛰어난 병렬 효율성을 달성하는 고유한 후크 기반 통신-계산 중첩 방식을 특징으로 합니다.

3

혁신적인 기술

DeepEP는 FP8을 포함한 저정밀 연산을 지원하며, DeepSeek-V3에서 제안한 그룹 제약 게이팅 알고리즘에 대한 최적화를 제공합니다. 특히 이 프레임워크는 NVLink에서 RDMA에 이르는 이기종 도메인 간의 효율적인 데이터 전송을 지원하여 학습 및 추론 프리페칭 작업에서 뛰어난 성능을 보장합니다.

DeepEP란 무엇인가요?

DeepEP는 MoE 분배 및 병합 연산 전용이며, FP8을 포함한 저정밀 연산을 지원합니다. 동시에 DeepEP는 DeepSeek-V3 논문에서 제안한 그룹 제한 게이팅 알고리즘에 특별히 최적화되어 있으며 비대칭 도메인 대역폭 포워딩(예: NVLink 도메인에서 RDMA 도메인으로)을 위한 일련의 고성능 코어를 제공합니다. 이러한 코어는 훈련 및 추론 사전 채우기 작업을 위한 높은 처리량을 제공할 뿐만 아니라 스트림 멀티프로세서(SM) 수 제어도 지원합니다. 지연 시간에 민감한 추론 디코딩 시나리오의 경우, DeepEP에는 지연 시간을 최소화하기 위한 순수 RDMA 저지연 코어 세트가 포함되어 있습니다. 또한 이 라이브러리는 SM 리소스를 사용하지 않는 후크 기반 통신-계산 중첩 접근 방식을 도입하여 효율성을 더욱 향상시킵니다.

혼합 전문성 모델(MoE)이란 무엇인가요?

하이브리드 전문가 모델은 여러 개의 '전문가' 네트워크와 입력 데이터를 라우팅할 전문가를 결정하는 '게이트' 네트워크를 결합한 신경망 아키텍처입니다. 이 아키텍처는 모든 네트워크가 아닌 일부 전문가만 한 번에 활성화되기 때문에 계산 효율을 유지하면서 모델 크기를 크게 늘릴 수 있습니다. MoE 개념은 1991년 Jacobs, Jordan, Hinton에 의해 처음 제안되었지만 최근까지 대규모 언어 모델링에 널리 사용되지는 않았습니다. MoE 아키텍처는 전문가를 드물게 활성화하여 대규모 모델 학습 및 배포를 가능하게 하는 Google의 Switch Transformers, Microsoft의 Z-Code, DeepSeek의 DeepSeek-V3에서 사용됩니다.

DeepEP 성능

NV링크 및 RDMA 포워딩이 포함된 일반 커널

일반 커널을 H800(최대 160GB/s NVLink 최대 대역폭)에서 각각 CX7 InfiniBand 400Gb/s RDMA 네트워크 카드(최대 50GB/s 대역폭)에 연결하여 테스트했습니다. 그리고 DeepSeek-V3/R1 사전 학습 설정(배치당 4096개 토큰, 7168개 숨김, 상위 4개 그룹, 상위 8개 전문가, FP8 디스패칭 및 BF16 결합)을 따릅니다.

유형 디스패치 #EP 병목 구간 대역폭 #EP 결합 병목 구간 대역폭
인트라노드 8 153GB/s(NV링크) 8 158GB/s(NV링크)
인터노드 16 43GB/s(RDMA) 16 43GB/s(RDMA)
인터노드 32 44GB/s(RDMA) 32 47GB/s(RDMA)
인터노드 64 46GB/s(RDMA) 64 45GB/s(RDMA)

순수 RDMA를 사용하는 저지연 커널

각 커널을 CX7 InfiniBand 400Gb/s RDMA 네트워크 카드(최대 대역폭 ~50GB/s)에 연결하여 H800에서 지연 시간이 짧은 커널을 테스트했습니다. 그리고 일반적인 DeepSeek-V3/R1 프로덕션 설정(배치당 128개 토큰, 7168개 숨김, 상위 8명의 전문가, FP8 디스패칭 및 BF16 결합)을 따릅니다.

디스패치 #EP 지연 시간 RDMA 대역폭 #EP 결합 지연 시간 RDMA 대역폭
8 163 미국 46 GB/s 8 318 미국 46 GB/s
16 173 미국 43 GB/s 16 329 미국 44 GB/s
32 182 미국 41 GB/s 32 350 미국 41 GB/s
64 186 미국 40 GB/s 64 353 미국 41 GB/s
128 192 미국 39 GB/s 128 369 미국 39 GB/s
256 194 미국 39 GB/s 256 360 미국 40 GB/s

DeepEP는 어떻게 사용하나요?

DeepEP를 사용하려면 호퍼 GPU, Python 3.8+, CUDA 12.3+, PyTorch 2.1+, 노드 내 통신을 위한 NVLink와 노드 간 통신을 위한 RDMA 네트워크가 필요합니다. 이 라이브러리는 설치 전에 구성해야 하는 NVSHMEM의 수정된 버전에 따라 달라집니다.

개발

# SO 파일에 대한 심볼릭 링크 구축 및 만들기
NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py 빌드
# 플랫폼에 따라 특정 SO 이름을 수정할 수 있습니다.
ln -s build/lib.linux-x86_64-cpython-38/deep_ep_cpp.cpython-38-x86_64-linux-gnu.so

# 테스트 케이스 실행
# 참고: `tests/utils.py`에서 `init_dist` 함수를 수정할 수 있습니다.
#로 설정하고 여러 노드에서 실행합니다.
파이썬 테스트/테스트_인트라노드.py
파이썬 테스트/테스트_인터노드.py
파이썬 테스트/테스트_저지연.py

설치

NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py 설치

더 많은 DeepEP: https://github.com/deepseek-ai/Deepep