GPU : qu’est-ce que c’est et pourquoi l’utiliser en Data Science ?

-
7
 m de lecture
-

Un GPU ou « Graphics Processing Unit » est le composant d'un ordinateur permettant l'affichage des images sur l'écran. Il s'agit de l'unité de traitement graphique.

Si on compare un ordinateur à un cerveau, on pourrait dire que le CPU est la section dédiée à la pensée logique tandis que le GPU est consacré à l’aspect créatif. Il permet de convertir les données binaires brutes en images visuellement attractives.

Un simple GPU intégré au CPU suffit à gérer l’affichage d’un système d’exploitation comme Windows sur un écran. En revanche, pour des tâches plus intensives graphiquement comme le rendering vidéo ou le design, un GPU indépendant et plus puissant sous forme de carte graphique est généralement requis.

Les deux principaux fabricants de cartes graphiques sont Nvidia et AMD. Dans le domaine des GPU intégrés, Intel domine le marché. Les smartphones et tablettes sont également équipés de puces SoC (System-on-a-Chip), regroupant un CPU et un GPU, généralement fabriqués par Qualcomm et MediaTek.

Les différents types de GPU

Il existe deux principaux types de GPU dans les PC modernes : intégré et dédié. Le premier type est directement intégré au processeur, le second est séparé.

En général, les cartes graphiques pour PCs de bureau sont de larges composants dotés de ventilateurs pour le refroidissement. Ces cartes regroupent la puce de traitement graphique, et de la RAM dédiée pour les charges graphiques plus lourdes comme les jeux vidéo.

Il est très facile de remplacer une carte graphique sur un PC de bureau. Il suffit de la glisser dans un emplacement PCIe x16, de la brancher à l’alimentation, et puis d’installer les pilotes. On peut même installer plusieurs GPUs sur un même ordinateur.

Les laptops équipés de GPUs dédiés ne disposent pas tout à fait du même type de GPU. En général il s’agit d’une simple puce soudée à la carte-mère. Ce type de GPU est plus compliqué voire impossible à remplacer. De plus, ils sont difficiles à maintenir à une bonne température sous charge intensive (par exemple pendant l’entraînement d’un modèle de Deep Learning) à cause de la faible ventilation de l’ordinateur. Pour cette raison, les GPUs pour laptop sont souvent bridés en puissance pour garder la température de l’ordinateur sous contrôle. Il n’est donc pas recommandé d’investir dans un laptop pour entraîner des modèles de Deep Learning.

Les GPU intégrés sont directement construits dans le processeur CPU. Certains processeurs n’en sont pas dotés, comme les CPU de la gamme Ryzen d’AMD. En revanche, AMD fabrique des processeurs avec cartes graphiques intégrées appelés Accelerated Processing Unit (APUs).

De même, les puces Core d’Intel dont le numéro de modèle se termine par F n’ont pas de GPU. C’est aussi le cas des CPU de gamme Core X dont les numéros de modèle se terminent par X. Ces processeurs sont proposés à prix réduit.

Les processeurs modernes avec GPU intégrés peuvent être étonnamment performants. Toutefois, pour un cas d’usage intensif comme la Data Science, un GPU dédié est indispensable.

type-gpu-data-science

À quoi sert un GPU ?

Le terme de GPU fut démocratisé par Nvidia dans les années 1990. Sa gamme de cartes graphiques GeForce fut la première à se populariser, et a permis aux technologies comme l’accélération hardware, le shading programmable ou le traitement en stream d’évoluer.

En cas d’utilisation basique d’un ordinateur, comme la navigation sur le web ou l’utilisation de logiciels bureautiques, le rôle d’un GPU est simplement l’affichage des images à l’écran.

Toutefois, pour d’autres cas d’usage comme le gaming ou la Data Science, un GPU offre de nombreuses possibilités. Il permet par exemple l’encodage vidéo ou le rendering 3D, et on l’utilise même pour l’entraînement de modèles de Deep Learning, mais aussi des modèles ensemblistes comme LightGBM.

Les graphiques générés par ordinateurs, comme ceux des jeux vidéo ou autres médiums animés, requièrent un large volume de puissance pour dessiner chaque image individuellement avec un taux de rafraîchissement pouvant aller bien au-delà de 100 images par seconde.

