Linux Kernel

NVIDIA avança no suporte a RDMA direto entre GPUs e dispositivos privados no Linux

Imagem com logomarca da NVIDIA

A NVIDIA, em colaboração com outros líderes da indústria, está introduzindo novos patches para o Linux que trazem avanços significativos no suporte ao acesso RDMA (Remote Direct Memory Access) direto entre GPUs e dispositivos privados. Essa iniciativa tem como foco principal otimizar a troca de dados entre GPUs e outros dispositivos, como adaptadores de rede (NICs), reduzindo latências e melhorando a eficiência geral do sistema.

O que é o suporte a RDMA direto para páginas privadas?

O RDMA direto permite que dispositivos, como GPUs e NICs, compartilhem dados sem a necessidade de passar pela memória RAM do sistema. No contexto das páginas privadas de dispositivos, essa tecnologia permite que a GPU exponha diretamente os dados da memória privada para outros dispositivos, eliminando a sobrecarga associada ao acesso tradicional via RAM.

Os novos patches propostos pela NVIDIA incluem:

  • Mudanças na gestão de memória:
  • Adição de suporte para operações de páginas privadas usando a estrutura pagemap_ops, permitindo que dispositivos manipulem diretamente as páginas privadas.
  • Uso da função hmm_range_fault para conexões P2P (Peer-to-Peer) de páginas privadas, substituindo a abordagem tradicional baseada em falhas de páginas.
  • Aprimoramentos em drivers:
  • Driver Nouveau: Suporte para a função de callback p2p_page, permitindo que GPUs NVIDIA usem eficientemente P2P DMA.
  • Driver MLX5: Integração com o ATS (Address Translation Service) para memória ODP, otimizando o uso do DMA para páginas privadas. Quando P2P DMA falha devido às limitações de ponte, o sistema recorre ao DMA padrão usando memória host.

Impacto nos sistemas de alta performance

A implementação do RDMA direto para páginas privadas traz vantagens claras:

  • Redução de latência: A eliminação da RAM como intermediária acelera a transferência de dados.
  • Maior eficiência: Dispositivos podem acessar diretamente os dados necessários, diminuindo a sobrecarga de processamento.
  • Compatibilidade futura: Embora os patches iniciais foquem no driver Nouveau e no driver MLX5, espera-se que o suporte seja expandido para outras soluções, incluindo o driver oficial da NVIDIA.

Como os patches funcionam

A proposta, apresentada por Yonatan Maman, engenheiro da NVIDIA, é composta por cinco patches principais que abordam as seguintes áreas:

  1. Gestão de memória: Adição de uma API ao HMM (Heterogeneous Memory Management) para suportar DMA P2P.
  2. Driver Nouveau: Integração de suporte às operações de páginas privadas.
  3. Driver RDMA: Suporte a DMA P2P para dispositivos com páginas privadas.
  4. Fallback para erros de DMA: Implementação de uma solução alternativa em caso de falhas no mapeamento DMA P2P.
  5. Aprimoramento no ATS: Melhorias no uso do ATS para otimizar o acesso à memória ODP.

Esses patches foram testados utilizando os drivers open-source Nouveau e MLX5, mas a estrutura é projetada para compatibilidade mais ampla no futuro.

Próximos passos

Para engenheiros e entusiastas que desejam explorar ou contribuir para essa iniciativa, os detalhes estão disponíveis no repositório de desenvolvimento do kernel Linux. O patch RFC pode ser acessado pelo seguinte link: GPU Direct RDMA RFC Patch.

Conclusão

O suporte a RDMA direto para páginas privadas representa um grande passo à frente para aplicações centradas em GPUs e computação de alto desempenho. A NVIDIA e seus parceiros continuam a impulsionar a inovação, entregando soluções que aumentam a eficiência e reduzem a latência nos fluxos de trabalho modernos.