Nous avons mentionné il y a de nombreuses années que la formation des charges de travail d'IA avec suffisamment de données et l'utilisation de réseaux de neurones convolutifs devenaient progressivement monnaie courante, et les grands centres HPC (High Performance Computing) du monde le faisaient depuis de nombreuses années. Laissez cette charge au GPU de NVIDIA. Pour des tâches telles que la simulation et la modélisation, les performances du GPU sont tout à fait exceptionnelles. Essentiellement, la simulation/modélisation HPC et la formation en IA sont en fait une sorte de convergence harmonique, et les GPU, en tant que processeurs massivement parallèles, sont particulièrement efficaces pour effectuer ce type de travail.
Mais depuis 2012, la révolution de l'IA a officiellement éclaté et les logiciels de reconnaissance d'images ont amélioré pour la première fois la précision à un niveau supérieur à celui des humains. Nous sommes donc très curieux de savoir combien de temps peut durer le point commun d’un traitement efficace du HPC et de l’IA sur des GPU similaires. Ainsi, à l'été 2019, grâce au raffinement et à l'itération du modèle, nous avons essayé d'utiliser l'unité mathématique de précision mixte pour obtenir les mêmes résultats que les calculs FP64 dans le benchmark Linpack. Avant que Nvidia ne lance le GPU "Ampere" GA100 l'année suivante, nous avons une fois de plus essayé de tester les performances de traitement du HPC et de l'IA. À cette époque, Nvidia n'avait pas encore lancé le GPU "Ampere" A100, le géant des cartes graphiques n'avait donc pas encore officiellement opté pour la formation de modèles d'IA sur des cœurs tenseurs de précision mixte. La réponse est bien sûr désormais claire : les charges de travail HPC sur les unités vectorielles FP64 nécessitent quelques ajustements architecturaux pour maximiser les performances du GPU. Il ne fait aucun doute qu'elles sont un peu des « citoyens de seconde zone ». Mais à cette époque, tout était encore possible.
Avec le lancement du GPU « Hopper » GH100 de Nvidia plus tôt cette année, il existe un écart plus grand dans les améliorations de performances intergénérationnelles entre l’IA et le HPC. Non seulement cela, lors de la récente conférence GTC 2022 d'automne, le co-fondateur de Nvidia et CET Huang Jensen a déclaré que la charge de travail de l'IA elle-même était également devenue divergente, obligeant Nvidia à commencer à explorer le secteur des processeurs - ou, plus précisément, cela devrait être le cas. appelé contrôleur de mémoire étendue optimisé orienté GPU.
Nous discuterons de cette question en détail plus tard.
Commençons par le jugement le plus clair. Si Nvidia souhaite que son GPU ait des performances FP64 plus élevées pour prendre en charge les applications HPC à virgule flottante 64 bits telles que la modélisation météorologique, les calculs de dynamique des fluides, l'analyse par éléments finis, la chromodynamique quantique et d'autres simulations mathématiques de haute intensité, alors l'accélérateur L'idée de conception devrait être comme ceci : créez un produit qui n'a pas de cœurs tenseurs ni de cœurs FP32 CUDA (principalement utilisés comme shaders graphiques dans l'architecture CUDA).
Mais je crains que seulement quelques centaines de clients soient prêts à acheter un tel produit, donc le prix d'une seule puce peut atteindre des dizaines de milliers, voire des centaines de milliers de dollars. Ce n'est qu'ainsi que les coûts de conception et de fabrication peuvent être atteints. être couvert. Afin de bâtir une activité plus grande et plus rentable, Nvidia doit concevoir une architecture plus générale dont les capacités mathématiques vectorielles sont tout simplement supérieures à celles des processeurs.
Ainsi, depuis que NVIDIA a décidé de se lancer sérieusement dans la conception de produits pour les applications HPC il y a 15 ans, ils se sont concentrés sur les scénarios HPC qui utilisent les opérations mathématiques à virgule flottante FP32, y compris les données simple précision utilisées dans le traitement sismique, le traitement du signal et la génomique. -typer les charges de travail et les tâches de traitement, et améliorer progressivement les capacités FP64 du GPU.
L'accélérateur K10 lancé en juillet 2012 est équipé de deux GPU "Kepler" GK104, qui sont exactement les mêmes GPU utilisés dans les cartes graphiques de jeu. Il possède 1536 cœurs FP32 CUDA et n’utilise aucun cœur FP64 dédié. Sa prise en charge FP64 se fait uniquement par logiciel, il n'y a donc pas de gain de performances appréciable : les deux GPU GK104 fonctionnent à 4,58 téraflops sur les tâches FP32 et 190 gigaflops sur FP64, soit un rapport de 24 pour 1. Le K20X, présenté lors de la SC12 Supercomputing Conference fin 2012, utilise le GPU GK110, avec des performances FP32 de 3,95 téraflops et FP64 de 1,31 téraflops, soit un ratio porté à 3:1. À ce stade, le produit est initialement disponible pour les applications HPC et les utilisateurs qui forment des modèles d’IA dans l’espace informatique académique/hyperscale. La carte accélératrice GPU K80 utilise deux GPU GK110B à l'époque, car Nvidia n'avait pas ajouté le support FP64 au GPU "Maxwell" le plus haut de gamme, le GK110 B est donc devenu l'option la plus populaire et la plus rentable à l'époque. Les performances FP32 du K80 sont de 8,74 téraflops et les performances FP64 de 2,91 téraflops, tout en conservant un rapport de 3 pour 1.
Pour le GPU GP100 "Pascal", l'écart entre le HPC et l'IA s'est encore creusé avec l'introduction de l'indicateur de précision mixte FP16, mais le rapport du vecteur FP32 au vecteur FP64 s'est encore converti à 2 pour 1, et après le " Volta" GV100 " Il a été maintenu dans les GPU les plus récents tels que l'Ampère” GA100 et le “Hopper” GH100. Dans l'architecture Volta, NVIDIA a introduit pour la première fois l'unité mathématique matricielle Tensor Core avec une matrice fixe Lei small, qui a considérablement amélioré les capacités de calcul en virgule flottante (et entière) et a continué à conserver l'unité vectorielle dans l'architecture.
Ces noyaux tenseurs sont utilisés pour traiter des matrices de plus en plus grandes, mais la précision de fonctionnement spécifique est de plus en plus faible, de sorte que ce type d'équipement a atteint un débit de charge d'IA extrêmement exagéré. Ceci est bien sûr indissociable de la nature statistique floue de l’apprentissage automatique lui-même, et cela laisse également un écart énorme avec les mathématiques de haute précision requises par la plupart des algorithmes HPC. La figure ci-dessous montre la représentation logarithmique de l'écart de performances entre l'IA et le HPC. Je pense que vous pouvez déjà voir la différence de tendance entre les deux :
.La forme logarithmique ne semble pas assez choquante, examinons-la à nouveau en utilisant le rapport réel :
L'art de la conception de systèmes : lorsque les applications HPC et IA deviennent courantes, où devrait l'architecture GPU aller?
Toutes les applications HPC ne peuvent pas être ajustées pour les cœurs tenseurs, et toutes les applications ne peuvent pas transférer des opérations mathématiques vers les cœurs tenseurs, donc NVIDIA conserve toujours certaines unités vectorielles dans son architecture GPU. De plus, de nombreuses organisations HPC ne peuvent pas réellement proposer de solveurs itératifs comme HPL-AI. Le solveur HPL-AI utilisé dans le test de référence Linpack utilise HPL Linpack standard avec des opérations FP16 plus FP32, et un peu d'opérations FP64 pour converger vers la même réponse que les calculs de force brute FP64 purs. Ce solveur itératif est capable de fournir une accélération effective de 6,2x sur le supercalculateur Frontier du laboratoire national d'Oak Ridge et de 4,5x sur le supercalculateur Fugaku du laboratoire RIKEN. Si davantage d'applications HPC peuvent recevoir leurs propres solveurs HPL-AI, alors le problème de la « séparation » de l'IA et du HPC sera résolu, je pense, ce jour viendra.
Mais en même temps, pour de nombreuses charges de travail, les performances du FP64 restent le seul facteur décisif. Et Nvidia, qui a gagné beaucoup d'argent grâce à sa puissante puissance de calcul IA, n'aura certainement pas beaucoup de temps pour s'occuper du marché HPC dans un court laps de temps.
On peut voir que l'architecture GPU de NVIDIA vise principalement des performances d'IA plus élevées tout en maintenant des performances HPC acceptables, et l'approche à deux volets guide les clients dans la mise à jour de leur matériel tous les trois ans. Du point de vue des performances pures du FP64, le débit FP64 des GPU Nvidia a été multiplié par 22,9 au cours des dix années allant de 2012 à 2022, passant de 1,3 téraflops du K20X à 30 téraflops du H100. Si l’unité matricielle tensorielle peut être utilisée avec le solveur itératif, l’augmentation peut atteindre 45,8 fois. Mais si vous êtes un utilisateur de formation en IA qui n'a besoin que d'un calcul parallèle à grande échelle et de faible précision, alors le changement de performances du FP32 au FP8 est exagéré. La puissance de calcul du FP32 a été augmentée des premiers téraflops à 4 pétaflops du FP8. matrice, ce qui représente une amélioration de 1012,7 fois. Et si nous le comparons à l'algorithme d'IA codé en FP64 sur le GPU K20X à l'époque (pratique courante à l'époque), l'amélioration des performances au cours des dix dernières années n'est que de 2 fois pitoyable.
Évidemment, la différence de performances entre les deux ne peut pas être qualifiée d'énorme. Huang Renxun lui-même a également mentionné que le camp actuel de l'IA lui-même est à nouveau divisé en deux. Un type est un modèle de base géant pris en charge par le modèle de transformateur, également connu sous le nom de grand modèle de langage. Le nombre de paramètres de ces modèles augmente rapidement et la demande de matériel augmente également. Par rapport au modèle de réseau neuronal précédent, le modèle de transformateur d'aujourd'hui représente complètement une autre époque, comme le montre l'image ci-dessous :
Veuillez pardonner cette image d'être un peu floue, mais le fait est : pour le premier groupe qui ne le fait pas contiennent des transformateurs Pour les modèles IA, les exigences informatiques ont augmenté 8 fois en deux ans, mais pour les modèles IA contenant des transformateurs, les exigences informatiques ont augmenté 275 fois en deux ans ; Si des opérations en virgule flottante sont utilisées pour le traitement, il doit y avoir 100 000 GPU dans le système pour répondre à la demande (ce n'est pas un gros problème). Cependant, le passage à la précision FP4 doublera le nombre de calculs. À l'avenir, lorsque le GPU utilisera des transistors de 1,8 nm, la puissance de calcul augmentera d'environ 2,5 fois, il y aura donc encore un écart d'environ 55 fois. Si les opérations du FP2 pouvaient être mises en œuvre (en supposant qu'une telle précision soit suffisante pour résoudre le problème), la quantité de calcul pourrait être réduite de moitié, mais cela nécessiterait l'utilisation d'au moins 250 000 GPU. De plus, les grands modèles de transformateurs de langage sont souvent difficiles à étendre, et surtout économiquement réalisables. Ce type de modèle est donc devenu exclusif aux entreprises géantes, tout comme les armes nucléaires ne sont entre les mains que des pays puissants.
Quant au système de recommandation en tant que « moteur économique numérique », il nécessite non seulement une augmentation exponentielle du nombre de calculs, mais aussi une échelle de données qui dépasse largement la capacité mémoire d'un grand modèle de langage ou même d'un GPU. Huang Renxun a mentionné dans son précédent discours d'ouverture du GTC :
"Par rapport aux grands modèles de langage, la quantité de données rencontrée par chaque unité de calcul lors du traitement du système de recommandation est d'un ordre de grandeur plus grande. De toute évidence, le système de recommandation nécessite non seulement une vitesse de mémoire plus rapide, mais nécessite également 10 fois la vitesse de mémoire de le grand modèle de langage. Capacité de mémoire. Bien que les grands modèles de langage maintiennent une croissance exponentielle au fil du temps et nécessitent une puissance de calcul constante, les systèmes de recommandation maintiennent également ce taux de croissance et continuent de consommer davantage de modèles de langage et de recommandations. Les modèles d'IA d'aujourd'hui ont des exigences informatiques différentes. Les systèmes de recommandation peuvent s'adapter à des milliards d'utilisateurs et à des milliards d'éléments, pour chaque article, chaque vidéo et chaque publication sociale. La représentation numérique correspondante est appelée une intégration. Chaque table d'intégration peut en contenir des dizaines. de téraoctets de données et doit être traité par plusieurs GPU. Lors du traitement des systèmes de recommandation, cela nécessite un traitement parallèle des données dans certaines parties du réseau. D'autres parties du réseau sont nécessaires pour mettre en œuvre un traitement parallèle modèle, ce qui impose des exigences plus élevées en matière de données. différentes parties de l'ordinateur. "
Comme le montre la figure ci-dessous, il s'agit de l'architecture de base du système de recommandation :
Afin de comprendre et de décider des particularités. En raison de problèmes de capacité de mémoire et de bande passante, NVIDIA a développé le Processeur du serveur Arm "Grace" et étroitement couplé au GPU Hopper. Nous plaisantons également en disant que si la quantité de mémoire principale requise est très importante, Grace n'est en réalité que le contrôleur de mémoire de Hopper. Mais à long terme, il suffit peut-être de connecter un certain nombre de ports CXL exécutant le protocole NVLink au GPU de nouvelle génération de Hooper.
Ainsi, la super puce Grace-Hopper produite par NVIDIA équivaut à placer un cluster CPU de niveau « enfant » dans un énorme cluster d'accélération GPU de niveau « adulte ». Ces processeurs Arm peuvent prendre en charge les charges de travail traditionnelles C++ et Fortran, mais à un prix : les performances de la partie CPU dans le cluster hybride ne représentent qu'un dixième des performances du GPU dans le cluster, mais le coût est 3 à 3 fois supérieur. d'un cluster CPU pur conventionnel 5 fois.
D'ailleurs, nous respectons et comprenons tous les choix d'ingénierie faits par NVIDIA. Grace est un excellent CPU et Hopper est également un excellent GPU. La combinaison des deux produira certainement de bons résultats. Mais ce qui se passe aujourd’hui, c’est que nous sommes confrontés à trois charges de travail distinctes sur la même plateforme, chacune tirant l’architecture dans une direction différente. Calcul haute performance, grands modèles de langage et systèmes de recommandation, ces trois frères ont leurs propres caractéristiques, et il est tout simplement impossible d'optimiser l'architecture en même temps de manière rentable.
Et il est évident que l’IA présente de grands avantages, alors que le HPC perd peu à peu du terrain. Cette situation dure depuis près de dix ans. Si HPC veut achever sa transformation, son code doit se rapprocher des systèmes de recommandation et des grands modèles de langage, plutôt que de continuer à insister sur l'exécution du code C++ et Fortran existant sur FP64. Et il est évident que les clients HPC bénéficient d’une prime pour chaque opération par rapport aux clients IA. Par conséquent, à moins que les experts HPC ne trouvent une méthode de développement universelle pour des solveurs itératifs capables de modéliser le monde physique avec une précision moindre, il sera difficile d’inverser cette situation passive.
Depuis des décennies, nous avons toujours pensé que la nature elle-même n'est pas conforme aux lois mathématiques. Nous sommes obligés d’utiliser des mathématiques de haute précision pour décrire les effets de la nature, ou nous utilisons un langage inapproprié pour décrire la réalité objective. Bien entendu, la nature peut être plus subtile que nous l’imaginons, et les solveurs itératifs sont plus proches de la réalité que nous souhaitons modéliser. Si tel est le cas, cela pourrait être une bénédiction pour l’humanité, encore plus chanceuse que la coïncidence accidentelle du HPC et de l’IA il y a dix ans.
Après tout, il n'y a pas de route au monde Quand il y a plus de gens qui marchent, cela devient une route.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!