InformatiqueExplication
Des modules Linux rendent aux GeForce une part du calcul d’IA bridé
Nvidia l’écrit dans son propre livre blanc : ses GeForce RTX font à mi-régime un calcul courant en IA. Deux modules Linux libres lèvent ce frein, avec des gains réels très variables et aucun effet démontré en jeu.

Depuis une semaine, des propriétaires de GeForce RTX 30 et RTX 40 qui font tourner des modèles d’intelligence artificielle sur leur propre machine, sous Linux, chargent au démarrage un petit programme qui double, sur le papier, la vitesse d’un calcul que Nvidia limite sur ses cartes de jeu. Le premier, gpu-unlock, publié le 18 octobre sur GitHub par le développeur Zagitta, vise les RTX 30 ; le second, gpu-unlock-ada, mis en ligne le 23 octobre par le compte JustAResearcher, transpose la méthode à la RTX 4090 et, à titre expérimental, à quelques autres RTX 40. Le 25 octobre, le premier comptait plus de 4 100 « étoiles » (la marque d’intérêt des utilisateurs de GitHub), le second plus de 1 500. Frandroid a signalé la version RTX 40 le 25 octobre.
Un demi-régime écrit noir sur blanc par Nvidia
Ce frein n’a rien d’une découverte. Il figure dans le livre blanc de l’architecture Ada (version 2.02), le document technique que Nvidia a consacré à la génération RTX 40. Son annexe A donne, pour la RTX 4090 et pour la RTX 3090 Ti de la génération précédente, le débit maximal des cœurs Tensor, les unités que Nvidia décrit comme « taillées pour les opérations de multiplication et d’accumulation de matrices utilisées dans les applications d’IA et de calcul haute performance ». Le tableau mêle plusieurs formats de nombres : le FP32, nombres à virgule codés sur 32 bits, plus précis ; le BF16, autre format de 16 bits qui garde l’étendue du FP32 avec moins de précision ; le TF32, format des cœurs Tensor qui lit des données en FP32 et calcule avec une précision réduite ; l’INT8, des nombres entiers sur 8 bits, employés surtout pour faire tourner des modèles déjà entraînés. Pour un même format de nombres en entrée, le FP16 (nombres à virgule codés sur 16 bits), Nvidia publie deux chiffres selon la façon dont la carte garde ses résultats intermédiaires :
| Débit maximal annoncé par Nvidia | RTX 3090 Ti | RTX 4090 |
|---|---|---|
| FP16, accumulation en FP16 | 160 | 330,3 |
| FP16, accumulation en FP32 | 80 | 165,2 |
| BF16, accumulation en FP32 | 80 | 165,2 |
| TF32 | 40 | 82,6 |
| INT8 (en téra-opérations par seconde) | 320 | 660,6 |
En téraflops (milliers de milliards d’opérations par seconde), sauf INT8. Premier des deux chiffres du tableau de Nvidia, le second supposant une technique d’accélération qui saute une partie des zéros des matrices. Source : livre blanc Ada, annexe A, table 2.
Le constructeur indique donc lui-même que ses cartes de jeu font deux fois moins d’opérations quand elles accumulent en FP32 que quand elles accumulent en FP16. Le BF16 n’apparaît qu’avec une accumulation en FP32 : il tourne toujours à mi-régime. Le TF32 est au même niveau que le calcul classique en FP32 de la carte (82,6 téraflops sur la RTX 4090).
Accumuler en 32 bits, l’étape qui garde les calculs justes
Multiplier deux matrices, l’opération de base d’un réseau de neurones, revient à enchaîner des multiplications de nombres et à additionner les produits dans un total partiel, l’accumulateur. Les nombres d’entrée peuvent être stockés sur 16 bits pour gagner de la place et de la vitesse. Mais le FP16 est un format étroit : son plus grand nombre représentable est 65 504, et son étendue couvre 40 puissances de 2, contre 264 pour le FP32, selon le guide de Nvidia sur la précision mixte. Quand des milliers de produits s’additionnent, un total gardé en 16 bits s’arrondit à chaque étape et peut déborder ; gardé en 32 bits, il reste juste, avant d’être ramené en 16 bits pour être stocké.
L’article de recherche qui a posé les bases de cette « précision mixte », présenté à la conférence ICLR en 2018 par Paulius Micikevicius et dix coauteurs, constatait que certains réseaux n’atteignent leur précision de référence que si les produits partiels sont accumulés en FP32. C’est ce mode, et non le FP16 pur, que visent les deux modules. D’après le dépôt de Zagitta, les travaux riches en calcul de matrices accélèrent avec le module : la lecture de la requête par un modèle de langage (+14 à +36 % dans quatre rapports d’utilisateurs), la génération d’images par diffusion ou FlashAttention, une méthode de calcul rapide de l’« attention » des modèles de langage. Pour qui entraîne ou adapte un modèle en BF16 sur sa carte, tout le calcul de matrices passe par ce demi-régime.
Ce que les modules changent : le double sur le papier
Les deux projets reposent sur un module noyau Linux, un programme qui s’exécute au cœur du système. Il agit au démarrage, avant que le pilote de Nvidia ne prenne la carte en main. Pour la version RTX 40, le rapport technique du dépôt Ada décrit le principe : le module charge sur la carte le microprogramme de démarrage signé de Nvidia, non modifié et tiré d’une version précise du pilote (610.43.03), puis en détourne l’exécution au moyen de données de signature fabriquées, pour lui faire changer les réglages de vitesse des unités de calcul ; aucun code étranger n’est introduit dans le microprogramme authentifié, précise le rapport. Le module réinitialise ensuite la carte et laisse le pilote officiel, non modifié, prendre le relais. Le rapport ne revendique pas que le réglage survive à une extinction de la machine : le module doit donc être rechargé à chaque démarrage.
Sur la RTX 4090, l’auteur du dépôt Ada mesure 165,6 téraflops en FP16 avec accumulation en FP32 avant l’intervention, 331,6 après ; en BF16, 165,5 puis 330,6. Un essai indépendant, mené par un propriétaire de RTX 4090 que le rapport ne nomme pas, confirme le doublement (160,4 puis 320,4) et montre ce qui ne bouge pas : le FP16 accumulé en FP16, déjà au plein régime (320,6 puis 320,4), et l’INT8 (641,1 puis 640,3 téra-opérations par seconde). Le TF32 double aussi (80,1 puis 159,5).
En calcul réel, de rien à près du double
Ces chiffres mesurent la cadence maximale des instructions, pas un travail réel. Le même essai indépendant l’a vérifié avec cuBLAS, la bibliothèque de calcul de matrices de Nvidia. Le gain y tombe à 19 %, 34 % et 12 % en FP16 selon la taille des matrices (1 024, 4 096 et 8 192 de côté), à 20 % et 16 % en BF16, et à rien du tout pour les matrices de 4 096 en BF16. La cadence des instructions n’est pas la seule limite : la mémoire et l’alimentation, inchangée à 450 W dans cet essai, en posent d’autres.
Sur les RTX 30, les mesures publiées sont plus nombreuses. Sur une RTX 3090 Ti limitée à 450 W, Zagitta passe de 87,46 à 118,39 téraflops en FP16 (+35 %), de 87,50 à 157,41 en BF16 (+80 %) et de 42,58 à 82,61 en TF32 (+94 %). Le tableau des rapports d’utilisateurs donne en BF16 de +25 à +67 % sur des RTX 3090, +73 à +81 % sur des RTX 3070, environ +80 % sur une RTX 3060 12 Go. Le dépôt prévient que ces chiffres viennent chacun du banc d’essai de son auteur et ne sont « pas directement comparables », et que la limite d’alimentation pèse lourd : le plus faible (+25 %) vient de cartes bridées à 225 W. Sur une RTX 3080 Ti 20 Go destinée aux assembleurs, l’opération aboutit mais le BF16 reste à mi-régime.
Le chiffre à retenir n’est donc pas le « fois deux ». Sur RTX 4090, le seul essai indépendant publié donne 12 à 34 % de mieux en FP16 et un gain irrégulier en BF16 ; sur RTX 30, les rapports d’utilisateurs, plus nombreux mais faits chacun à sa manière, vont de 25 à environ 80 % en BF16, et une mesure en TF32 approche le double (+94 % sur une RTX 3090 Ti).
Pas pour les jeux, ni pour discuter avec un modèle local
Aucun des deux dépôts n’annonce de gain en jeu. Les cœurs Tensor servent bien au DLSS, la technique de Nvidia qui reconstruit l’image par IA, mais aucune mesure vérifiée n’a montré d’images par seconde en plus, relevait Notebookcheck le 24 octobre.
Le FP8, format de 8 bits que la génération RTX 40 a introduit, ne change pas : sur la seule RTX 4070 Ti Super testée, le dépôt Ada mesure 59,326 téraflops avant et 59,495 après (+0,3 %), et l’INT8 reste vers 379,5 téra-opérations par seconde. Surtout, la génération de texte mot à mot par un modèle de langage, ce que l’on fait en discutant avec un assistant installé sur son ordinateur, est limitée par la vitesse de la mémoire : elle reste « à peu près la même », écrit Zagitta, comme les calculs en INT8. Le gain concerne la lecture des requêtes (+14 à +36 % dans quatre rapports cités par le dépôt) et la génération d’images ; l’entraînement en BF16, format que les cœurs Tensor ne calculent qu’avec une accumulation en 32 bits, devrait en profiter aussi, mais c’est une déduction : le dépôt de Zagitta ne le mesure pas.
Linux, cartes testées une à une, avertissements
Les deux modules ne fonctionnent que sous Linux. Le dépôt Ada documente un portage Windows sur une seule carte, une RTX 4070 Ti de MSI, démarrée une fois à la main (+80,1 % en FP16 accumulé en FP32), qui n’est pas distribué prêt à l’emploi. Côté RTX 40, seule la RTX 4090 est la cible principale ; la RTX 4090 D demande une option expérimentale, et les RTX 4070 Ti Super et 4060 Ti 16 Go n’ont été validées que sur un exemplaire chacune. Les cartes professionnelles et de centre de données sont refusées. Le premier essai doit se faire après une extinction complète de la machine, et l’écran reste noir jusqu’au chargement du pilote d’affichage.
L’essai indépendant sur RTX 4090 précise ce qu’il n’a pas vérifié : ni stabilité sur la durée, ni charges de travail représentatives. Ses courts relevés de puissance, autour de 308 W au plus avant comme après, ne permettent d’établir, selon le rapport, ni la consommation maximale de la carte, ni son comportement thermique dans la durée, ni la sécurité électrique. La charge utile de la version RTX 40 vient d’un projet publié par TOTORONG sur Hugging Face, une plateforme de partage de modèles et de code d’IA, mis au point sur une seule RTX 4080 modifiée à 32 Go, dont l’auteur prévient : « Vous assumez le risque de décider d’utiliser et d’exécuter ce logiciel. Échec de démarrage, perte d’affichage, corruption de données, dommages matériels et autres pertes sont possibles. » Des copies et des compilations par des tiers circulent déjà sur GitHub ; pour un programme qui s’exécute au cœur du système, la provenance compte.
Ce que Nvidia n’a pas dit
Pour la génération RTX 30, Nvidia a lui-même établi que ses cartes professionnelles échappent à ce frein. Son livre blanc de la puce GA102 (version 2.0) donne pour la GeForce RTX 3080 119 téraflops en FP16 avec accumulation en FP16, mais 59,5 avec accumulation en FP32. Pour la RTX A6000 et l’A40, cartes professionnelle et de centre de données bâties sur la même puce, le chiffre ne change pas selon le mode : 154,8 et 149,7 téraflops en FP16, que l’accumulation se fasse en FP16 ou en FP32, et autant en BF16. C’est ce débit que le dépôt de Zagitta dit viser quand il promet de ramener les RTX 30 à celui de « leurs équivalents professionnels ».
Pour la génération RTX 40, les documents publics consultés ne permettent pas la même comparaison. La fiche de la RTX 6000 Ada ne donne qu’un chiffre en FP8 (1 457 téra-opérations par seconde, avec la technique qui saute les zéros) et le débit FP32 ; le livre blanc Ada, qui distingue les deux modes d’accumulation pour la RTX 4090, ne donne pour la L40, carte de centre de données à base de la même puce AD102, qu’un chiffre FP16 de 181 téraflops sans préciser l’accumulation.
Nvidia n’explique pas, dans ces documents, pourquoi ses GeForce tournent à mi-régime dans ce mode. Ce choix s’accorde avec la licence de son pilote GeForce, qui le réserve aux cartes GeForce ou Titan et précise qu’il « n’est pas licencié pour un déploiement en centre de données ». La même licence interdit de « contourner toute limitation technique » ou tout « mécanisme d’authentification » du logiciel ; savoir si un module qui détourne le microprogramme signé de la carte avant le chargement du pilote tombe sous cette clause est une question juridique qu’aucune source publique n’a tranchée.
Reste la question de la durée. Zagitta souligne que sa méthode n’oblige pas à modifier chaque nouvelle version du pilote ; rien, dans les documents publiés, ne dit si Nvidia pourrait la neutraliser par un pilote ou un microprogramme futur. Le 25 octobre au matin, Nvidia ne s’était pas exprimé publiquement sur ces modules, et Notebookcheck ne fait état d’aucune réaction de l’entreprise. En l’état, le gain ne concerne que ceux qui calculent sous Linux en FP16 ou en BF16 avec accumulation en 32 bits, et il se mesure le plus souvent en dizaines de pour cent, pas en doublement.
Les citations de documents en anglais ont été traduites par la rédaction.



