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:
- Gestão de memória: Adição de uma API ao HMM (Heterogeneous Memory Management) para suportar DMA P2P.
- Driver Nouveau: Integração de suporte às operações de páginas privadas.
- Driver RDMA: Suporte a DMA P2P para dispositivos com páginas privadas.
- Fallback para erros de DMA: Implementação de uma solução alternativa em caso de falhas no mapeamento DMA P2P.
- 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.