De même, le montage vidéo nécessite l’édition de larges volumes de fichiers en haute définition. Un puissant GPU est indispensable pour transcoder les fichiers à une vitesse acceptable.

Les GPUs furent originellement conçus pour accélérer le rendering de graphiques 3D. Au fil du temps, ils sont devenus plus flexibles et programmables. Leurs capacités se sont étendues.

Ceci a permis aux designers de créer des effets visuels plus réalistes, avec des techniques d’ombre et de lumière. En outre, des développeurs ont commencé à exploiter la puissance des GPUs pour accélérer les workloads dans les domaines du Deep Learning et du Calcul Haute Performance (simulations physiques, compression de fichiers, etc). Voici les principaux cas d’usage des GPUs.

1. Le jeu vidéo

Dans le cas d’un jeu vidéo, c’est le GPU qui permet d’afficher les images de personnages, de paysages, ou d’objets 3D modélisés dans les moindres détails. En effet, les jeux vidéos requièrent de nombreux calculs mathématiques effectués en parallèle de l’affichage des images à l’écran.

Le GPU est spécifiquement conçu pour traiter les informations graphiques telles que la géométrie, la couleur, la teinte ou les textures d’une image. La RAM permet aussi de prendre en charge le large volume d’informations transmises au GPU et les données de vidéo dirigées vers l’écran.

Toutes les instructions sont transmises du CPU au GPU, qui se charge de les exécuter pour afficher les images à l’écran. Ce processus est appelé rendering ou pipeline graphique.

L’unité de base des graphismes 3D est le polygone. Toutes les images que l’on voit dans un jeu vidéo sont basées sur un large amas de polygones.

Ces formes basiques sont appelées « primitives », au même titre que d’autres lignes et points. Elles sont assemblées pour constituer des objets concrets et reconnaissables, comme une table, un arbre ou un magicien. Plus les polygones sont nombreux, plus les images finales sont détaillées.

Chaque objet a son propre ensemble de coordonnées permettant au GPU de savoir où le placer dans une scène. C’est la raison pour laquelle il arrive que les objets soient placés n’importe comme dans les jeux, en cas de bug.

Le GPU effectue ensuite des calculs pour déterminer la perspective de la « caméra ». Enfin, les images reçoivent leurs textures, leurs ombres et leurs couleurs permettant de les rendre si réalistes.

Ce traitement graphique est effectué à une vitesse fulgurante. Ceci requiert de lourds calculs, et c’est pourquoi un GPU dédié et performant est indispensable.

Il est techniquement possible d’utiliser un CPU pour les graphismes, mais ce sera moins efficace et le résultat final ne sera pas aussi impressionnant visuellement. Ce composant est déjà occupé à exécuter le système d’exploitation, d’autres programmes et des processus d’arrière-plan.

gpu-gaming

2. Le montage vidéo

Pendant de nombreuses années, les monteurs vidéo, les designers graphiques et autres professionnels créatifs étaient limités par la lenteur du rendering.

Aujourd’hui, le traitement parallèle offert par les GPUs rend le rendering vidéo beaucoup plus facile et rapide dans des formats de plus haute définition. Ceci permet d’écourter le temps de production et d’itération de vidéos.

3. La cryptomonnaie

Un GPU est conçu spécifiquement pour le traitement graphique. Or, cette tâche requiert de nombreux calculs mathématiques effectués en parallèle.

Cette focalisation sur le calcul et les opérations parallèles rend les GPU particulièrement adaptées au minage de l’Ethereumet autres cryptomonnaies dérivées de l’Ethereum. Les mineurs de crypto se sont très rapidement tournés vers ces composants, délaissant les CPUs trop généralistes et moins performants pour ce cas d’usage.

GPU et Data Science

La Data Science désigne l’ensemble des méthodes et techniques permettant d’extraire des informations à partir de données brutes. Ces informations peuvent être utilisées par des algorithmes de Machine Learning pour produire des systèmes d’intelligence artificielle.

Cette discipline requiert une importante puissance de calcul, et les GPU sont particulièrement adaptés car beaucoup d’opérations mathématiques utilisées en Machine Learning sont facilement parallélisables.

