Processeur graphiqueUn processeur graphique, ou GPU (de l'anglais Graphics Processing Unit), également appelé coprocesseur graphique sur certains systèmes, est une unité de calcul assurant les fonctions de calcul d'image. Il peut être présent sous forme de circuit intégré (ou puce) indépendant, soit sur une carte graphique ou sur la carte mère, ou encore intégré au même circuit intégré que le microprocesseur général (on parle d'un SoC lorsqu'il comporte toutes les puces spécialisées).
General-purpose processing on graphics processing unitsGPGPU est l'abréviation de general-purpose computing on graphics processing units, c'est-à-dire calcul générique sur processeur graphique. L'objectif de tels calculs est de bénéficier de la capacité de traitement parallèle des processeurs graphiques. Avant l'arrivée des GPGPU, le CPU, processeur central de l'ordinateur, traitait la plupart des opérations lourdes en calcul comme les simulations physiques, le rendu hors-ligne pour les films, les calculs de risques pour les institutions financières, la prévision météorologique, l'encodage de fichier vidéo et son Intel avec ses 80 % de parts de marché sur les CPU dominait donc très largement tous les besoins en calcul et pouvait en extraire de substantielles marges.
Simultaneous multithreadingLe simultaneous multithreading (SMT) est une technique informatique datant des années 1960. Il s'agit d'une forme de multithreading, une technique qui consiste, comme le symmetric multiprocessing (SMP), à augmenter le TLP (thread level parallelism), c’est-à-dire le parallélisme des threads. Le SMT est le partage d'un cœur de processeur superscalaire (les pipelines, les unités de calcul et les caches) entre plusieurs threads.
SIMTSIMT (de l'Single Instruction, Multiple Threads, selon la taxonomie de Flynn) est une amélioration de SIMD (de l'Single Instruction, Multiple Data) qui permettait sur des processeur arithmétique spécialisés de faire des calculs sur plusieurs données en une seule instruction, en l'adaptant au calcul multithread (c'est-à-dire, comportant plusieurs files d'exécution). MIMD (multiple instruction, multiple data) SIMD (Single Instruction, Multiple Data) SPMD (Single Pogram, Multiple Data) Processeur vectoriel Cat
Thread (informatique)thumb|Un processus avec deux threads. Un thread ou fil (traduction normalisés par ISO/CEI 2382-7:2000 (autres appellations connues : processus léger, fil d'exécution, fil d'instruction, processus allégé, exétron, tâche, voire unité d'exécution ou unité de traitement) est similaire à un processus car tous deux représentent l'exécution d'un ensemble d'instructions du langage machine d'un processeur. Du point de vue de l'utilisateur, ces exécutions semblent se dérouler en parallèle.
Heterogeneous System ArchitectureHeterogeneous System Architecture (HSA) is a cross-vendor set of specifications that allow for the integration of central processing units and graphics processors on the same bus, with shared memory and tasks. The HSA is being developed by the HSA Foundation, which includes (among many others) AMD and ARM. The platform's stated aim is to reduce communication latency between CPUs, GPUs and other compute devices, and make these various devices more compatible from a programmer's perspective, relieving the programmer of the task of planning the moving of data between devices' disjoint memories (as must currently be done with OpenCL or CUDA).
Multithreadingthumb|Schéma d'un process multithread Un processeur est dit multithread s'il est capable d'exécuter efficacement plusieurs threads simultanément. Contrairement aux systèmes multiprocesseurs (tels les systèmes multi-cœur), les threads doivent partager les ressources d'un unique cœur : les unités de traitement, le cache processeur et le translation lookaside buffer ; certaines parties sont néanmoins dupliquées : chaque thread dispose de ses propres registres et de son propre pointeur d'instruction.
Single instruction multiple dataSingle Instruction on Multiple Data (signifiant en anglais : « instruction unique, données multiples »), ou SIMD, est une des quatre catégories d'architecture définies par la taxonomie de Flynn en 1966 et désigne un mode de fonctionnement des ordinateurs dotés de capacités de parallélisme. Dans ce mode, la même instruction est appliquée simultanément à plusieurs données pour produire plusieurs résultats.
Hopper (microarchitecture)Hopper is a graphics processing unit (GPU) microarchitecture developed by Nvidia. It is designed for datacenters and is parallel to Ada Lovelace. Named for computer scientist and United States Navy rear admiral Grace Hopper, the Hopper architecture was leaked in November 2019 and officially revealed in March 2022. It improves upon its predecessors, the Turing and Ampere microarchitectures, featuring a new streaming multiprocessor and a faster memory subsystem. The Nvidia Hopper H100 GPU is implemented using the TSMC 4N process with 80 billion transistors.
Taxonomie de FlynnLa taxonomie de Flynn est une classification des architectures d'ordinateur, proposée par Michael Flynn en 1966. Les quatre catégories définies par Flynn sont classées selon le type d'organisation du flux de données et du flux d'instructions. SISD (unique flux d'instructions, unique flux de données) Il s'agit d'un ordinateur séquentiel qui n'exploite aucun parallélisme, tant au niveau des instructions qu'au niveau de la mémoire. Cette catégorie correspond à l'architecture de von Neumann.
Tesla (microarchitecture)Tesla is the codename for a GPU microarchitecture developed by Nvidia, and released in 2006, as the successor to Curie microarchitecture. It was named after the pioneering electrical engineer Nikola Tesla. As Nvidia's first microarchitecture to implement unified shaders, it was used with GeForce 8 Series, GeForce 9 Series, GeForce 100 Series, GeForce 200 Series, and GeForce 300 Series of GPUs collectively manufactured in 90 nm, 80 nm, 65 nm, 55 nm, and 40 nm.
Processeur vectorielvignette|Processeur vectoriel d'un supercalculateur Cray-1. Un processeur vectoriel est un processeur possédant diverses fonctionnalités architecturales lui permettant d'améliorer l’exécution de programmes utilisant massivement des tableaux, des matrices, et qui permet de profiter du parallélisme inhérent à l'usage de ces derniers. Développé pour des applications scientifiques et exploité par les machines Cray et les supercalculateurs qui lui feront suite, ce type d'architecture a rapidement montré ses avantages pour des applications grand public (on peut citer la manipulation d'images).
Cache de processeurUn cache de processeur est une antémémoire matérielle utilisée par l'unité centrale de traitement (CPU) d'un ordinateur pour réduire le coût moyen (temps ou énergie) de l’accès aux données de la mémoire principale. Un cache de processeur est une mémoire plus petite et plus rapide, située au plus près d'une unité centrale de traitement (ou d'un cœur de microprocesseur), qui stocke des copies des données à partir d'emplacements de la mémoire principale qui sont fréquemment utilisés avant leurs transmissions aux registres du processeur.
Temporal multithreadingTemporal multithreading is one of the two main forms of multithreading that can be implemented on computer processor hardware, the other being simultaneous multithreading. The distinguishing difference between the two forms is the maximum number of concurrent threads that can execute in any given pipeline stage in a given cycle. In temporal multithreading the number is one, while in simultaneous multithreading the number is greater than one. Some authors use the term super-threading synonymously.
Hyper-threadingthumb|Principe de l’hyper-threading. Hyper-threading (officiellement appelée Hyper-Threading Technology (HTT) ou HT Technology (HT)) est la mise en œuvre par l'entreprise Intel du simultaneous multithreading (SMT) à deux voies dans ses microprocesseurs. Le premier modèle grand public de la gamme à en bénéficier fut le Pentium 4 Northwood cadencé à . Le Xeon Northwood en bénéficia auparavant. Schématiquement, l’hyper-threading consiste à créer deux processeurs logiques sur une seule puce, chacun doté de ses propres registres de données et de contrôle, et d’un contrôleur d’interruptions particulier.
Kepler (architecture de carte graphique)L'architecture Kepler a été développée par NVidia pour ses cartes graphiques. Elle est censée doubler les performances par watt par rapport à Fermi, l'architecture précédente, ce qui permet de l'utiliser dans des cartes graphiques mobiles. La première carte graphique utilisant cette architecture est la GTX 680, utilisant le processeur graphique GK 104.
Puce d'accélération de réseaux de neuronesUn Accélérateur d'IA pour accélérateur d'intelligence artificielle (ou NPU, Neural Processing Unit) est une catégorie de microprocesseur ou de systèmes de calculs conçu pour accélérer un réseau de neurones artificiels, accélérer des algorithmes de vision industrielle et d'apprentissage automatique pour la robotique, l'internet des objets et autres taches de calculs-intensifs ou de contrôle de capteurs. Il s'agit souvent de conceptions multicœurs et se concentrant généralement sur l'arithmétique de faible-précision, des nouvelles architectures de flux de données ou de la capacité de calcul en mémoire.
Pipeline (architecture des processeurs)330px|droite|Plan d'un pipeline générique à trois étapes En microarchitecture, un pipeline (ou chaîne de traitement), est l'élément d'un processeur dans lequel l'exécution des instructions est découpée en plusieurs étapes. Le premier ordinateur à utiliser cette technique est l'IBM Stretch, conçu en 1961. Avec un pipeline, le processeur peut commencer à exécuter une nouvelle instruction sans attendre que la précédente soit terminée. Chacune des étapes d’un pipeline est appelé étage.
Yield (multithreading)In computer science, yield is an action that occurs in a computer program during multithreading, of forcing a processor to relinquish control of the current running thread, and sending it to the end of the running queue, of the same scheduling priority. Different programming languages implement yielding in various ways. pthread_yield() in the language C, a low level implementation, provided by POSIX Threads std::this_thread::yield() in the language C++, introduced in C++11.
Gestion de la mémoireLa gestion de la mémoire est une forme de gestion des ressources appliquée à la mémoire de l'ordinateur. L'exigence essentielle de la gestion de la mémoire est de fournir des moyens d'allouer dynamiquement des portions de mémoire aux programmes à leur demande, et de les libérer pour réutilisation lorsqu'elles ne sont plus nécessaires. Ceci est essentiel pour tout système informatique avancé où plus d'un processus peuvent être en cours à tout moment. Catégorie:Architecture informatique Catégorie:Pages avec