Accélération matérielle
L'accélération matérielle consiste à confier une fonction spécifique effectuée par le processeur à un circuit intégré dédié qui effectuera cette fonction de façon plus efficace.
Principe général
modifierPendant longtemps, les calculs effectués par les ordinateurs grand public étaient entièrement pris en charge par le processeur central (CPU). Or, ce processeur s'avérait insuffisant dans un certain nombre de domaines. On eut l'idée de créer des circuits plus efficaces que le processeur pour ces tâches afin de le décharger.
On parle d'accélération matérielle puisqu'elle est obtenue par le câblage matériel des calculs à effectuer, et non de manière logicielle, où un processeur généraliste suit un programme logiciel. Par abus de langage, on dit parfois que les calculs sont câblés matériellement.
L'accélération matérielle est souvent utilisée à travers des pilotes spécifiques, par exemple via Glide, OpenGL, Direct3D.
Les circuits intégrés accélérateurs peuvent être situés :
- sur la carte mère ;
- sur une carte fille insérée sur les slots ISA, puis PCI, AGP, et PCI Express de la carte mère ;
- dans le processeur directement (cas de l'unité de calcul en virgule flottante (FPU en anglais)).
Les jeux vidéo en 3D temps réel ont largement contribué à l'augmentation de besoin de puissance de l'informatique grand public par des cartes spécialisées.
Types d'accélération
modifierAccélération mathématique
modifierIl s'agit d'accélérer le traitement des opérations en virgule flottante. C'est historiquement la première fonction à avoir été accélérée. Les coprocesseurs spécialisés dans ce type de calculs, appelés unités de calcul en virgule flottante (Floating Point Unit ou FPU en anglais) ou plus couramment, coprocesseurs arithmétiques ou mathématiques, ont d'abord été séparés du processeur central (Central Processing Unit ou CPU), un emplacement leur étant dédié sur la carte mère. Par la suite, ils ont été intégrés au processeur sur certains modèles destinés à un usage intensif, comme les Intel 80486 DX : depuis le lancement de la gamme de processeurs Intel Pentium en 1993 et la disparition progressive de nombre des fondeurs concurrents, tous les processeurs grand public récents intègrent une ou plusieurs unités dédiées à ce type de calculs.
C'est le type le plus courant et le plus populaire diffusé sous le nom de carte accélératrice 3D. Cette accélération matérielle est confiée à des cartes filles dédiées à la synthèse d'image 3D. Elles sont chargées des tâches suivantes :
- transformation de points 3D, c'est-à-dire la projection de sommets 3D en 2D (pixels) par une matrice de changement de repère (mathématiques) ;
- calcul de l'illumination locale de points 3D dont les versions les plus récentes sont les vertex shaders ;
- enfin, le tracé de surfaces à l'écran avec application de textures.
Les cartes accélératrices 3D sont de plus en plus sollicitées par les programmes, et leurs concepteurs poussent souvent la capacité de ces composants au point de nécessiter un système de refroidissement spécifique. La plupart des jeux 3D récents sont accélérés 3D, sauf Outcast, exception notable car basé sur une technologie ne permettant pas encore l'accélération (voxels).
Historiquement, c'est le premier système vendu en carte spécifique (cartes Voodoo, de 3dfx).
Accélération physique
modifierL'accélération physique simule les phénomènes physiques, surtout mécaniques, comme les déplacements et collisions entre solides, et la gravité. Les circuits réalisant ces fonctions sont des Physics Processing Unit ou PPU.
Accélération vidéo
modifierCes cartes peuvent effectuer des tâches liées à la compression/décompression de flux vidéo comme MPEG ou Xvid. Ce type d'accélération peut se retrouver dans des cartes accélératrices 3D ou dans des cartes d'acquisition vidéo (Firewire).
Accélération audio
modifierCertaines cartes sonores sont capables d'effectuer des tâches de traitement de signal grâce à des processeurs de signal numérique (Digital Signal Processor ou DSP en anglais) intégrés. Ces traitements permettent notamment d'ajouter des effets comme des échos, de la réverbération.
Les tout premiers ordinateurs personnels à avoir embarqué un DSP sont le NeXT, l'INDIGO de Silicon Graphics sorti en 1990, puis l'Atari Falcon030 sorti en 1992.
Accélération processeur
modifierIl s'agit d'une carte ajoutant un processeur qui se rajoute ou remplace le processeur original. Les ordinateurs Amiga ont beaucoup utilisé les cartes accélératrices apportant un processeur Motorola plus récent ou bien un processeur PowerPC
Futur
modifierLes PPU à peine sortis, on envisage déjà l'accélération :
- du lancer de rayon, via la carte Larrabee, et les nouvelles cartes 3D via CUDA et OpenCL ; Cycles, le moteur de rendu de Blender, en fait usage ;
- de l'intelligence artificielle (pour la perception et le path-finding), via le projet AIseek (2006)[1].
L'emploi des shaders 2.0 et suivants permet de considérer le processeur graphique (Graphical Processing Unit en anglais) comme un coprocesseur programmable multi-usages et massivement parallèle.
Notes et références
modifier- Toviraaj A., « Cartes accélératrices : après la PhysX, l'Intelligence ! », Génération Nouvelles Technologies, 8 septembre 2006.
Voir aussi
modifierArticles connexes
modifier- OpenRT, une bibliothèque pour l'accélération matérielle du lancer de rayon.
- OpenCL, une bibliothèque pour l'accélération matérielle des calculs par la carte graphique.
- CUDA, une bibliothèque propriétaire de NVIDIA pour l'accélération matérielle des calculs par la carte graphique.
- Vulkan, répartit mieux les calculs sur les processeurs et les cartes accélératrices.
Liens externes
modifier- (en) polyworld un bench accéléré 3D de RayTracing Temps réel.