thunderbolt-ibverbs: emular InfiniBand sobre USB4 para inferencia distribuida

Fuentes: thunderbolt-ibverbs: We have InfiniBand at home
Imagen generada por IA con el prompt: Two compact mini PCs linked by a glowing USB-C cable with abstract data packets and light trails streaming between them, dark tech lab setting, editorial illustration
Imagen generada con IA

El proyecto thunderbolt-ibverbs, publicado por la organización hellas-ai, consiste en un módulo para el kernel de Linux y un shim en espacio de usuario que hacen que un enlace genérico USB4/Thunderbolt se presente ante las aplicaciones como un dispositivo InfiniBand de baja latencia y alto rendimiento. El autor lo ha empleado para ejecutar inferencia distribuida entre dos mini PC Strix Halo de 128 GB.

La motivación de fondo es que los enlaces Thunderbolt/USB4 de consumo ofrecen un ancho de banda considerable, pero las pilas de software estándar —Thunderbolt networking, soft-RoCE sobre esa misma conexión— desperdician la mayor parte de ese rendimiento, sobre todo cuando se necesita una API tipo verbs propia de HPC. Al exponer una interfaz RDMA verbs auténtica sobre el enlace, es posible reutilizar código ya escrito para InfiniBand —NCCL, RCCL, MPI, ib_send_bw, etc.— sin tocar la aplicación.

A grandes rasgos, el módulo se enchufa al subsistema RDMA del kernel y registra el enlace Thunderbolt/USB4 como dispositivo IB; un shim de usuario se ocupa del transporte real. El autor advierte de forma explícita que la totalidad del código del repositorio está generado por IA (mayoritariamente Codex 5.5 y Opus 4.7) y que, con casi total seguridad, contiene suposiciones erróneas y alucinaciones: el aviso del repositorio lo califica como «solo para uso de investigación, no apto para consumo humano».

Los números que presenta el README son estos: ancho de banda de aproximadamente 48 Gb/s por sentido (unos 95 Gb/s bidireccionales totales) sostenidos en ib_write_bw agregando 4 HCA a 1 MiB con 8 QP y el IOMMU desactivado; latencia en torno a 7 µs de ida en ib_write_lat a 64 B con un único QP. Como referencia, la Ethernet de 2,5 GbE integrada ronda los 2,3 Gb/s y 28 µs de latencia, y soft-RoCE sobre thunderbolt-net se queda en unos 9 Gb/s y 65 µs a nivel de rail.

¿Para qué sirve y a quién le interesa? Principalmente, a quien disponga de dos máquinas con USB4 y quiera experimentar con cargas RDMA sin comprar HCA de Mellanox/NVIDIA ni desplegar una fabric InfiniBand real. También resulta atractivo para investigadores que ejecutan inferencia distribuida de modelos grandes en hardware de pequeño formato, donde las placas Strix Halo de 128 GB se han popularizado. El proyecto afirma además que existe una interoperabilidad básica funcional con el protocolo nativo de Apple, lo que abre la puerta a configuraciones mixtas entre GPUs y NPUs de distintos fabricantes que se comuniquen por Thunderbolt.

Como consideraciones, conviene tener presentes varias limitaciones. El código está marcado de forma expresa como generado por IA, sin revisar y experimental; no es apto para producción. No entran en alcance características específicas de proveedores como GPUDirect u optimizaciones equivalentes a SR-IOV. Alcanzar los 48 Gb/s requiere desactivar el IOMMU, lo que tiene implicaciones de seguridad en entornos compartidos. Y la disponibilidad de los modos de alta velocidad (USB4 v2 a 80 Gb/s, por ejemplo) depende del controlador y del cable, por lo que los resultados pueden variar de un equipo a otro.