GPU (Graphics Processing Unit) est un processeur spécialisé pour le traitement parallèle des données graphiques, effectuant des millions de calculs sur les pixels et les sommets par image. Contrairement à un CPU, optimisé pour les tâches séquentielles à faible latence, un GPU contient des milliers de cœurs basse consommation pour des opérations mathématiques massives. Selon le NVIDIA Developer Blog (2025), les GPU mobiles modernes contiennent jusqu'à 1024 cœurs et atteignent 2 TFLOPS dans les charges de travail de calcul. Les développeurs intègrent des GPU pour le rendu, le post-traitement et l'apprentissage automatique sur l'appareil.
Points Clés
GPU (Graphics Processing Unit) est une micropuce spécialisée conçue pour le parallélisme massif. Les premiers GPU sont apparus à la fin des années 1990 comme accélérateurs 3D pour PC de bureau. Depuis, l'architecture a évolué d'un pipeline fixe vers des shaders programmables et des unités de calcul universelles.
Le but principal d'un GPU est la rasterisation : convertir des données géométriques (sommets, triangles) en pixels sur l'écran. Le processus inclut la transformation des sommets, l'élimination des surfaces invisibles, le texturage et le mélange des couleurs. Toutes ces opérations sont exécutées en parallèle pour des milliers d'éléments simultanément.
Selon Jon Peddie Research (2025), le marché des GPU mobiles représente 58 % du volume total des processeurs graphiques, dépassant les solutions discrètes pour PC et serveurs. Chaque smartphone contient au moins un GPU intégré au System-on-Chip (SoC) avec le CPU, le DSP et le processeur neuronal.
Les GPU modernes se divisent en deux types : intégrés (intégrés au SoC, partagent la mémoire avec le CPU) et discrets (carte séparée avec sa propre mémoire vidéo). Le développement mobile utilise exclusivement des GPU intégrés — Qualcomm Adreno, ARM Mali, Apple GPU et Imagination PowerVR.
L'évolution des GPU a traversé trois étapes : pipeline fixe (1999–2006), shaders unifiés (2006–2016) et cœurs de calcul programmables (2016 — présent). La première étape définissait une séquence rigide d'opérations — transformation, éclairage, texturage. Le développeur ne pouvait pas intervenir dans le pipeline.
Avec l'avènement des shaders unifiés, le GPU a obtenu la capacité d'exécuter des programmes arbitraires — des shaders écrits en HLSL ou GLSL. Cela a ouvert la voie au GPGPU — l'utilisation du GPU pour des tâches non graphiques. La troisième étape a ajouté des cœurs tenseurs pour l'apprentissage automatique et le lancer de rayons en temps réel.
Dans les GPU mobiles, le jalon clé a été l'introduction du Tile-Based Deferred Rendering (TBDR) — une architecture où l'image est divisée en tuiles (16x16 pixels) et traitée dans une mémoire rapide sur la puce. Cela réduit la consommation d'énergie de 3 à 5 fois par rapport au rendu en mode immédiat typique des GPU de bureau.
L'architecture GPU diffère radicalement du CPU. Au lieu de quelques cœurs puissants avec de grands caches, un GPU contient des centaines ou des milliers d'unités de calcul simples optimisées pour SIMD (Single Instruction, Multiple Data) — une instruction est exécutée sur plusieurs éléments de données.
Le bloc de base d'un GPU est le Shader Core (dans la terminologie NVIDIA) ou l'Execution Unit (Intel). Plusieurs de ces blocs sont combinés en Compute Units (AMD) ou Streaming Multiprocessors (NVIDIA). Chaque bloc inclut des ALU pour l'arithmétique, un fichier de registres et un planificateur de warps (groupes de threads).
Les GPU mobiles diffèrent architecturalement des GPU de bureau. Qualcomm Adreno utilise une architecture avec des processeurs shader programmables et un bloc de rasterisation dédié. ARM Mali est basé sur Bifrost ou Valhall — des architectures avec un traitement quatuor de warps. Apple GPU a son propre design depuis 2017 avec la prise en charge de Metal et de la mémoire unifiée.
| Fabricant | Gamme GPU | Architecture | API |
|---|---|---|---|
| Qualcomm | Adreno 6xx/7xx/8xx | Processeurs Shader Programmables | Vulkan, OpenGL ES |
| ARM | Série Mali-G | Bifrost / Valhall | Vulkan, OpenGL ES |
| Apple | Apple GPU (A13–A18) | Design Personnalisé | Metal |
| Imagination | PowerVR IMG | Furian / B-Series | Vulkan, OpenGL ES |
Une caractéristique clé des GPU mobiles est l'Unified Memory Architecture (UMA). Le GPU et le CPU partagent la même RAM sans mémoire vidéo dédiée. Cela réduit la latence dans l'échange de données et simplifie la programmation, mais limite la bande passante sous des calculs intensifs.
Le CPU est conçu pour des tâches séquentielles avec une latence minimale. Il contient 4 à 12 cœurs puissants avec de grands caches L1/L2/L3, des prédicteurs de branchement et une exécution spéculative. Le GPU, en revanche, sacrifie la latence au profit du débit — des milliers de cœurs traitent les données avec une latence élevée mais une performance globale énorme.
La différence est évidente en FLOPS (opérations en virgule flottante par seconde). Un SoC mobile haut de gamme en 2025 : CPU — 200 GFLOPS, GPU — 2400 GFLOPS. Le GPU surpasse le CPU de 12 fois sur les tâches permettant le parallélisme. Cependant, pour les algorithmes séquentiels, le CPU reste plus rapide en raison de la moindre surcharge de gestion des threads.
En pratique, les développeurs utilisent le CPU pour la logique applicative, l'interface utilisateur et les E/S, et le GPU pour le rendu, le traitement d'images, la simulation physique et l'inférence de réseaux neuronaux. Selon Google Android Performance Patterns (2025), la charge optimale du GPU dans les applications mobiles est de 60 à 80 % — la surcharge entraîne un étranglement thermique et une surchauffe.
// CPU — sequential processing
for (int i = 0; i < N; i++) {
result[i] = data[i] * 2.0f;
}
// GPU — parallel processing (GLSL compute shader)
#version 300 es
layout(local_size_x = 256) in;
void main() {
uint idx = gl_GlobalInvocationID.x;
result[idx] = data[idx] * 2.0f;
}
Le code CPU effectue la multiplication séquentiellement pour chaque élément. La version GPU lance 256 threads en parallèle, chacun multiplie son propre élément. Avec N=1 million, le GPU accomplira la tâche 100 à 1000 fois plus rapidement qu'un seul cœur CPU.
Les GPU mobiles fonctionnent sous des contraintes thermiques et de puissance strictes. Le TDP typique d'un GPU mobile est de 2 à 8 W, contre 150 à 450 W pour les homologues de bureau. Cela nécessite une architecture spéciale axée sur l'efficacité énergétique plutôt que sur les performances de pointe.
La principale technologie d'économie d'énergie est le Tile-Based Rendering. L'image est divisée en tuiles de 16x16 ou 32x32 pixels. Chaque tuile est entièrement traitée dans une SRAM rapide (Tile Memory), puis écrite dans la DRAM externe. Cela réduit les accès mémoire de 4 à 10 fois par rapport au mode immédiat.
Qualcomm Adreno est le GPU mobile le plus répandu. L'Adreno 750 (Snapdragon 8 Gen 3) contient 12 processeurs shader avec un pool de registres partagé. Il prend en charge Vulkan 1.3, OpenGL ES 3.2, OpenCL 3.0 et le lancer de rayons matériel. Selon Qualcomm (2025), l'Adreno offre une amélioration de performance de 45 % de génération en génération tout en maintenant la consommation d'énergie.
ARM Mali est le deuxième GPU le plus populaire dans les appareils Android. Le Mali-G720 est basé sur l'architecture Valhall de 5e génération avec prise en charge du Variable Rate Shading et de l'ASTC HDR. Une caractéristique distinctive de Mali est le traitement quatuor : quatre threads sont combinés en un warp pour une meilleure utilisation des ALU.
Apple GPU est conçu exclusivement pour l'API Metal. Depuis l'A13 Bionic, Apple utilise son propre design de GPU avec la prise en charge de Metal 3, du lancer de rayons et des mesh shaders. L'architecture Apple GPU dispose d'une Unified Memory avec une bande passante allant jusqu'à 800 Go/s sur le M4 Ultra.
L'étranglement thermique du GPU — réduction de fréquence due à la surchauffe — est le principal problème des jeux mobiles. Sous charge soutenue, la température du SoC atteint 85–95 °C et le GPU réduit sa fréquence de 30 à 50 %. Selon AnandTech (2025), le Qualcomm Adreno 750 perd jusqu'à 35 % de performances après 15 minutes dans Genshin Impact.
Les développeurs peuvent atténuer l'étranglement grâce à l'optimisation des appels de dessin, à la réduction de la résolution de rendu et à l'utilisation du Foveated Rendering. Les Metal Performance Shaders sur iOS et l'Android Frame Pacing API sur Android aident à synchroniser la charge avec le budget thermique de l'appareil.
GPGPU (General-Purpose computing on GPU) est l'utilisation d'un processeur graphique pour des calculs non graphiques. L'idée est née au milieu des années 2000, lorsque les développeurs ont réalisé que les shaders pouvaient être adaptés pour les opérations matricielles, la cryptographie et la simulation physique.
Aujourd'hui, GPGPU est un outil standard pour les tâches nécessitant un parallélisme massif : apprentissage automatique (entraînement et inférence de réseaux neuronaux), cryptographie (hachage, chiffrement), traitement d'images et de vidéos (filtres, codecs) et simulations scientifiques (dynamique des fluides, chimie quantique).
Sur les appareils mobiles, GPGPU est accessible via les Compute Shaders — des shaders sans sortie graphique qui travaillent uniquement avec des données. Un Compute Shader lance une grille de groupes de travail, chaque groupe contenant plusieurs threads. L'accès à la mémoire se fait via des tampons et des textures sans liaison avec l'écran.
#version 310 es
layout(local_size_x = 16, local_size_y = 16) in;
layout(binding = 0) buffer Input { float data[]; };
layout(binding = 1) buffer Output { float result[]; };
void main() {
uvec2 idx = gl_GlobalInvocationID.xy;
uint offset = idx.y * gl_NumWorkGroups.x * gl_WorkGroupSize.x + idx.x;
result[offset] = sqrt(data[offset]) + 1.0;
}
L'exemple de compute shader calcule la racine carrée pour chaque élément du tableau. Un groupe de travail 16x16 traite 256 éléments simultanément. Les GPU mobiles modernes prennent en charge jusqu'à 1024 groupes de travail et des millions de threads globaux.
Les API d'accès au GPU déterminent comment les développeurs envoient des commandes et des données au processeur graphique. Trois API principales sont utilisées sur les plateformes mobiles : Vulkan, Metal et OpenGL ES. Chacune a ses avantages et ses limites qui affectent les performances et la compatibilité.
Vulkan est une API multiplateforme bas niveau du Khronos Group, successeur d'OpenGL. Vulkan donne aux développeurs un contrôle direct sur la mémoire GPU, les files d'attente de commandes et la synchronisation. Selon Khronos (2025), Vulkan offre une amélioration de performance de 30 à 60 % par rapport à OpenGL ES en réduisant la surcharge du pilote.
Sur Android, Vulkan est obligatoire depuis Android 7.0 (API 24), et tous les SoC modernes prennent en charge Vulkan 1.3. Vulkan Memory Allocator et SPIR-V comme représentation intermédiaire permettent d'écrire des shaders en GLSL, HLSL ou Rust GPU.
Metal est l'API propriétaire d'Apple pour le GPU sur tous les appareils de l'écosystème : iPhone, iPad, Mac, Apple TV. Metal offre une surcharge minimale et un temps d'exécution des commandes prévisible. Selon la documentation Apple Developer (2025), Metal gère jusqu'à 100 000 appels de dessin par image sans baisse de FPS.
Une caractéristique clé est le Metal Shading Language (MSL) basé sur le C++. Les shaders sont compilés en code machine avec l'application, éliminant la compilation JIT typique de Vulkan. Metal prend en charge les Mesh Shaders, le Ray Tracing et les Dynamic Libraries pour charger des shaders à l'exécution.
OpenGL ES est une version simplifiée d'OpenGL pour les systèmes embarqués. Il est utilisé sur les anciens appareils et pour la rétrocompatibilité. OpenGL ES 3.2 est pris en charge sur 94 % des appareils Android selon Android Studio (2025). Pour les nouveaux projets, Google recommande Vulkan plutôt qu'OpenGL ES.
WebGL est l'analogue d'OpenGL ES pour les navigateurs, la base des graphiques 3D sur le web. WebGL 2.0 (correspondant à OpenGL ES 3.0) est pris en charge sur 92 % des navigateurs mobiles. WebGPU est la prochaine génération, avec une architecture proche de Vulkan et Metal.
Foire Aux Questions
Un GPU mobile fonctionne dans une enveloppe thermique de 2 à 8 W, utilise le Tile-Based Rendering pour économiser l'énergie et partage la mémoire avec le CPU via UMA. Un GPU de bureau consomme 150 à 450 W, dispose d'une mémoire vidéo dédiée (GDDR) et utilise le rendu en mode immédiat.
Apple GPU dans les puces M4 Ultra et A18 Pro est le leader en performances par watt parmi les GPU mobiles. Parmi les appareils Android, le Qualcomm Adreno 850 dans le Snapdragon 8 Gen 4 et l'ARM Mali-G925 dans le MediaTek Dimensity 9500 sont en tête.
Oui, le GPU est activement utilisé pour l'inférence de réseaux neuronaux via Core ML sur iOS et TensorFlow Lite / NNAPI sur Android. Selon Google (2025), l'accélération GPU offre une amélioration de vitesse de 3 à 10 fois par rapport au CPU.
L'étranglement thermique se produit lorsque le budget thermique est dépassé. Sous charge soutenue, la température du SoC atteint 85–95 °C et le GPU réduit sa fréquence pour protéger la puce. La solution est l'optimisation du rendu et l'utilisation de limites de FPS (30–45 FPS).
Vulkan est le choix principal pour les nouveaux projets. OpenGL ES est pour la rétrocompatibilité avec les anciens appareils. Metal est obligatoire pour iOS. Pour le développement multiplateforme, utilisez des frameworks comme Unity, Unreal Engine ou Filament.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi