Inteligência Artificial

    DualPipe e Pipeline Parallelism Bidirecional: Sobreposição e Zero-Bubble em LLMs

    Descubra como o algoritmo DualPipe e o agendamento Zero-Bubble eliminam a ociosidade em clusters de treinamento distribuído, sobrepondo All-to-All e GEMMs em modelos MoE.

    2026-08-3117 minEquipe MaxVision
    CLIP_001 · DJI O4FPV · 4K · 60FPS
    LABS · IA & SISTEMAS DISTRIBUÍDOS · 2026.08.31

    O DualPipe e o agendamento Zero-Bubble eliminam a ociosidade em clusters de IA ao sobrepor comunicação inter-nó e multiplicação de matrizes. Essa técnica viabiliza treinar modelos Mixture-of-Experts (MoE) com utilização de silício superior a 40%.

    Em clusters com milhares de aceleradores, a largura de banda de rede entre servidores é o gargalo limitante. Quando o modelo ultrapassa a memória de um nó, dividir camadas gera bolhas de espera que desperdiçam ciclos de clock.

    Nó de servidor de supercomputador de IA com cabeamento óptico de alta velocidade e conectores carmim sob iluminação industrial chiaroscuro

    O que é o problema da bolha no Pipeline Parallelism

    O problema da bolha é o período ocioso em que GPUs aguardam tensores intermediários para iniciar cálculos. Ele surge da dependência sequencial obrigatória entre camadas de uma rede neural profunda.

    Quando treinamos modelos de centenas de bilhões de parâmetros, particionar o modelo linearmente entre p nós de pipeline é indispensável. O primeiro nó processa embeddings e despacha ativações para o segundo, que calcula suas camadas e repassa ao terceiro.

    No agendamento síncrono clássico do GPipe (Huang et al., 2019), o batch global é fatiado em m micro-batches. Como o último estágio p - 1 só recebe dados após p - 1 etapas de propagação direta, os aceleradores acumulam inatividade forçada.

    A fração do tempo total de treinamento perdida em inatividade nos esquemas tradicionais é expressa pela relação:

    F_bubble = (p - 1) ÷ (m + p - 1) ≈ (p - 1) ÷ m

    Em uma configuração típica com p = 8 estágios e m = 16 micro-batches, a ociosidade atinge:

    F_bubble = (8 - 1) ÷ (16 + 8 - 1) = 7 ÷ 23 ≈ 30,43%

    Isso significa que quase um terço do consumo elétrico e do poder computacional do cluster permanece paralisado sem executar operações úteis de ponto flutuante.

    Estratégia de AgendamentoFração Teórica de Bolha (F_bubble)Pegada de Ativações na VRAMComplexidade de Sincronização
    GPipe (Síncrono Clássico)(p - 1) ÷ (m + p - 1)O(m) micro-batchesBaixa (Barreira global por batch)
    1F1B (Megatron-LM)(p - 1) ÷ (m + p - 1)O(p) micro-batchesMédia (Alternância local 1F-1B)
    1F1B Interleaved(p - 1) ÷ (v × m)O(v × p) micro-batchesAlta (Múltiplos chunks por GPU)
    Chimera Bidirecional(p - 2) ÷ (2 × m)O(p) micro-batchesAlta (Dois fluxos espelhados)
    DualPipe com Zero-Bubble≈ 0 (Totalmente sobreposto)O(p) micro-batchesCrítica (SM partition e hardware barriers)

    Por que aumentar o número de micro-batches esgota a VRAM

    Aumentar o número de micro-batches dilui o percentual da bolha matemática, mas provoca uma explosão na retenção de ativações na memória HBM. Cada micro-batch em trânsito retém tensores intermediários até que sua retropropagação termine.

    No GPipe, todas as ativações dos m micro-batches precisam ser preservadas na VRAM simultaneamente. A memória necessária escala como O(m). Para manter a bolha abaixo de 5%, seria preciso usar m ≥ 20 × p, ultrapassando a capacidade física de 80 GB ou 192 GB de uma GPU moderna.

    O agendamento intercalado 1F1B do Megatron-LM (Narayanan et al., SC21) amenizou o problema ao executar um Forward seguido de um Backward após o aquecimento inicial. Isso limitou a pegada de ativações a O(p) micro-batches no estágio zero.

    Contudo, o 1F1B clássico não reduz a taxa de bolha fundamental (p - 1) ÷ m. Ele apenas estabiliza a memória. Se os engenheiros precisarem de batch sizes globais menores para garantir a convergência matemática do otimizador AdamW, o sistema volta a sofrer alta inatividade.

    CRONOGRAMA CLÁSSICO 1F1B (p = 4 estágios de pipeline):
    
    GPU 3:          [F0][F1][F2][F3][B0][B1][B2][B3]
    GPU 2:       [F0][F1][F2][F3]  [B0][B1][B2][B3]
    GPU 1:    [F0][F1][F2][F3]    [B0][B1][B2][B3]
    GPU 0: [F0][F1][F2][F3]      [B0][B1][B2][B3]
           └─────┬─────┘         └─────┬─────┘
            Warmup Forward        Cool-down Backward
            (Bolha Inicial)       (Bolha Final)
    

    Como o desacoplamento de gradientes viabiliza o Zero-Bubble

    O agendamento Zero-Bubble elimina a espera ao separar o cálculo do gradiente em duas tarefas matemáticas independentes com dependências temporais distintas. Essa separação quebra o monólito da retropropagação tradicional.

    Na retropropagação de uma camada com parâmetros W e entradas x, dois gradientes distintos são computados:

    1. Gradiente de Ativação (B_x): Calcula ∂L ÷ ∂x = (∂L ÷ ∂y) × W^T. É transmitido imediatamente ao estágio predecessor i - 1 para destravar a cadeia temporal.
    2. Gradiente de Pesos (B_w): Calcula ∂L ÷ ∂W = x^T × (∂L ÷ ∂y). É acumulado localmente no otimizador e só é exigido no fim do batch.

    Como demonstrado na pesquisa de Qi et al. (ICLR 2024), o cálculo de B_w não possui dependência causal com nós vizinhos.

    Os nós podem postergar o cálculo de B_w e encaixá-lo estrategicamente nas lacunas ociosas do pipeline. O tempo de execução de um micro-batch decompõe-se na soma:

    t_B = t_Bx + t_Bw

    Em transformadores padrão com atenção densa, a proporção temporal é equilibrada:

    t_Bx ≈ t_F e t_Bw ≈ t_F

    Ao priorizar a execução imediata de F e B_x para destravar nós adjacentes, as GPUs utilizam os blocos B_w para preencher com computação real os intervalos que antes formavam a bolha.

    Bancada de testes de engenharia com chip acelerador de IA e ferramenta de diagnóstico carmim sob iluminação dramática


    Como o DualPipe atua em modelos Mixture-of-Experts

    O algoritmo DualPipe funde o pipeline bidirecional com o agendamento em três fases (F, B_x, B_w), permitindo sobreposição perfeita entre comunicação de rede e multiplicação matricial. Ele foi projetado para modelos MoE massivos como o DeepSeek-V3.

    Em modelos Mixture-of-Experts, cada token é roteado dinamicamente para um subconjunto de experts distribuídos entre servidores. Esse roteamento exige duas operações coletivas All-to-All pesadas em cada camada:

    • Dispatch All-to-All: Envia os tokens selecionados das GPUs de origem para as GPUs que hospedam os experts especialistas.
    • Combine All-to-All: Devolve as saídas computadas pelos experts de volta para os nós que mantêm o fluxo principal da sequência.

    O DeepSeek-V3 Technical Report (2024/2025) detalha a arquitetura do DualPipe. O sistema executa dois pipelines simultâneos chamados Direction 0 (avança do estágio 0 ao p - 1) e Direction 1 (avança do estágio p - 1 ao 0).

    SOBREPOSIÇÃO MATRICIAL E COLETIVA NO DUALPIPE:
    
    ┌──────────────────────────────────────────────────────────────┐
    │ STREAM DE COMPUTAÇÃO (Tensor Cores / 96-112 SMs):            │
    │ [ GEMM Atenção MLA ] ──► [ GEMM Projeção W ] ──► [ GEMM B_w ]│
    ├──────────────────────────────────────────────────────────────┤
    │ STREAM DE COMUNICAÇÃO (TMA / NCCL / 20 SMs):                 │
    │ [ All-to-All Dispatch MoE ] ──► [ All-to-All Combine MoE ]   │
    └──────────────────────────────────────────────────────────────┘
     ▲                                                            ▲
     └───────────── Sincronização via Hardware mbarrier ──────────┘
    

    A passagem direta de um micro-batch divide-se em componentes de atenção e componentes de experts. Enquanto o barramento de rede transfere os dados do All-to-All via InfiniBand, os núcleos Tensor Core processam os GEMMs densos da Multi-Head Latent Attention (MLA).

    A latência da rede inter-nó é completamente oculta pela computação matemática local, zerando o impacto das barreiras coletivas no tempo final do step.


    A discrepância física entre a taxa de transferência interna de um servidor e a rede externa torna a sobreposição de comunicação a única forma viável de escalar clusters MoE. A comunicação inter-nó é a principal restrição de velocidade em datacenters.

    Dentro de um nó de 8 GPUs Hopper H100 ou H800, os aceleradores comunicam-se via interconexão NVLink 4, que entrega 900 GB/s bidirecionais por placa. No nó Blackwell B200, o NVLink 5 alcança 1.800 GB/s.

    Em contrapartida, adaptadores conectam os nós via InfiniBand NDR a 400 Gbps, fornecendo cerca de 50 GB/s de banda por porta. Mesmo com InfiniBand XDR a 800 Gbps (100 GB/s), a rede externa permanece 9 a 18 vezes mais lenta que o NVLink intra-nó.

    HIERARQUIA DE LARGURA DE BANDA EM HARDWARE DE IA:
    
    1. Memória Local HBM3e (NVIDIA B200):        8.000 GB/s (8,00 TB/s)
    2. Memória Local HBM3 (NVIDIA H100 SXM5):     3.350 GB/s (3,35 TB/s)
    3. Intra-Nó NVLink 5 (Blackwell 72-GPU):      1.800 GB/s (1,80 TB/s)
    4. Intra-Nó NVLink 4 (Hopper 8-GPU):            900 GB/s (0,90 TB/s)
    5. Inter-Nó InfiniBand XDR (Por GPU/Porta):     100 GB/s (0,10 TB/s)
    6. Inter-Nó InfiniBand NDR (Por GPU/Porta):      50 GB/s (0,05 TB/s)
    

    Sem a sobreposição contínua provida pelo DualPipe, as GPUs gastariam até 56% de seus ciclos de clock ociosas aguardando pacotes RDMA atravessarem os switches da rede externa.

    Corredor técnico de datacenter de inteligência artificial com gabinetes de servidores e organizadores de cabo carmim em perspectiva cinematográfica


    Como implementar DualPipe em CUDA sem contenção de SMs

    A sobreposição eficiente exige isolar os recursos de silício da GPU para evitar que operações de rede degradem o cache L2 e os registradores dos núcleos matriciais. O controle fino de Streaming Multiprocessors (SMs) é essencial.

    Em um processador NVIDIA H100 com 132 SMs disponíveis, lançar kernels concorrentes em streams CUDA genéricos gera concorrência desordenada. Para evitar perdas de desempenho, a arquitetura de software divide os recursos de forma estrita:

    1. SMs de Comunicação (~20 SMs): Dedicados a gerenciar a biblioteca NCCL, empacotar buffers (chunk packing) e realizar transferências assíncronas via Tensor Memory Accelerator (TMA).
    2. SMs de Computação (~94 a 112 SMs): Dedicados exclusivamente a executar instruções matriciais assíncronas (WGMMA) para GEMMs de atenção e retropropagação de pesos.
    // Exemplo conceitual de particionamento e sobreposição assíncrona
    cudaStream_t stream_compute, stream_comm;
    cudaStreamCreateWithPriority(&stream_compute, cudaStreamNonBlocking, -1); // Alta prioridade
    cudaStreamCreateWithPriority(&stream_comm, cudaStreamNonBlocking, 0);
    
    // Dispara comunicação All-to-All de especialistas MoE em paralelo
    ncclAllToAll(send_buff, recv_buff, count, ncclFloat, comm, stream_comm);
    
    // Executa multiplicação matricial de projeção e atenção sem bloqueio
    launch_wgmma_mla_gemm(input_tensor, weight_tensor, output_tensor, stream_compute);
    
    // Sincronização por barreira de hardware na memória compartilhada
    cudaEventRecord(comm_ready_event, stream_comm);
    cudaStreamWaitEvent(stream_compute, comm_ready_event, 0);
    

    A sincronização entre computação e rede ocorre por meio de barreiras assíncronas em memória compartilhada (mbarrier) e eventos CUDA de baixa sobrecarga. Isso garante latência sub-microssegundo sem intervenção da CPU hospedeira.


    Resultados práticos de MFU em escala de produção

    A métrica Model FLOPs Utilization (MFU) afere a eficiência real do cluster confrontando o throughput efetivo com o teto teórico do silício. O DualPipe viabiliza patamares recordes de aproveitamento em modelos abertos.

    Durante o treinamento do DeepSeek-V3 671B em um cluster de 2.048 aceleradores NVIDIA H800, a combinação de DualPipe, quantização FP8 e paralelismo de especialistas atingiu MFU estável entre 40,0% e 43,7%.

    No modelo denso representativo Llama 3 405B treinado com paralelismo 4D convencional (Megatron-LM com pipeline 1F1B padrão), a MFU reportada no cluster de 16k GPUs H100 foi de aproximadamente 38% a 41%.

    A capacidade do DualPipe de manter índices superiores em uma arquitetura MoE com comunicações All-to-All massivas comprova a eficácia da sobreposição. A bolha de pipeline efetiva foi reduzida para menos de 2,1%, viabilizando treinamento estável com custo computacional expressivamente menor.


    FAQ técnico sobre DualPipe e Pipeline Parallelism

    O que diferencia o DualPipe do agendamento Chimera clássico?

    O Chimera introduziu pipelines bidirecionais para cortar a bolha matemática pela metade, mas tratava Forward e Backward como blocos indivisíveis. O DualPipe decompõe a retropropagação em B_x e B_w e sobrepõe comunicações coletivas All-to-All com GEMMs de atenção densa a cada micro-passo.

    Como o DualPipe afeta o consumo de memória VRAM das GPUs?

    O DualPipe mantém a pegada de ativações no mesmo patamar assintótico O(p) do 1F1B tradicional. A retenção temporária de tensores para calcular B_w é balanceada pela rápida liberação das ativações após a transmissão de B_x.

    É possível aplicar o DualPipe em modelos densos tradicionais sem MoE?

    Sim. Embora o benefício seja máximo em arquiteturas MoE com intenso tráfego All-to-All, modelos densos também aproveitam o DualPipe sobrepondo as comunicações ponto-a-ponto (P2P) entre estágios com os GEMMs de projeção linear.

    Por que o particionamento de SMs é obrigatório no Hopper e Blackwell?

    Sem isolamento de streams, rotinas NCCL de comunicação disputam linhas de cache L2 e decodificadores de instrução com os núcleos de multiplicação matricial WGMMA. O particionamento garante previsibilidade e elimina stalls no pipeline de execução.


    Referências e documentação primária

    1. DeepSeek-V3 Technical Report (2024/2025): Liu, A. et al. DeepSeek-V3 Technical Report. Arquitetura DualPipe, MLA e treinamento MoE em escala. arXiv:2412.19437 — Repositório Oficial: github.com/deepseek-ai/DeepSeek-V3
    2. Zero-Bubble Pipeline Parallelism (ICLR 2024): Qi, P. et al. Zero Bubble Pipeline Parallelism. Desacoplamento de B_x e B_w e algoritmos ZBP/ZBH. arXiv:2401.10241 — Repositório Oficial: github.com/sail-sg/zero-bubble-pipeline-parallelism
    3. Megatron-LM (SC21): Narayanan, D. et al. Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM. Agendamento 1F1B síncrono e interleaved. arXiv:2104.04473
    4. GPipe (NeurIPS 2019): Huang, Y. et al. GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism. Formulação seminal da bolha (p-1)/m. arXiv:1811.06965
    5. Chimera (SC21): Li, S. & Hoefler, T. Chimera: Efficiently Training Large-Scale Neural Networks with Bidirectional Pipelines. arXiv:2107.04110
    TAGS
    • Inteligência Artificial
    • Pipeline Parallelism
    • DualPipe
    • Zero-Bubble
    • Treinamento Distribuído
    • DeepSeek-V3
    • Mixture of Experts
    • MaxVision Labs
    Mascote da MaxVision para contato rápido no WhatsAppFale agora pelo WhatsApp