Les nouveaux GPU Rubin de Nvidia exploitent l’émulation logicielle pour améliorer les performances FP64 pour le HPC, défiant ainsi l’avance récente d’AMD dans ce domaine, malgré les réserves exprimées par AMD concernant l’applicabilité réelle de la méthode.
Le calcul à virgule flottante double précision (FP64) est essentiel pour les applications HPC et informatiques scientifiques modernes. Les GPU Rubin récemment dévoilés par Nvidia offrent 33 téraFLOPS de performances maximales FP64 sans émulation, soit un téraFLOP de moins que le H100 de quatre ans. Avec l’émulation logicielle activée dans les bibliothèques CUDA de Nvidia, la puce pourrait atteindre jusqu’à 200 téraFLOPS de performances matricielles FP64. Cela représente une multiplication par 4,4 par rapport aux capacités matérielles de ses accélérateurs Blackwell sortants.
Dan Ernst, directeur principal des produits de calcul intensif chez Nvidia, a déclaré : « Ce que nous avons découvert, grâce à de nombreuses études avec des partenaires et à nos propres enquêtes internes, c’est que la précision que nous obtenons de l’émulation est au moins aussi bonne que celle que nous obtiendrons d’un matériel à noyau tensoriel. »
Nicholas Malaya, membre de l’AMD, a noté : “C’est assez bon dans certains tests, il n’est pas évident que ce soit bon dans des simulations scientifiques physiques réelles.” La Malaisie a suggéré que l’émulation FP64 nécessite des recherches et des expérimentations supplémentaires.
FP64 reste la norme en matière de calcul scientifique en raison de sa plage dynamique, capable d’exprimer plus de 18,44 quintillions (264) de valeurs uniques. À l’inverse, les modèles d’IA modernes comme DeepSeek R1 sont fréquemment formés au FP8, qui peut exprimer 256 valeurs uniques. Les simulations HPC reposent sur des principes physiques fondamentaux, ce qui les rend intolérantes aux erreurs, contrairement aux charges de travail d’IA. Malaya a expliqué : « Dès que vous commencez à commettre des erreurs, ces erreurs limitées se propagent et provoquent des choses comme des explosions. »
Le concept d’utilisation de types de données de moindre précision pour émuler FP64 n’est pas nouveau. Ernst a mentionné : « L’émulation est vieille comme la poussière. Nous avions l’émulation au milieu des années 50, avant d’avoir du matériel pour la virgule flottante. » Début 2024, des chercheurs des instituts technologiques de Tokyo et Shibaura ont publié un article explorant ce concept. Leur méthode a montré que les opérations matricielles FP64 pouvaient être décomposées en plusieurs opérations INT8, obtenant ainsi des performances supérieures à celles natives sur les cœurs tenseurs de Nvidia. Cette approche, connue sous le nom de schéma Ozaki, constitue la base des bibliothèques d’émulation FP64 de Nvidia, lancées à la fin de l’année dernière. Ernst a précisé : “Il s’agit toujours du FP64. Ce n’est pas une précision mixte. C’est juste réalisé et construit d’une manière différente du point de vue matériel.”
Les GPU modernes contiennent des cœurs tenseurs de faible précision. Les cœurs tenseurs de Rubin, par exemple, sont capables de 35 pétaFLOPS de calcul FP4 dense. En FP64, ces puces sont plus de 1 000 fois plus lentes. Ernst a expliqué que l’efficacité de la construction et de l’exploitation de ces noyaux tenseurs de faible précision a incité à explorer leur utilisation pour le calcul FP64. “Nous avons le matériel, essayons de l’utiliser. C’est l’histoire du calcul intensif”, a-t-il déclaré.
AMD a exprimé ses inquiétudes quant à la précision de l’émulation FP64. La Malaisie a indiqué que l’émulation FP64 fonctionne bien pour les systèmes numériques bien conditionnés, citant le benchmark High Performance Linpack (HPL). Cependant, “quand vous regardez la science des matériaux, les codes de combustion, les systèmes d’algèbre linéaire en bandes, des choses comme ça, ce sont des systèmes beaucoup moins bien conditionnés, et tout d’un coup, ils commencent à s’effondrer”, a-t-il déclaré. Malaya a noté que l’émulation FP64 n’est pas entièrement conforme à l’IEEE, car les algorithmes de Nvidia ne tiennent pas compte des nuances telles que les zéros positifs et négatifs, ni les erreurs de nombres, ni les erreurs de nombres infinis. De petites erreurs dans les opérations intermédiaires d’émulation peuvent conduire à des inexactitudes. L’augmentation des opérations pour atténuer ce problème peut annuler les avantages en termes de performances. Malaya a également rapporté : “Nous avons des données qui montrent que vous utilisez environ deux fois la capacité de mémoire d’Ozaki pour émuler les matrices FP64.” AMD se concentre donc sur du matériel spécialisé pour la double et la simple précision, avec son prochain MI430X utilisant une architecture chiplet pour améliorer les performances.
Ernst a reconnu des lacunes dans la mise en œuvre de Nvidia. Il a soutenu que les zéros positifs/négatifs ne sont pas critiques pour la plupart des praticiens du HPC. Nvidia a développé des algorithmes supplémentaires pour détecter et atténuer les problèmes tels que les nombres non numériques et les nombres infinis. Concernant la consommation de mémoire, Ernst a admis qu’elle peut être plus élevée, mais a déclaré que cette surcharge est relative au fonctionnement et non à l’application, impliquant généralement des matrices de quelques gigaoctets. Il a également fait valoir que les problèmes de conformité IEEE ne se posent souvent pas dans les cas de multiplication matricielle. “La plupart des cas d’utilisation dans lesquels les règles de classement de conformité IEEE sont en jeu ne se présentent pas dans les cas de multiplication matricielle ou matricielle. De toute façon, il n’existe pas de DGEMM qui ait tendance à suivre cette règle”, a expliqué Ernst.
L’émulation FP64 est principalement efficace pour un sous-ensemble d’applications HPC reposant sur des opérations de multiplication matricielle générale dense (DGEMM). MamanLaya estime que pour 60 à 70 % des charges de travail HPC, l’émulation offre des avantages minimes. « Dans notre analyse, la grande majorité des charges de travail HPC réelles reposent sur le vecteur FMA, et non sur le DGEMM », a-t-il déclaré. Pour les tâches à lourdes tâches vectorielles, comme la dynamique des fluides computationnelle, les GPU Rubin fonctionnent sur des accélérateurs vectoriels FP64 plus lents au sein des cœurs CUDA. Ernst a souligné que des FLOPS plus élevés n’équivalent pas toujours à des FLOPS utiles, car la bande passante mémoire limite souvent les performances réelles. Il a fait référence au benchmark High Performance Conjugate Gradient à forte composante vectorielle du TOP500, où les processeurs sont souvent en tête en raison de bits plus élevés par FLOPS de leurs sous-systèmes de mémoire.
Avec de nouveaux supercalculateurs intégrant les GPU Blackwell et Rubin de Nvidia, la viabilité de l’émulation FP64 sera testée. L’indépendance inhérente des algorithmes par rapport à un matériel spécifique permet des améliorations potentielles au fil du temps. La Malaisie a confirmé qu’AMD explore également l’émulation FP64 sur des puces comme le MI355X via des indicateurs logiciels pour identifier les applications appropriées. Il a indiqué que la conformité IEEE validerait l’approche en garantissant des résultats cohérents entre l’émulation et le silicium dédié. Malaya a déclaré : « Si je peux aller voir un partenaire et lui dire d’exécuter ces deux binaires : celui-ci vous donne la même réponse que l’autre et est plus rapide, et oui, sous le capot, nous faisons un plan – je pense que c’est un argument convaincant qui est prêt pour les heures de grande écoute. Il a ajouté que des applications spécifiques pourraient être plus fiables avec l’émulation, suggérant : « Nous devrions, en tant que communauté, créer un panier d’applications à examiner. »








