Un outsider porté par l’IA face à 183 experts
Sur le parcours exigeant d’une compétition de haut niveau d’optimisation de noyaux GPU réunissant 183 développeurs, le haut du tableau était quasi exclusivement occupé par des ingénieurs principaux de chez NVIDIA. Pourtant, le développeur sankalp, qui ne possédait que les bases de la programmation GPU depuis à peine un an, s’est hissé à la 12e place. Son arme secrète pour obtenir un tel résultat en 14 jours : laisser le grand modèle linguistique Codex exécuter en arrière-plan plus de 1 500 cycles autonomes de « test - analyse - modification - vérification ».
L’épreuve consistait à implémenter la décomposition QR de Householder compacte et carrée par lots. Cette opération matricielle est fondamentale dans le calcul de bas niveau ; par exemple, les algorithmes d’optimisation de grands modèles de langage tels que Muon et Kimi s’appuient sur des techniques similaires lors de leur entraînement.
1 500 commits automatiques : le mode pilote automatique pour l’IA
Pour permettre à Codex d’évoluer de manière autonome, sankalp a conçu un cadre complet d’évaluation de performance et de profilage pour le modèle. Sur cette base, Codex a effectué plus de 1 500 commits de code tout au long des 14 jours de l’épreuve. La durée d’exécution de référence s’est réduite en continu depuis le point de départ torch.geqrf (environ 419 000 microsecondes, avec une référence initiale pour le noyau à 108 803 microsecondes) jusqu’à atteindre seulement 1 805 microsecondes, enregistrant une amélioration des performances d’un facteur 232.
sankalp n’avait besoin de vérifier la direction que toutes les 2 à 3 heures à l’aide de prompts légers qui n’interrompaient pas le flux d’exécution, laissant même le modèle tourner sans aucune supervision pendant la nuit. Cela démontre qu’une fois dotés de solides capacités de génération de code, et associés à une suite d’évaluation automatisée complète, les grands modèles de langage peuvent prendre en charge seuls des itérations de code bas niveau particulièrement lourdes et des tests au long cours.
Figure : Journal de l’exécution autonome des tests de référence et du profilage de performance par Codex en arrière-plan. Source : sankalp.bearblog.dev
Déplacement du goulot d’étranglement : pourquoi l’IA a calé sous les 1 800 microsecondes
Au fil du processus d’optimisation, Codex a fait preuve d’une trajectoire d’évolution structurelle bien définie. Le code est passé des appels initiaux à torch.geqrf aux algorithmes WY QR par blocs, puis à l’usage de panneaux Triton, au remplacement par Cholesky-ORHR, aux liaisons par CUDA graphs, à l’assemblage fusionné, aux panneaux split16 et à la spécialisation pour formes fixes, pour aboutir à une combinaison complexe de super-panneaux et de décompositions Cholesky personnalisées.
Figure : Le processus d’évolution structurelle de l’algorithme en 10 étapes ayant réduit le temps d’exécution du noyau de 108 803 à 1 805 microsecondes. Source : sankalp.bearblog.dev
Cependant, à mesure que le temps s’est réduit dans la plage de 3 000 à 1 800 microsecondes, l’ajustement fin des instructions de calcul s’est avéré incapable de produire de nouvelles percées. À ce stade critique, le goulot d’étranglement principal de l’optimisation a cessé d’être la capacité de calcul ou la bande passante mémoire du matériel, pour se déplacer vers les coûts de lancement GPU (launch overhead) et les coûts de panneau (panel overhead).
À ce moment charnière, Codex a commencé à tomber dans le piège classique des optimums locaux. Le modèle enchaînait les micro-ajustements au sein de la structure de code existante, sans apporter de gain de vitesse significatif après plusieurs dizaines d’itérations consécutives. Selon l’auteur, lorsque l’optimisation pénètre dans les eaux profondes des mécanismes d’ordonnancement bas niveau, le mécanisme de recherche stochastique des grands modèles a tendance à s’enfermer dans des solutions sous-optimales.
La sélection par faisceau de candidats : la navigation humaine au carrefour des choix
Pour sortir de cette impasse, sankalp a ajusté la stratégie des consignes fournies à l’IA. Il a introduit le mécanisme de « faisceau de candidats » (beam of candidates), exigeant du modèle qu’il conserve simultanément 3 à 5 branches candidates issues de familles d’algorithmes différentes. Cela évitait qu’une simple erreur de compilation ne fasse abandonner prématurément une voie technique prometteuse.
Figure : Ajustement de la direction de recherche pour l’optimisation de l’algorithme de Codex via un dialogue guidé. Source : sankalp.bearblog.dev
Grâce à ce guidage, Codex a été orienté vers des trajectoires algorithmiques inédites, adoptant avec succès l’architecture Cholesky-ORHR et les optimisations par super-panneaux. La valeur de l’expérience du développeur humain réside dans sa capacité à imposer un changement de paradigme basé sur sa connaissance du domaine lorsque le modèle stagne dans une recherche locale. Cette prise de décision au niveau algorithmique constitue le véritable facteur déterminant pour franchir les goulots d’étranglement à l’échelle de la microseconde.
Écho dans la communauté : la réalité derrière l’automatisation intégrale
Des expériences de recherche automatisée similaires ont trouvé un écho au sein de la communauté technique. Le développeur Almondsetat a utilisé DeepSeek v4 pour exécuter une boucle d’optimisation automatisée sur des codecs vidéo, produisant en quelques heures seulement des implémentations d’instructions parallèles pour SSE et AVX, ce qui a directement doublé les performances en mono-cœur.
Un autre développeur, poizan42, s’est appuyé sur Opus 5 pour écrire des noyaux NEON, réalisant le transcodage vidéo 4K HEVC en temps réel sur un Raspberry Pi 4. Néanmoins, ce développeur a lui aussi reconnu que l’ensemble du processus d’optimisation avait nécessité une part importante de guidage manuel (steering).
Du point de vue de l’auteur, ces pratiques issues de divers domaines mettent en évidence une constante. À l’ère des grands modèles de langage, ce qu’on appelle la « recherche automatisée » affiche une efficacité d’exécution redoutable, mais demeure fortement dépendante du contrôle humain sur les limites et les dimensions. Sans l’orientation apportée par l’humain, il est difficile pour l’IA de franchir seule les seuils de l’évolution algorithmique.
La ligne d’arrivée appartient à ceux qui tiennent la boussole
Le gain de vitesse de 232x illustre le véritable potentiel de la recherche automatisée par IA. Codex a pris en charge la grande majorité du travail fastidieux, de la lecture des articles scientifiques au débogage du noyau bas niveau. Mais à chaque étape clé de ce marathon de 14 jours, les choix d’orientation humains sont restés irremplaçables.
Si les grands modèles linguistiques peuvent aujourd’hui faire tourner des tests de code toute la nuit, ils demeurent incapables de prédire quel petit sentier algorithmique mène au sommet. Sur le front de l’exploration technologique, l’IA est un exécutant infatigable sur le terrain, tandis que l’humain reste le navigateur tenant la boussole.
Liens de référence :
- Article de blog sankalp BEARBLOG
- Discussion HN (item?id=49309549)