L’un des cas d’usage les plus récents et importants des GPUs est la création de réseaux de neurones d’intelligence artificielle. Il s’agit aussi d’un des cas d’usage les plus exigeant en Data Science.

L’intelligence artificielle moderne dépend fortement de la capacité à traiter des volumes massifs de données en parallèle grâce à du hardware spécialisé. Les GPUs ont joué un rôle majeur dans l’essor de ces nouvelles technologies. Sans les GPUs, nous n’aurions pas le hardware nécessaire pour l’entraînement de réseaux de neurones performants.

En général, un CPU complète les tâches de manière séquentielle. Il peut être divisé en quelques cœurs (typiquement 8 ou 16 cœurs), et chaque cœur peut effectuer une tâche différente, tandis qu’un GPU est doté de centaines ou de milliers de cœurs dédiés simultanément à une tâche unique. La parallélisation des traitements est fondamentale dans le design des algorithmes pour GPU, c’est pourquoi programmer des instructions sur GPU est complètement différent de la programmation traditionnelle sur CPU.

Les librairies de Deep Learning comme TensorFlow et PyTorch s’occupent de la programmation du GPU en arrière-plan, ce qui simplifie énormément le développement de modèles de Deep Learning sur GPU.

L’utilisation des GPUs avec ces librairies requiert l’installation de pilotes dédiés au calcul haute performance. Vous trouverez les instructions pour installer ces pilotes dans les documentations de ces librairies.

gpu-machine-learning

Comment choisir le bon GPU ?

La meilleure façon d’évaluer objectivement la performance d’un GPU est à l’aide de benchmarks : des tests conçus pour tester la limite des GPUs et de leur attribuer un score. Ces scores permettent de comparer tous les GPUs sur le marché, et ainsi de choisir celui qui répond le mieux à nos attentes. En fonction du domaine d’application, le benchmark sera différent.

Pour le jeu vidéo, les benchmarks sont très populaires. Typiquement, on va comparer le taux de rafraîchissement obtenu sur un jeu particulier : Un GPU capable de générer 70 images par seconde (ou frames per second en anglais) sur Tomb Raider sera meilleur qu’un GPU capable d’en générer 55.

Pour le montage vidéo, de nombreux benchmarks existent pour comparer la performance de rendering d’un GPU sur des logiciels comme Adobe Photoshop, Adobe Premiere Pro, Sony Vegas, etc. Dans ce cas-là, on va comparer le temps nécessaire pour terminer le rendu d’une vidéo et plus ce temps sera faible, meilleur sera le GPU.

Pour le Deep Learning, il existe des benchmarks comparant le temps d’entraînement nécessaire à l’entraînement de modèles très connus comme VGG-16, Inception, EfficientNet sur des bases de données connues comme ImageNet, CIFAR-10, MNIST, etc. 

Les GPUs les mieux supportés par les librairies de Deep Learning sont les GPUs de la marque NVidia. Il n’est pas recommandé d’utiliser un GPU AMD pour le Deep Learning car les librairies TensorFlow et PyTorch ne proposent pas de support natif pour les GPUs de cette marque.

Comment suivre une formation Data Science et Machine Learning ?

Pour apprendre à exploiter les capacités des GPU pour le traitement de données, vous pouvez choisir DataScientest. Nos formations Data Analyst, Data Scientist et Data Engineer comportent des modules dédiés au Machine Learning et à la Data Science.

Les autres modules de ces formations couvrent le Big Data, les bases de données, la programmation Python, la Dataviz ou encore la Business Intelligence. À l’issue de ces parcours, vous aurez toutes les compétences requises pour exercer l’un des métiers de la Data Science.

Notre approche Blended Learning innovante combine apprentissage sur une plateforme en ligne, et Masterclass collectives. Toutes les formations s’effectuent intégralement à distance.

En fonction de votre situation, vous pouvez choisir entre une formation continue et le mode BootCamp intensif. Parmi nos alumnis, 80% ont trouvé un emploi immédiatement après la fin du cursus.

Pour le financement, nos formations sont éligibles au Compte Personnel de Formation. N’attendez plus et découvrez les programmes DataScientest !

Vous savez tout sur les GPUs. Pour plus d’informations sur le sujet, découvrez notre dossier complet sur la Data Science et notre dossier sur le Machine Learning.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?