Présentation
RÉSUMÉ
Les différents coprocesseurs/accélérateurs utilisés pour accélérer l'exécution des programmes dans certaines applications sont présentés : NPU, GPU, FPGA, QPU. Les interfaces matérielles et logicielles sont discutées. Alors qu'une amélioration des performances d'au moins un ordre de grandeur est nécessaire pour utiliser un accélérateur, un SDK logiciel mature est un facteur de succès, comme le montre l'utilisation des GPU dans les superordinateurs ou les centres de données.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleAuteur(s)
-
Daniel ETIEMBLE : Ingénieur de l’INSA de Lyon - Collaborateur LISN, Université Paris Saclay
INTRODUCTION
Les coprocesseurs existent depuis les débuts de la fabrication des ordinateurs, avant même la naissance des circuits intégrés. Leur fonction était d’accélérer l’exécution des programmes. Depuis quelques années, souvent renommés accélérateurs, ils ont pris une nouvelle actualité pour l’intelligence artificielle (IA), notamment pour les PC et les serveurs des centres de données. Les circuits actuels utilisent plusieurs types différents d’accélérateurs aux côtés de CPU multi-cœurs performants.
L’article Évolution de l’architecture des ordinateurs [H 1 058], publié en 2016, examine l’articulation entre la technologie des semi-conducteurs, les concepts architecturaux et les besoins des grandes classes d’application. Il concerne surtout l’évolution des processeurs (CPU). Cet article reste d’actualité, même si les applications de l’IA ont pris de plus en plus d’importance.
Dans cet article, nous résumons les caractéristiques générales des CPU, et nous présentons les caractéristiques des grands types d’accélérateurs, et pourquoi ils sont apparus et ont été, ou sont, utilisés.
Nous présentons et discutons les types suivants d’accélérateurs :
-
les coprocesseurs mathématiques et d’E/S, utilisés dans les mainframes et les premiers microprocesseurs.
-
les coprocesseurs sous forme des CPU réduits spécialisés pour un type d’applications, tels les processeurs neuronaux (NPU) dans les PC pour l’IA ;
-
les coprocesseurs utilisant un modèle de calcul différent de celui des CPU, comme les GPU et les FPGA ;
-
les coprocesseurs utilisant des phénomènes physiques particuliers, tels les processeurs quantiques (QPU).
Pour qu’un coprocesseur/accélérateur soit effectivement largement utilisé, un certain nombre de conditions doivent être remplies :
-
il doit fournir un gain de performance significatif par rapport au CPU, d’un ou plusieurs ordres de grandeur ;
-
l’interface matérielle entre le CPU et l’accélérateur doit être le plus possible standardisée ;
-
l’interface logicielle (SDK) doit être mature, facile d’utilisation, comme, par exemple, CUDA pour les GPU NVidia.
MOTS-CLÉS
DOI (Digital Object Identifier)
CET ARTICLE SE TROUVE ÉGALEMENT DANS :
Accueil > Ressources documentaires > Technologies de l'information > Technologies logicielles Architectures des systèmes > Architectures matérielles > Architecture des ordinateurs : CPU et coprocesseurs/accélérateurs > Accélérateurs
Cet article fait partie de l’offre
Électronique
(236 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Des modules pratiques
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
2. Accélérateurs
Dans la suite de ce texte, nous utiliserons indifféremment les termes coprocesseur ou accélérateur. En effet, les coprocesseurs ont toujours eu pour objectif de réduire les temps d’exécution des programmes. On peut caractériser quatre grands types de co-processeurs.
2.1 Coprocesseurs mathématiques et d’E/S
Les mainframes des années 1960 disposaient de coprocesseurs spécialisés pour les entrées/sorties (E/S). L’IBM-365 (1965) disposait de « processeurs canaux » pour les périphériques lents et pour les périphériques rapides. Le CDC 6600 (1964) disposait de 10 processeurs périphériques d’E/S (figure 1). Les processeurs périphériques utilisaient le principe du multithreading grain fin [H 1 090].
Pour les premiers microprocesseurs, la densité d’intégration ne permettait pas d’intégrer sur la puce CPU toutes les fonctionnalités souhaitables.
L’Intel 8087, coprocesseur mathématique, est apparu en 1980 avec 40 000 transistors (figure 2). Il utilise un mode pseudo-pile, et effectue les calculs sur 80 bits. En plus des instructions courantes, il implante des instructions flottantes « complexes » telles que SIN, COS, PTAN, PATAN, Y * log2(X), Y * log2(X+1). Les instructions x87 sont implantées dans tous les jeux d’instructions 32 bits et 64 bits d’Intel. La spécificité des instructions x87 a conduit Intel à définir une autre implantation des instructions flottantes avec la version « scalaire » des instructions flottantes SIMD [H 1 200].
Les 80187 et 80287 ont succédé au 8087. Le 80486 a...
Cet article fait partie de l’offre
Électronique
(236 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Des modules pratiques
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Accélérateurs
DANS NOS BASES DOCUMENTAIRES
Cet article fait partie de l’offre
Électronique
(236 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Des modules pratiques
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive