Chiosa
ES
Systems & Infrastructure

PipeLink permite combinar partes de kernels GPU compiladas por separado

PipeLink: Contract-Guided Linking of GPU Kernel Components · arXiv:2610.37200

3 min
Actualizado
PipeLink overview. Separately compiled components carry contracts at their interfaces (left). PipeLink checks the contracts, relocates the components and generates the code between them, so the same…
PipeLink overview. Separately compiled components carry contracts at their interfaces (left). PipeLink checks the contracts, relocates the components and generates the code between them, so the same compiled attention core lands at different shared-memory offsets in two kernels…Figure 1 · PipeLink: Contract-Guided Linking of GPU Kernel Components · Jize Guo and Xupeng Miao · CC BY 4.0

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

Siguiente paperLa pasarela de PayPal reúne bajo reglas comunes el acceso a IA de varios proveedores