FR
PipeLink assemble des composants de noyaux GPU compilés séparément
PipeLink: Contract-Guided Linking of GPU Kernel Components · arXiv:2610.37200

En termes simples
Un noyau GPU fusionné peut être assemblé à partir de parties écrites par différentes équipes ou bibliothèques, mais ces parties risquent de réclamer les mêmes ressources intégrées à la puce. PipeLink permet à chacune de déclarer ce dont elle a besoin et ce qu’elle garantit, puis vérifie leur compatibilité et les relie au moment de l’édition des liens.
Dans 51 configurations mesurées sur trois modèles de GPU NVIDIA, les noyaux reliés ont obtenu un débit à moins de 0,2 % de témoins compilés à partir des mêmes parties en une seule unité. Ce résultat concerne uniquement ces tests, pas tous les noyaux ni tous les GPU.
La recherche
Quand des composants de noyaux GPU écrits séparément partagent des ressources intégrées à la puce, leurs affectations codées en dur risquent d’entrer en conflit. Les équipes doivent alors les harmoniser à la main ou conserver les composants dans des noyaux distincts.
Un éditeur de liens peut-il assembler ces composants compilés indépendamment tout en coordonnant les ressources qu’ils partagent ?
PipeLink relie des composants de noyaux GPU compilés séparément en vérifiant leurs contrats, en attribuant conjointement les ressources et en générant leurs connexions.
PipeLink relie des composants de noyaux GPU compilés séparément en vérifiant les besoins et garanties de chacun, en attribuant conjointement les ressources intégrées à la puce et en générant leurs connexions.
Les chercheurs ont comparé les noyaux ainsi reliés à des témoins compilés en une seule unité à partir des mêmes sources et du même code de connexion.
Dans 51 configurations mesurées sur trois modèles de GPU NVIDIA, le débit des noyaux reliés est resté à moins de 0,2 % de celui des témoins. Ces résultats indiquent que, dans ces tests, l’édition des liens n’a pas ajouté de coût de performance notable aux assemblages.
PipeLink vérifie que les contrats déclarés par les composants sont compatibles entre eux, mais pas que le code respecte ces contrats.
Le code de transfert qu’il génère déplace les données uniquement à l’intérieur d’un même bloc de threads ; les calculs, les conversions de précision et les échanges entre blocs ou entre GPU restent à la charge des composants.
Ce que montrent les preuves
- Le défi de l’assemblage
PipeLink est un éditeur de liens guidé par des contrats qui assemble des composants compilés séparément en un seul noyau GPU fusionné.
Ces composants peuvent provenir de différentes bibliothèques, mais ils risquent de partager la mémoire intégrée à la puce, les barrières de synchronisation, les warps, les registres et les séquences de tuiles. Comme les composants codent souvent en dur leurs emplacements dans ces ressources, leur assemblage peut exiger une coordination manuelle ou des noyaux séparés.
- Les contrats coordonnent les composants
Les contrats consignent les besoins et les garanties de chaque composant, notamment ses besoins en ressources partagées et les informations géométriques. PipeLink compare ces déclarations, attribue conjointement les emplacements des ressources et génère des connexions, comme les transferts de tenseurs.
Les instructions des composants restent opaques pour l’éditeur de liens, et le système du fournisseur intègre les décisions prises à l’édition des liens sous forme de constantes.
- Les informations modifiées révèlent une lacune
Un test portant sur des informations géométriques modifiées révèle une lacune de l’édition des liens classique. Les chercheurs ont changé une constante dans l’un des quatre propriétaires d’un noyau MoE, recompilé uniquement ce composant, puis l’ont relié aux objets inchangés des autres.
L’édition des liens classique a accepté les cinq cas, mais trois noyaux se sont bloqués et deux ont laissé certaines sorties non écrites. PipeLink a correctement relié les cinq versions en propageant chaque information modifiée aux composants qui l’utilisaient.
- Un débit proche des témoins
Les chercheurs ont comparé les noyaux reliés à des témoins compilés en une seule unité à partir des mêmes sources et du même code de connexion généré, avec la même disposition des ressources, le même mode de calcul en virgule flottante et les mêmes entrées.
Dans 51 configurations mesurées sur des GPU H200, B300 et RTX 5090, le débit des noyaux reliés est resté à moins de 0,2 % de celui des témoins. Les auteurs interprètent ce résultat comme un indice que les études de cas mesurent ce que permet l’assemblage, plutôt qu’un coût de performance dû à l’édition des liens.
- Les résultats varient selon la charge
Les exemples montrent que l’assemblage peut permettre de créer des noyaux issus de plusieurs bibliothèques ou équipes, mais que les performances dépendent de la charge de travail.
Le remplacement d’un composant d’attention a accéléré le décodage de Llama-1B avec un contexte de 4096 tokens, mais l’a ralenti avec 16 tokens. Un noyau d’entraînement MoE appartenant à quatre équipes a conservé un débit proche de celui de l’étape monolithique d’origine ; dans une configuration sur B300, une opération fusionnée pour Qwen3-32B a dépassé le débit de cuBLAS suivi d’une activation compilée.
Détails
- Auteurs de l’article original
- Jize Guo, Xupeng Miao
- Soumis à arXiv
- Licence
- CC BY 4.0