Connexion Abonnez-vous

#Nextquick : pourquoi les GPU des cartes graphiques sont-ils aussi bons pour l’IA ?

1 bulldozer vs 10 000 pelles

#Nextquick : pourquoi les GPU des cartes graphiques sont-ils aussi bons pour l’IA ?

Quand on parle de l’entraînement et de l’utilisation de l’intelligence artificielle, on l’associe à de grosses cartes graphiques. Pourquoi les GPU sont-ils à ce point plébiscités et pas les CPU ? Les deux pourtant font des calculs !

Le 17 octobre à 09h09

Pour ce deuxième numéro de #Nextquick, on va répondre à une question : pourquoi les processeurs graphiques (GPU, pour Graphic Processing Units) sont incontournables dans le monde de l’IA ? La réponse courte tient en quelques mots : l'intelligence artificielle exploite énormément les calculs matriciels et vectoriels, domaine dans lequel les GPU excellent. La version longue nécessite plus de détails.

À l’origine, les cartes graphiques sont arrivées avec le développement de la 3D pour calculer toujours plus de pixels afin d’améliorer le rendu dans les jeux vidéo. Pendant 30 ans, les GPU (la puce principale sur la carte graphique) ont vu leur puissance de calcul augmenter de façon continue.

Des cœurs dans le GPU pensés pour l’IA

Un CPU moderne dispose généralement de quelques cœurs, voire de quelques dizaines de cœurs, alors que sur un GPU, ces cœurs se comptent en centaines, voire en milliers. Dans l’architecture Blackwell, la dernière en date de NVIDIA, il y a plus de 20 000 cœurs CUDA et 640 Tensor.

Sans entrer dans tous les détails, les Tensor Cores sont spécialement pensés pour les besoins de l’intelligence artificielle. Ils permettent des calculs en virgule flottante avec une précision réduite (4, 6 ou 8 bits) là où les CUDA s’arrêtent à 16 bits.

La différence est très importante : les nombres FP4 prennent deux fois moins de place en mémoire que les FP8, mais sont aussi moins précis. On passe à un rapport quatre avec les FP16, etc. Deux dossiers à lire sur ce sujet :

Il reste 61% de l'article à découvrir.

Déjà abonné ? Se connecter

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Commentaires (10)

votre avatar
Super article ! Merci ! 😊
:inpactitude:
votre avatar
es domaines qui en profitent le plus sont le traitement des images et vidéos, les simulations scientifiques, le machine learning et de manière générale les LLM (grands modèles de langage).
Je pense qu'on peut aussi indiquer ici les modèles de diffusion pour les images vu que c'est un cas d'usage tout aussi fréquent que le LLM. (et dont le process de travail et d'entraînement est différent d'ailleurs)

Le passage sur le vectoriel a réussi à expliquer en quelques mots avec les images le fonctionnement d'un LLM, bien joué :yes:

