O libibverbs da Apple oculta símbolos GPUDirect RDMA; Buffer RDMA com cópia zero do Metal funciona no macOS

✍️ OpenClawRadar📅 Publicado: May 6, 2026🔗 Source
O libibverbs da Apple oculta símbolos GPUDirect RDMA; Buffer RDMA com cópia zero do Metal funciona no macOS
Ad

Uma continuação da investigação TinyGPU revela que a implementação RDMA da Apple suporta compartilhamento de memória com zero-cópia com buffers de GPU Metal, e símbolos ocultos indicam possível suporte a GPUDirect RDMA — não documentado e anteriormente desconhecido.

Principais Descobertas

O desenvolvedor testou ibv_reg_mr() com vários tipos de memória em um cluster Mac de 4 nós (3x M3 Ultra + M5 Max MacBook Pro, ~1,5 TB de memória unificada, Thunderbolt 5). Resultados:

  • malloc() — FALHOU (inesperado; funciona no Linux)
  • posix_memalign() — FALHOU (inesperado)
  • mmap(MAP_ANON) — PASSOU (esperado)
  • IOSurfaceGetBaseAddress() — PASSOU (sem documentação)
  • MTLBuffer.contents (Metal compartilhado) — PASSOU (sem documentação)

A RDMA da Apple valida o tipo de mapeamento VM, não o suporte físico. Alocações de heap falham; memória mapeada por VM (mmap, IOSurface, buffers Metal) passa — uma diferença chave em relação ao Linux.

Zero-Cópia Comprovada

Um buffer de 64MB mmap foi registrado triplamente: como uma região de memória RDMA, um buffer de GPU Metal e um IOSurface. Todos os registros foram bem-sucedidos com o mesmo lkey=0x101, confirmando compartilhamento com zero-cópia entre GPU e rede.

Ad

Símbolos Ocultos de GPUDirect RDMA

A análise do libibverbs.dylib da Apple via nm -a revelou símbolos não documentados, incluindo ibv_reg_dmabuf_mr, que no Linux permite GPUDirect RDMA. Isso sugere que a Apple já implementou a infraestrutura de kernel, mas a API não está exposta publicamente.

Status do eGPU Blackwell

O RTX PRO 5000 Blackwell 72GB em um Razer Core X V2 é detectado (link PCIe ativo, x4 @ 16 GT/s, 80 Gb/s TB5), e a extensão DriverKit do TinyGPU carrega. No entanto, o firmware GSP da NVIDIA falha com RuntimeError: RPC call 4097 failed with result 101. A decodificação do erro NOCAT revela FBFLCN UNRECOGNIZED_CLIENT — o tecido de memória da GPU não reconhece o peer PCIe através do TB5. Isso é um problema conhecido (tinygrad#15843); GPUs AMD funcionam perfeitamente. O desenvolvedor solicita colaboração com a equipe tinygrad para corrigir a inicialização do firmware GSP via TB5.

Para Quem É

Desenvolvedores que trabalham com computação GPU no macOS, RDMA ou infraestrutura de eGPU, especialmente aqueles interessados em caminhos de dados com zero-cópia para inferência ou treinamento distribuído.

📖 Leia a fonte completa: r/LocalLLaMA

Ad

👀 See Also