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,...