Optimisation automatique de kernels CUDA multi-agent

0 Shares

Accélérez vos GPU en alliant IA et rigueur matérielle

Les performances des clusters GPU se jouent au niveau du kernel. En s’appuyant sur un système multi-agent collaboratif, Cursor a réussi à optimiser de manière autonome 235 kernels CUDA dédiés aux GPU NVIDIA Blackwell 200, générant un gain de vitesse moyen géométrique de 38 % en seulement trois semaines, sans intervention humaine.

Automatisation et gains de performance

Pour évaluer ces gains sur 27 GPU NVIDIA Blackwell 200, l’outil SOL-ExecBench a été utilisé. Loin des données synthétiques, il a extrait 235 problèmes d’optimisation depuis 124 modèles open-source en production (Deepseek, Qwen, Gemma, Kimi, Stable Diffusion). Cela couvre de vraies contraintes sur des charges d’entraînement et d’inférence pour diverses architectures (LLM, diffusion, vision, audio, vidéo, etc.).

Le benchmark détaille une grande diversité de complexités :

  • 94 kernels L1 : Kernels simples (Softmax, LayerNorm, Activations).

  • 82 kernels L2 : Kernels complexes (Full attention blocks, MLP+SwiGLU).

  • 33 kernels Quant : Opérations quantifiées FP8/FP4.

  • 26 kernels FlashInfer : Variantes d’attention spécialisées du projet FlashInfer.

Sur cet ensemble, le workflow zero-shot et itératif de Cursor atteint un speedup moyen de 38 %. SOL-ExecBench compare rigoureusement ces performances aux limites théoriques du matériel. Un pipeline anti-triche strict est même en place : si des agents utilisent des tactiques trompeuses (comme la mise en cache) pour afficher des performances supérieures à ce qu’un B200 peut physiquement prendre en charge, le résultat est invalidé.

86 % de la performance cuBLAS
Cursor atteint 86 % de la performance d’un kernel GEMM humainement optimisé dans cuBLAS. Ce résultat rivalise avec les meilleures pratiques des ingénieurs, en un tiers du temps.

Architecture multi-agent et workflow

Chaque agent se concentre sur une étape du pipeline : génération de code, diagnostics de goulots d’étranglement, transformations de boucles, intrinsics CUDA et optimisations mémoire. Un agent principal orchestre les itérations jusqu’à convergence.

Intégration CI/CD pour des déploiements continus

L’intégration directe dans votre pipeline CI/CD garantit que chaque push déclenche une recompilation et un redéploiement des kernels optimisés. Vous conservez ainsi des performances maximales en production sans intervention manuelle.

Enjeux techniques et limites

Malgré ces résultats impressionnants, plusieurs points d’attention scientifiques demeurent :

  • Le silence sur la stabilité numérique : Cursor met en avant la vitesse d’exécution pure, mais ne précise pas si ces optimisations agressives (notamment via des calculs en précision réduite comme le NVFP4 ou le BF16) dégradent la qualité des prédictions (l’output) du modèle. Un kernel ultra-rapide qui altère la perplexité d’un LLM n’est pas viable en production.

  • L’absence de validation de bout en bout : Les benchmarks valident la performance isolée du kernel, mais il manque des données sur le maintien de la justesse mathématique de bout en bout sur un pipeline d’inférence applicatif complet.

  • Le défi de la maintenabilité : Déployer du code assembleur généré par des agents autonomes pose la question du débogage. Si une erreur complexe survient en production, l’intervention d’un ingénieur humain sur ce code ultra-spécialisé et généré par une IA risque d’être particulièrement ardue.

Vision business

Malgré ces défis de co-conception hardware-software, l’intégration de tels agents dans un pipeline CI/CD dessine l’avenir de l’infrastructure. Adopter cette automatisation, c’est réduire drastiquement vos coûts de calcul par token et transformer l’optimisation extrême en un avantage compétitif continu pour vos charges IA de demain.