ES
PipeLink permite combinar partes de kernels GPU compiladas por separado
PipeLink: Contract-Guided Linking of GPU Kernel Components · arXiv:2610.37200

En palabras sencillas
Los kernels GPU fusionados pueden construirse con partes escritas por distintos equipos o bibliotecas, pero esas partes podrían reclamar los mismos recursos internos del chip. PipeLink permite que cada parte declare qué necesita y qué garantiza; luego comprueba y conecta las partes durante el enlazado.
En 51 configuraciones medidas con tres modelos de GPU NVIDIA, los kernels enlazados quedaron dentro de un margen del 0,2 % respecto a los controles compilados como una sola unidad a partir de las mismas partes. Ese resultado corresponde a esas pruebas, no a todos los kernels o GPU.
La investigación
Cuando partes de kernels GPU escritas por separado comparten recursos internos del chip, sus asignaciones fijadas de antemano pueden entrar en conflicto. Los equipos quizá tengan que conciliarlas manualmente o mantener las partes en kernels separados.
¿Puede un enlazador combinar partes compiladas de forma independiente y coordinar los recursos que comparten?
PipeLink enlaza partes de kernels GPU compiladas por separado: comprueba sus contratos, asigna conjuntamente los recursos y genera las conexiones entre ellas.
PipeLink enlaza partes de kernels GPU compiladas por separado al comprobar qué necesita y qué garantiza cada una, asignar conjuntamente los recursos internos del chip y generar conexiones. Los investigadores compararon kernels enlazados con controles compilados como una sola unidad a partir de las mismas fuentes y el mismo código de conexión.
En 51 configuraciones medidas con tres modelos de GPU NVIDIA, el rendimiento de los kernels enlazados quedó dentro de un margen del 0,2 % respecto al de los controles.
Esto respalda la interpretación de que, en estas pruebas, el enlazado no añadió un coste de rendimiento significativo a las combinaciones.
PipeLink comprueba si los contratos declarados por los componentes concuerdan, no si el código respeta esos contratos.
Las transferencias que genera mueven datos solo dentro de un mismo bloque de hilos; la aritmética, la conversión de precisión y la comunicación entre bloques o GPU siguen a cargo del código de los componentes.
Qué muestran las pruebas
- El reto de combinar componentes
PipeLink es un enlazador guiado por contratos que combina componentes compilados por separado en un kernel GPU fusionado. Los componentes pueden estar escritos en distintas bibliotecas, pero quizá compartan memoria interna del chip, barreras, warps, registros y planes de trabajo por bloques de datos.
Como a menudo fijan de antemano sus posiciones en esos recursos, combinarlos puede exigir coordinación manual o kernels separados.
- Los contratos coordinan los componentes
Los contratos registran lo que cada componente necesita y garantiza, incluidos los requisitos de recursos compartidos y los datos geométricos. PipeLink comprueba esas declaraciones, asigna conjuntamente las posiciones de los recursos y genera conexiones, como transferencias de tensores.
Las instrucciones de los componentes permanecen opacas para el enlazador, y el backend del proveedor incorpora las decisiones de enlace como constantes.
- Los cambios de datos revelan una brecha
Una prueba con datos geométricos modificados muestra qué se le escapa al enlazado de símbolos. Los investigadores cambiaron una constante en uno de los propietarios de un kernel MoE con cuatro propietarios, volvieron a empaquetar solo ese componente y lo enlazaron con los objetos sin cambios de los demás. El enlazado de símbolos aceptó los cinco casos, pero tres kernels se quedaron bloqueados y dos dejaron parte de la salida sin escribir.
PipeLink volvió a enlazar correctamente los cinco al propagar cada dato modificado a los componentes que lo usaban.
- El rendimiento del enlazado quedó cerca del control
Los investigadores compararon los kernels enlazados con controles compilados como una sola unidad a partir de las mismas fuentes de componentes y el mismo código generado, con igual asignación de recursos, modo de coma flotante y entradas.
En 51 configuraciones medidas en GPU H200, B300 y RTX 5090, el rendimiento de los kernels enlazados quedó dentro de un margen del 0,2 % respecto al de los controles. Los autores interpretan esto como evidencia de que los estudios de caso miden lo que permite combinar componentes, y no un coste del enlazado.
- Los resultados dependen de la carga de trabajo
Los ejemplos muestran que combinar componentes puede permitir kernels que abarcan distintas bibliotecas y propietarios, aunque el rendimiento depende de la carga de trabajo. Sustituir un componente de atención aceleró la decodificación de Llama-1B con un contexto de 4096 tokens, pero la ralentizó con 16 tokens.
Un kernel de entrenamiento MoE con cuatro propietarios mantuvo un rendimiento cercano al del paso monolítico, y una operación fusionada de Qwen3-32B superó una comparación con cuBLAS más una activación compilada en una configuración de B300.
Detalles
- Autores del paper original
- Jize Guo, Xupeng Miao
- Enviado a arXiv
- Licencia
- CC BY 4.0