Caractéristiques de DeepEP

1

Cadre de communication professionnelle distribuée

DeepEP est un cadre de communication distribuée de nouvelle génération optimisé spécifiquement pour les scénarios de mélange d'experts (MoE) et d'experts parallèles (EP). Notre cadre offre des noyaux de communication all-to-all à haut débit et à faible latence pour les GPU, supportant parfaitement l'ordonnancement MoE et les opérations composables.

2

Architecture haute performance

DeepEP, basé sur la technologie RDMA pure, fournit un ensemble de noyaux à faible latence spécifiquement optimisés pour les performances de décodage d'inférence, avec une méthode unique de chevauchement de la communication et du calcul basée sur les crochets qui permet d'obtenir une excellente efficacité parallèle sans occuper de ressources SM.

3

Technologie innovante

DeepEP prend en charge les opérations de basse précision, y compris le FP8, et fournit une optimisation pour l'algorithme de gating contraint par le groupe proposé dans DeepSeek-V3. Notre cadre prend particulièrement en charge le transfert efficace de données à travers des domaines hétérogènes tels que NVLink à RDMA, garantissant des performances exceptionnelles dans les tâches d'entraînement et d'extraction d'inférences.

Qu'est-ce que DeepEP ?

DeepEP est dédié à la distribution des MoE et aux opérations de fusion, et prend en charge les opérations de faible précision, y compris le FP8. Parallèlement, DeepEP est spécialement optimisé pour l'algorithme de limitation de groupe proposé dans l'article DeepSeek-V3, et fournit une série de cœurs haute performance pour la transmission asymétrique de la bande passante (par exemple, des domaines NVLink aux domaines RDMA). Ces cœurs ont non seulement un débit élevé pour les tâches d'entraînement et de prépeuplement d'inférence, mais ils prennent également en charge le contrôle du nombre de multiprocesseurs de flux (SM). Pour les scénarios de décodage d'inférence sensibles à la latence, DeepEP inclut un ensemble de cœurs RDMA purs à faible latence pour minimiser la latence. La bibliothèque introduit également une approche de chevauchement communication-calcul basée sur des crochets qui ne consomme aucune ressource SM, ce qui améliore encore l'efficacité.

Qu'est-ce qu'un modèle d'expertise mixte ?

Un modèle expert hybride est une architecture de réseau neuronal qui combine plusieurs réseaux "experts", avec un réseau "à portes" qui décide vers quels experts acheminer les données d'entrée. Cette architecture permet au modèle d'augmenter considérablement sa taille tout en restant efficace sur le plan informatique, puisque seuls certains des experts sont activés à la fois plutôt que tous les réseaux.Le concept MoE a été proposé pour la première fois par Jacobs, Jordan et Hinton en 1991, mais n'a été largement utilisé dans la modélisation linguistique à grande échelle qu'au cours des dernières années. L'architecture MoE est utilisée par Switch Transformers de Google, Z-Code de Microsoft et DeepSeek-V3 de DeepSeek, qui permet la formation et le déploiement de modèles à grande échelle grâce à l'activation éparse d'experts.

Performance du DeepEP

Noyaux normaux avec NVLink et RDMA forwarding

Nous testons des noyaux normaux sur H800 (~160 Go/s de bande passante NVLink maximale), chacun étant connecté à une carte réseau CX7 InfiniBand 400 Gb/s RDMA (~50 Go/s de bande passante maximale). Nous suivons les paramètres de pré-entraînement de DeepSeek-V3/R1 (4096 tokens par lot, 7168 cachés, top-4 groupes, top-8 experts, FP8 dispatching et BF16 combining).

Type Envoi #EP Goulot d'étranglement de la bande passante Combiner #EP Goulot d'étranglement de la bande passante
Intranode 8 153 Go/s (NVLink) 8 158 Go/s (NVLink)
Internode 16 43 Go/s (RDMA) 16 43 Go/s (RDMA)
Internode 32 44 GB/s (RDMA) 32 47 GB/s (RDMA)
Internode 64 46 GB/s (RDMA) 64 45 GB/s (RDMA)

Noyaux à faible latence avec RDMA pur

Nous testons des noyaux à faible latence sur H800, chacun étant connecté à une carte réseau CX7 InfiniBand 400 Gb/s RDMA (~50 GB/s de bande passante maximale). Nous suivons une configuration de production DeepSeek-V3/R1 typique (128 jetons par lot, 7168 cachés, top-8 experts, FP8 dispatching et BF16 combining).

Envoi #EP Temps de latence Bande passante RDMA Combiner #EP Temps de latence Bande passante RDMA
8 163 nous 46 GB/s 8 318 nous 46 GB/s
16 173 nous 43 GB/s 16 329 nous 44 GB/s
32 182 nous 41 GB/s 32 350 nous 41 GB/s
64 186 nous 40 GB/s 64 353 utilisateurs 41 GB/s
128 192 nous 39 GB/s 128 369 Nous 39 GB/s
256 194 nous 39 GB/s 256 360 us 40 GB/s

Comment utiliser DeepEP ?

L'utilisation de DeepEP nécessite un GPU Hopper, Python 3.8+, CUDA 12.3+, PyTorch 2.1+, ainsi que NVLink pour la communication intra-nœud et des réseaux RDMA pour la communication inter-nœuds. La bibliothèque dépend d'une version modifiée de NVSHMEM, qui doit être configurée avant l'installation.

Développement

# Construire et créer des liens symboliques pour les fichiers SO
NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py build
# Vous pouvez modifier les noms spécifiques des SO en fonction de votre propre plate-forme.
ln -s build/lib.linux-x86_64-cpython-38/deep_ep_cpp.cpython-38-x86_64-linux-gnu.so

# Exécuter les cas de test
# NOTES : vous pouvez modifier la fonction `init_dist` dans `tests/utils.py`
# en fonction de vos propres paramètres de cluster, et lancez dans plusieurs nœuds
python tests/test_intranode.py
python tests/test_internode.py
python tests/test_low_latency.py

Installation

NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py install

Plus de DeepEP : https://github.com/deepseek-ai/Deepep