Merkmale von DeepEP

1

Professioneller Rahmen für verteilte Kommunikation

DeepEP ist ein verteiltes Kommunikations-Framework der nächsten Generation, das speziell für Mixture of Experts (MoE) und Expert Parallel (EP) Szenarien optimiert ist. Unser Framework bietet durchsatzstarke All-to-All-Kommunikationskerne mit niedriger Latenz für GPUs, die MoE-Scheduling und komponierbare Operationen perfekt unterstützen.

2

Leistungsstarke Architektur

DeepEP basiert auf reiner RDMA-Technologie und bietet eine Reihe von Kerneln mit geringer Latenz, die speziell für die Leistung der Inferenzdekodierung optimiert sind. Sie verfügen über eine einzigartige, auf Haken basierende Methode zur Überlappung von Kommunikation und Berechnung, die eine hervorragende parallele Effizienz erreicht, ohne SM-Ressourcen zu belegen.

3

Innovative Technologie

DeepEP unterstützt Low-Precision-Operationen einschließlich FP8 und bietet eine Optimierung für den in DeepSeek-V3 vorgeschlagenen gruppenbeschränkten Gating-Algorithmus. Unser Framework unterstützt insbesondere den effizienten Datentransfer über heterogene Domänen wie NVLink zu RDMA und gewährleistet so eine hervorragende Leistung bei Trainings- und Inferenz-Prefetching-Aufgaben.

Was ist DeepEP?

DeepEP ist auf MoE-Verteilungs- und Zusammenführungsoperationen ausgerichtet und unterstützt Operationen mit geringer Genauigkeit, einschließlich FP8. Gleichzeitig ist DeepEP speziell für den im DeepSeek-V3-Papier vorgeschlagenen Group-Limit-Gating-Algorithmus optimiert und bietet eine Reihe von Hochleistungskernen für die Weiterleitung asymmetrischer Domänenbandbreiten (z. B. von NVLink-Domänen zu RDMA-Domänen). Diese Kerne haben nicht nur einen hohen Durchsatz für Trainings- und Inferenz-Pre-Populationsaufgaben, sondern unterstützen auch die Stream-Multiprozessor (SM)-Zählsteuerung. Für latenzempfindliche Inferenzdekodierungsszenarien enthält DeepEP eine Reihe von reinen RDMA-Cores mit niedriger Latenz, um die Latenz zu minimieren. Die Bibliothek führt auch einen Hook-basierten Ansatz für die Überlappung von Kommunikation und Berechnung ein, der keine SM-Ressourcen verbraucht, was die Effizienz weiter verbessert.

Was ist ein Model of Mixed Expertise (MoE)?

Ein hybrides Expertenmodell ist eine neuronale Netzwerkarchitektur, die mehrere "Experten"-Netzwerke kombiniert, wobei ein "Gated"-Netzwerk entscheidet, an welche Experten die Eingabedaten weitergeleitet werden sollen. Diese Architektur ermöglicht es, das Modell erheblich zu vergrößern und gleichzeitig rechnerisch effizient zu bleiben, da nur einige der Experten gleichzeitig aktiviert werden und nicht alle Netzwerke. 1991 wurde das MoE-Konzept erstmals von Jacobs, Jordan und Hinton vorgeschlagen, aber erst in den letzten Jahren in großem Umfang für die Sprachmodellierung verwendet. Die MoE-Architektur wird von Googles Switch Transformers, Microsofts Z-Code und DeepSeeks DeepSeek-V3 verwendet, die durch die spärliche Aktivierung von Experten das Training und den Einsatz von Modellen in größerem Umfang ermöglicht.

DeepEP Leistung

Normale Kernel mit NVLink und RDMA-Weiterleitung

Wir testen normale Kernel auf H800 (~160 GB/s NVLink maximale Bandbreite), wobei jeder mit einer CX7 InfiniBand 400 Gb/s RDMA-Netzwerkkarte (~50 GB/s maximale Bandbreite) verbunden ist. Und wir folgen den DeepSeek-V3/R1 Pretraining-Einstellungen (4096 Token pro Stapel, 7168 versteckt, Top-4-Gruppen, Top-8-Experten, FP8-Dispatching und BF16-Kombination).

Typ Versendung #EP Engpass-Bandbreite Kombinieren Sie #EP Engpass-Bandbreite
Intranode 8 153 GB/s (NVLink) 8 158 GB/s (NVLink)
Internodium 16 43 GB/s (RDMA) 16 43 GB/s (RDMA)
Internodium 32 44 GB/s (RDMA) 32 47 GB/s (RDMA)
Internodium 64 46 GB/s (RDMA) 64 45 GB/s (RDMA)

Kernel mit niedriger Latenzzeit und reinem RDMA

Wir testen Kernel mit niedriger Latenz auf H800, die jeweils mit einer CX7 InfiniBand 400 Gb/s RDMA-Netzwerkkarte (~50 GB/s maximale Bandbreite) verbunden sind. Und wir folgen einer typischen DeepSeek-V3/R1-Produktionseinstellung (128 Token pro Stapel, 7168 versteckt, Top-8-Experten, FP8-Dispatching und BF16-Kombination).

Versendung #EP Latenzzeit RDMA-Bandbreite Kombinieren Sie #EP Latenzzeit RDMA-Bandbreite
8 163 uns 46 GB/s 8 318 uns 46 GB/s
16 173 uns 43 GB/s 16 329 uns 44 GB/s
32 182 uns 41 GB/s 32 350 uns 41 GB/s
64 186 uns 40 GB/s 64 353 usa 41 GB/s
128 192 uns 39 GB/s 128 369 uns 39 GB/s
256 194 uns 39 GB/s 256 360 uns 40 GB/s

Wie verwendet man DeepEP?

Die Verwendung von DeepEP erfordert einen Hopper-GPU, Python 3.8+, CUDA 12.3+, PyTorch 2.1+ sowie NVLink für die Intra-Node-Kommunikation und RDMA-Netzwerke für die Cross-Node-Kommunikation. Die Bibliothek hängt von einer modifizierten Version von NVSHMEM ab, die vor der Installation konfiguriert werden muss.

Entwicklung

# Erstellen und Erstellen von symbolischen Links für SO-Dateien
NVSHMEM_DIR=/Pfad/zu/installiert/nvshmem python setup.py build
# Sie können die spezifischen SO-Namen entsprechend Ihrer eigenen Plattform ändern
ln -s build/lib.linux-x86_64-cpython-38/deep_ep_cpp.cpython-38-x86_64-linux-gnu.so

# Testfälle ausführen
# HINWEISE: Sie können die Funktion `init_dist` in `tests/utils.py` ändern
# entsprechend Ihren eigenen Cluster-Einstellungen und starten Sie auf mehreren Knoten
python tests/test_intranode.py
python tests/test_internode.py
python tests/test_low_latency.py

Einrichtung

NVSHMEM_DIR=/Pfad/zu/installiert/nvshmem python setup.py install

Mehr DeepEP: https://github.com/deepseek-ai/Deepep