À noter que le cas d'usage du RAG s'appuie lui aussi sur des bases de données vectorielles.
votre avatar
Alors, cette représentation vectorielle des mots, c'est plus l'embeddings. Les LLM utilise plutôt massivement des transformers (et le mécanisme d'attention).

Je reprends d'abard la description de François Chollet sur le "deep learning". Tout d'abord, comme on a pu voir dans l'article, tout peut être représenté par un vecteur, c'est-à-dire un point dans un espace à N dimension (N peut être très grands). On peut représenter l'espace d'entrée comme une boulette de papier dans cette espace à N dimension, nos données sont des points sur la feuille de papier qui compose la boulette. Le but d'un réseau de neurone, c'est de déplier et replier cette boulette de papier de tel sort que les données soient ordonnées, par exemple, qu'un simple hyperplan (comme un plan, mais dans un espace à N dimension) permette de séparer ces données en 2 catégories. Chaque couche de neurones plie ou déplie cette boulette de papier. Le "deep learning", c'est le fait d'avoir plein de couches de neurones, donc pouvoir faire plein de déformation de la boulette d'origine et donc pouvoir obtenir des structures plus complexes.

Maintenant un LLM va faire une opération qui transforme au fur et à mesure chaque suite de vecteurs (qui représentent à la base plus ou moins un mot chacun). Ils utilisent aujourd'hui pour la grande majorité des "transformer", qui est une suite assez complexe d'opération dont le cœur est le mécanisme d'attention : la transformation que va subir un vecteur (un mot) est calculé en fonction du contexte qui l'entour. Cependant, à chaque vecteur, on ne va pas porter une importance égale à tous les éléments de ce contexte, mais au contraire, à chaque mot, on va mettre plus de poids à tel ou tels autres mots dans la phrase (par exemple, lorsque l'on est sur un pronom, le mécanisme d'attention va potentiellement s'intéresser au nom qu'il remplace, et lorsque c'est un verbe, il va sûrement chercher le sujet et le COD). Tout ça étant des "neurones", c'est entièrement appris (on ne donne pas de règle sur quoi porter l'attention, ça apprend tous seul).

La majorité des LLM courant et grand public (chatGPT&co), sont basés des modèles de fondation, ils ont appris donner le prochain mots d'un texte en cours d'écriture.
votre avatar
Je parlais surtout de la très rapide explication sur ce qu'apprend le LLM vis à vis des mots via la citation de David Latouche et les images.

Elle fonctionne très bien pour ça sans rentrer dans un détail qui perdra tout le monde.
votre avatar
J'ajoute quelques compléments sur la partie GPU.

Si les GPUs ont plus de coeurs qu'un CPU, mais les coeurs d'un GPU sont nettements plus simple d'un point de vue architecturale. Par exemple, les mécanismes de scheduling au sein d'un CPU sont nettement plus complexe que ceux dans un GPU. Également, les mécanismes de prédicat de branchement sont inexistant. D'ailleurs les GPUs n'aiment pas les sauts conditionnels, surtout lorsque celui intervient dans le calcul. C'est moins embêtant lorsqu'on fait par exemple du reduce, et que le saut conditionel a vocation a mettre idle d'autres threads que le principal.

Là où je tique beaucoup plus c'est la notion de parallélisme donnée par Google. Soyons plus précis, le parallélisme dans un GPU n'est pas le parallélisme dans un CPU au sens où plusieurs coeurs d'un CPU peuvent travailler sur une matrice ou autres structures de données.
Le parallélisme dans un GPU est assez proche du "parallélisme" SIMD d'un coeur CPU, i.e. la possibilité de pouvoir effectuer une même opération (addition, multiplication, bit shift...) sur plusieurs données en même temps au prix d'un temps équivalent à la même opération en scalaire. En réalité, un GPU est plus SIMT que SIMD mais passons.
Par exemple, si je fais 3.14f*x (x est un float 32 bits) sur un Zen 2 tournant à une fréquence nominale de 4 GHz, ça prend 1 ns.
Si maintenant je fais 3.14vx (vx est un tableau/vecteur de float 32 x4 [4 car 432=256 bits -> AVX256]), je peux effectuer en 1 ns 4 opération sur mon vecteur, qui peut par exemple représenter les canaux rgba d'une image.

Et à ce jeu là les GPUs sont terriblement redoutable. D'où leur utilité pour les IA, le calcul matriciel (simulation, image processing...) et autres domaines où les algorithmes peuvent être pensés pour s'implémenter avec ce genre de possibilité matérielle.

Au final, le parallélisme d'un GPU n'est pas celui d'un CPU au sens commun du terme. Ce qui le décrit mieux est l'aspect vectoriel des unités SIMD (MMX, SSE, AVX, AMX...) du CPU dont le parallèle avec le GPU est nettement plus direct.

Mes 2 cents.
votre avatar
Cet article tourne un peu autour du pot. Pourquoi est-ce que les GPU sont bons pour l'IA ? Parce les calculs 3D, pour lesquels les GPU sont conçus au départ, c'est du calcul matriciel ; et pour faire tourner l'IA, c'est du calcul matriciel.
votre avatar
CPU vs GPU et bulldozer vs ouvriers
J'avais l'analogie : doctorants VS école de primaire. Un doctorant est capable de faire des calculs complexes, et plein d'autre tache, ça a une certaine flexibilité et une autonomie. Par contre, il est tout seul. Tandis qu'une école primaire, c'est plein d'enfants qui chacun peut faire un calcul simple, mais comme ils sont très nombreux et ils peuvent faire ces taches en parallèle. Cependant, il faut les encadrer, niveau autonomie, on leur demande juste de ne pas se faire pipi dessus.
votre avatar
Pas mal comme comparaison aussi :)
votre avatar
Ce qui est bien chez Next: les articles sont très intéressants... les commentaires aussi!
Merci à tous :santa_flock:
votre avatar
Hello, je pinaile : sur le dessin vectoriel, les flèches en rouge représentent "femme-homme" (et c'est bien ce qu'on veut) et non l'opposé comme indiqué…

#Nextquick : pourquoi les GPU des cartes graphiques sont-ils aussi bons pour l’IA ?

  • Des cœurs dans le GPU pensés pour l’IA

  • Les GPU découpent le travail et parallélisent à mort

  • Des matrices pour travailler sur images

  • Des vecteurs pour donner du « sens » aux mots

  • CPU vs GPU et bulldozer vs ouvriers : même combat

Fermer