Особенности DeepEP

1

Профессиональная система распределенной коммуникации

DeepEP - это распределенный коммуникационный фреймворк нового поколения, оптимизированный специально для сценариев Mixture of Experts (MoE) и Expert Parallel (EP). Наш фреймворк предлагает высокопроизводительные и малозамедленные коммуникационные ядра "все ко всем" для графических процессоров, идеально поддерживающие планирование MoE и композитные операции.

2

Высокопроизводительная архитектура

DeepEP, основанный на чистой технологии RDMA, предоставляет набор ядер с низкой задержкой, специально оптимизированных для производительности декодирования выводов, с уникальным методом перекрытия связи и вычислений на основе крючков, который позволяет достичь превосходной параллельной эффективности, не занимая ресурсов SM.

3

Инновационные технологии

DeepEP поддерживает операции с низкой точностью, включая FP8, и обеспечивает оптимизацию для алгоритма группового ограничения стробирования, предложенного в DeepSeek-V3. Наш фреймворк поддерживает эффективную передачу данных между гетерогенными доменами, такими как NVLink и RDMA, обеспечивая превосходную производительность в задачах обучения и предварительной выборки выводов.

Что такое DeepEP?

DeepEP предназначен для операций распределения и слияния MoE и поддерживает операции низкой точности, включая FP8. В то же время DeepEP специально оптимизирован для алгоритма группового ограничения, предложенного в документе DeepSeek-V3, и предоставляет ряд высокопроизводительных ядер для асимметричной пересылки пропускной способности доменов (например, из доменов NVLink в домены RDMA). Эти ядра не только обладают высокой пропускной способностью для задач обучения и предварительного наполнения выводов, но и поддерживают управление количеством потоковых мультипроцессоров (SM). Для сценариев декодирования выводов, чувствительных к задержкам, DeepEP включает набор чистых ядер RDMA с низкой задержкой для минимизации задержек. Кроме того, в библиотеке реализован подход перекрытия коммуникаций и вычислений на основе крючков, который не потребляет никаких ресурсов SM, что еще больше повышает эффективность.

Что такое модель смешанной экспертизы (MoE)?

Гибридная экспертная модель - это нейросетевая архитектура, объединяющая несколько "экспертных" сетей, при этом "закрытая" сеть решает, к каким экспертам направить входные данные. Такая архитектура позволяет модели значительно увеличиваться в размерах, оставаясь при этом вычислительно эффективной, поскольку одновременно активируются только некоторые из экспертов, а не все сети. Концепция MoE была впервые предложена Джейкобсом, Джорданом и Хинтоном в 1991 году, но до последних лет она не находила широкого применения в крупномасштабном моделировании языка. Архитектура MoE используется в Switch Transformers от Google, Z-Code от Microsoft и DeepSeek-V3 от DeepSeek, что позволяет проводить обучение и развертывание более масштабных моделей за счет разреженной активации экспертов.

Производительность DeepEP

Обычные ядра с NVLink и пересылкой RDMA

Мы тестируем обычные ядра на H800 (максимальная пропускная способность NVLink ~160 Гб/с), каждое из которых подключено к сетевой карте CX7 InfiniBand 400 Гб/с RDMA (максимальная пропускная способность ~50 Гб/с). Мы используем настройки предварительного обучения DeepSeek-V3/R1 (4096 токенов на партию, 7168 скрытых, топ-4 группы, топ-8 экспертов, диспетчеризация FP8 и объединение BF16).

Тип Диспетчер #EP Узкое место пропускной способности Комбинезон #EP Узкое место пропускной способности
Внутриузловой 8 153 ГБ/с (NVLink) 8 158 ГБ/с (NVLink)
Междоузлия 16 43 ГБ/с (RDMA) 16 43 ГБ/с (RDMA)
Междоузлия 32 44 ГБ/с (RDMA) 32 47 ГБ/с (RDMA)
Междоузлия 64 46 ГБ/с (RDMA) 64 45 ГБ/с (RDMA)

Ядра с низкой задержкой и чистым RDMA

Мы тестируем ядра с низкой задержкой на H800, каждый из которых подключен к сетевой карте CX7 InfiniBand 400 Гбит/с RDMA (максимальная пропускная способность ~50 ГБ/с). Мы используем типичные производственные настройки DeepSeek-V3/R1 (128 токенов на партию, 7168 скрытых, топ-8 экспертов, диспетчеризация FP8 и объединение BF16).

Диспетчер #EP Латентность Пропускная способность RDMA Комбинезон #EP Латентность Пропускная способность RDMA
8 163 мы 46 ГБ/с 8 318 мы 46 ГБ/с
16 173 мы 43 ГБ/с 16 329 мы 44 ГБ/с
32 182 мы 41 ГБ/с 32 350 мы 41 ГБ/с
64 186 нас 40 ГБ/с 64 353 нас 41 ГБ/с
128 192 мы 39 ГБ/с 128 369 мы 39 ГБ/с
256 194 мы 39 ГБ/с 256 360 мы 40 ГБ/с

Как использовать DeepEP?

Для использования DeepEP требуется графический процессор Hopper, Python 3.8+, CUDA 12.3+, PyTorch 2.1+, а также NVLink для внутриузловой связи и сети RDMA для межузловой связи. Библиотека зависит от модифицированной версии NVSHMEM, которую необходимо настроить перед установкой.

Разработка

# Создание и создание символических ссылок для файлов SO
NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py build
# Вы можете изменить названия конкретных SO в соответствии с вашей собственной платформой.
ln -s build/lib.linux-x86_64-cpython-38/deep_ep_cpp.cpython-38-x86_64-linux-gnu.so

# Выполнение тестовых случаев
# ПРИМЕЧАНИЯ: вы можете изменить функцию `init_dist` в файле `tests/utils.py`.
# в соответствии с вашими собственными настройками кластера, и запустите на нескольких узлах
python tests/test_intranode.py
python tests/test_internode.py
python tests/test_low_latency.py

Установка

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

Еще больше ДипЭп: https://github.com/deepseek-ai/Deepep