Caraterísticas do DeepEP

1

Quadro de comunicação profissional distribuída

DeepEP é um framework de comunicação distribuída de última geração otimizado especificamente para cenários de Mixture of Experts (MoE) e Expert Parallel (EP). Nosso framework oferece kernels de comunicação all-to-all de alta taxa de transferência e baixa latência para GPUs, suportando perfeitamente o agendamento MoE e operações compostas.

2

Arquitetura de elevado desempenho

O DeepEP, baseado em tecnologia RDMA pura, fornece um conjunto de kernels de baixa latência especificamente otimizados para o desempenho de decodificação de inferência, apresentando um método exclusivo de sobreposição de comunicação-computação baseado em gancho que atinge excelente eficiência paralela sem ocupar recursos de SM.

3

Tecnologia inovadora

O DeepEP suporta operações de baixa precisão, incluindo FP8, e fornece otimização para o algoritmo de gating com restrição de grupo proposto no DeepSeek-V3. A nossa estrutura suporta particularmente a transferência eficiente de dados entre domínios heterogéneos, como NVLink para RDMA, garantindo um desempenho excecional em tarefas de formação e pré-busca de inferência.

O que é o DeepEP?

O DeepEP é dedicado às operações de distribuição e fusão de MoE, e suporta operações de baixa precisão, incluindo FP8. Ao mesmo tempo, o DeepEP é especialmente otimizado para o algoritmo de limite de grupo proposto no documento DeepSeek-V3 e fornece uma série de núcleos de alto desempenho para encaminhamento de largura de banda de domínio assimétrico (por exemplo, de domínios NVLink para domínios RDMA). Estes núcleos não só têm um elevado rendimento para tarefas de pré-população de formação e inferência, como também suportam o controlo de contagem de multiprocessadores (SM) de fluxo. Para cenários de decodificação de inferência sensíveis à latência, o DeepEP inclui um conjunto de núcleos puros de baixa latência RDMA para minimizar a latência. A biblioteca também introduz uma abordagem de sobreposição de comunicação-computação baseada em gancho que não consome nenhum recurso SM, melhorando ainda mais a eficiência.

O que é um Modelo de Competências Mistas (MdE)?

Um modelo de perito híbrido é uma arquitetura de rede neural que combina várias redes de "peritos", com uma rede "fechada" que decide para que peritos devem ser encaminhados os dados de entrada. Esta arquitetura permite que o modelo cresça significativamente em tamanho, mantendo-se computacionalmente eficiente, uma vez que apenas alguns dos especialistas são activados de cada vez, em vez de todas as redes. O conceito de MdE foi proposto pela primeira vez por Jacobs, Jordan e Hinton em 1991, mas não foi amplamente utilizado na modelação de línguas em grande escala até aos últimos anos. A arquitetura MoE é utilizada pelo Switch Transformers da Google, pelo Z-Code da Microsoft e pelo DeepSeek-V3 da DeepSeek, que permite a formação e implementação de modelos em grande escala através da ativação esparsa de especialistas.

Desempenho do DeepEP

Kernels normais com encaminhamento NVLink e RDMA

Testamos kernels normais no H800 (~160 GB/s de largura de banda máxima NVLink), com cada um conectado a uma placa de rede CX7 InfiniBand 400 Gb/s RDMA (~50 GB/s de largura de banda máxima). E seguimos a configuração de pré-treinamento do DeepSeek-V3/R1 (4096 tokens por lote, 7168 ocultos, top-4 grupos, top-8 especialistas, envio FP8 e combinação BF16).

Tipo Despacho #EP Largura de banda de estrangulamento Combinar #EP Largura de banda de estrangulamento
Intranode 8 153 GB/s (NVLink) 8 158 GB/s (NVLink)
Nó interno 16 43 GB/s (RDMA) 16 43 GB/s (RDMA)
Nó interno 32 44 GB/s (RDMA) 32 47 GB/s (RDMA)
Nó interno 64 46 GB/s (RDMA) 64 45 GB/s (RDMA)

Kernels de baixa latência com RDMA puro

Testamos kernels de baixa latência no H800 com cada um conectado a uma placa de rede CX7 InfiniBand 400 Gb/s RDMA (~50 GB/s de largura de banda máxima). E seguimos uma configuração de produção típica do DeepSeek-V3/R1 (128 tokens por lote, 7168 ocultos, especialistas top-8, envio FP8 e combinação BF16).

Despacho #EP Latência Largura de banda RDMA Combinar #EP Latência Largura de banda RDMA
8 163 nós 46 GB/s 8 318 nós 46 GB/s
16 173 nós 43 GB/s 16 329 nós 44 GB/s
32 182 nós 41 GB/s 32 350 us 41 GB/s
64 186 nós 40 GB/s 64 353 us 41 GB/s
128 192 nós 39 GB/s 128 369 us 39 GB/s
256 194 nós 39 GB/s 256 360 us 40 GB/s

Como utilizar o DeepEP?

O uso do DeepEP requer uma GPU Hopper, Python 3.8+, CUDA 12.3+, PyTorch 2.1+, bem como NVLink para comunicação intra-nó e redes RDMA para comunicação entre nós. A biblioteca depende de uma versão modificada do NVSHMEM, que precisa ser configurada antes da instalação.

Desenvolvimento

# Criar e fazer ligações simbólicas para ficheiros SO
NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py build
# Pode alterar os nomes específicos de SO de acordo com a sua própria plataforma
ln -s build/lib.linux-x86_64-cpython-38/deep_ep_cpp.cpython-38-x86_64-linux-gnu.so

# Executar casos de teste
# NOTAS: é possível modificar a função `init_dist` em `tests/utils.py`
# de acordo com as suas próprias definições de cluster, e lançar em vários nós
python testes/teste_intranode.py
python testes/teste_internode.py
python tests/test_low_latency.py

Instalação

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

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