GPU (Graphics Processing Unit) è un processore specializzato per l'elaborazione parallela di dati grafici, che esegue milioni di calcoli su pixel e vertici per fotogramma. A differenza di una CPU, ottimizzata per attività sequenziali a bassa latenza, una GPU contiene migliaia di core a basso consumo per operazioni matematiche massive. Secondo il NVIDIA Developer Blog (2025), le GPU mobili moderne contengono fino a 1024 core e raggiungono 2 TFLOPS nei carichi di lavoro computazionali. Gli sviluppatori integrano GPU per rendering, post-elaborazione e apprendimento automatico sul dispositivo.
Punti Chiave
GPU (Graphics Processing Unit) è un microchip specializzato progettato per il parallelismo massivo. Le prime GPU sono apparse alla fine degli anni '90 come acceleratori 3D per PC desktop. Da allora, l'architettura si è evoluta da pipeline fissa a shader programmabili e unità di calcolo universali.
Lo scopo principale di una GPU è la rasterizzazione: convertire dati geometrici (vertici, triangoli) in pixel sullo schermo. Il processo include trasformazione dei vertici, eliminazione delle superfici invisibili, texturizzazione e miscelazione dei colori. Tutte queste operazioni vengono eseguite in parallelo per migliaia di elementi simultaneamente.
Secondo Jon Peddie Research (2025), il mercato delle GPU mobili rappresenta il 58% del volume totale dei processori grafici, superando le soluzioni discrete per PC e server. Ogni smartphone contiene almeno una GPU integrata nel System-on-Chip (SoC) insieme a CPU, DSP e processore neurale.
Le GPU moderne si dividono in due tipi: integrate(incorporate nel SoC, condividono la memoria con la CPU) e discrete(scheda separata con propria memoria video). Lo sviluppo mobile utilizza esclusivamente GPU integrate — Qualcomm Adreno, ARM Mali, Apple GPU e Imagination PowerVR.
L'evoluzione della GPU ha attraversato tre fasi: pipeline fissa (1999–2006), shader unificati (2006–2016) e core di calcolo programmabili (2016 — presente). La prima fase definiva una sequenza rigida di operazioni — trasformazione, illuminazione, texturizzazione. Lo sviluppatore non poteva intervenire nella pipeline.
Con l'avvento degli shader unificati, la GPU ha ottenuto la capacità di eseguire programmi arbitrari — shader scritti in HLSL o GLSL. Questo ha aperto la strada al GPGPU — l'uso della GPU per attività non grafiche. La terza fase ha aggiunto core tensoriali per l'apprendimento automatico e ray tracing in tempo reale.
Nelle GPU mobili, la pietra miliare è stata l'introduzione del Tile-Based Deferred Rendering (TBDR) — un'architettura in cui il fotogramma viene diviso in tile (16x16 pixel) ed elaborato in memoria veloce sul chip. Ciò riduce il consumo energetico di 3–5 volte rispetto al rendering in modalità immediata tipico delle GPU desktop.
L'architettura GPU differisce radicalmente dalla CPU. Invece di pochi core potenti con grandi cache, una GPU contiene centinaia o migliaia di semplici unità di calcolo ottimizzate per SIMD (Single Instruction, Multiple Data) — un'istruzione viene eseguita su più elementi di dati.
Il blocco base di una GPU è lo Shader Core (nella terminologia NVIDIA) o l'Execution Unit (Intel). Diversi blocchi di questo tipo vengono combinati in Compute Units (AMD) o Streaming Multiprocessors (NVIDIA). Ogni blocco include ALU per l'aritmetica, un file di registri e uno scheduler di warp (gruppi di thread).
Le GPU mobili differiscono architetturalmente da quelle desktop. Qualcomm Adreno utilizza un'architettura con processori shader programmabili e un blocco di rasterizzazione dedicato. ARM Mali si basa su Bifrost o Valhall — architetture con elaborazione a quartetti di warp. Apple GPU ha un design proprietario dal 2017 con supporto Metal e memoria unificata.
| Produttore | Linea GPU | Architettura | API |
|---|---|---|---|
| Qualcomm | Adreno 6xx/7xx/8xx | Processori Shader Programmabili | Vulkan, OpenGL ES |
| ARM | Serie Mali-G | Bifrost / Valhall | Vulkan, OpenGL ES |
| Apple | Apple GPU (A13–A18) | Design Personalizzato | Metal |
| Imagination | PowerVR IMG | Furian / B-Series | Vulkan, OpenGL ES |
Una caratteristica chiave delle GPU mobili è l'Unified Memory Architecture (UMA). GPU e CPU condividono la stessa RAM senza memoria video dedicata. Ciò riduce la latenza nello scambio di dati e semplifica la programmazione, ma limita la larghezza di banda sotto calcoli intensivi.
La CPU è progettata per attività sequenziali con latenza minima. Contiene 4–12 core potenti con grandi cache L1/L2/L3, predittori di salto ed esecuzione speculativa. La GPU, al contrario, sacrifica la latenza per il throughput — migliaia di core elaborano dati con alta latenza ma enorme prestazione aggregata.
La differenza è evidente in FLOPS (operazioni a virgola mobile al secondo). Un SoC mobile di punta nel 2025: CPU — 200 GFLOPS, GPU — 2400 GFLOPS. La GPU supera la CPU di 12 volte in attività che consentono il parallelismo. Tuttavia, per algoritmi sequenziali, la CPU rimane più veloce grazie al minore overhead di gestione dei thread.
In pratica, gli sviluppatori usano la CPU per la logica dell'applicazione, l'interfaccia utente e I/O, e la GPU per rendering, elaborazione delle immagini, simulazione fisica e inferenza di reti neurali. Secondo Google Android Performance Patterns (2025), il carico ottimale della GPU nelle applicazioni mobili è del 60–80% — il sovraccarico porta a throttling termico e surriscaldamento.
// 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;
}
Il codice CPU esegue la moltiplicazione sequenzialmente per ogni elemento. La versione GPU avvia 256 thread in parallelo, ciascuno moltiplica il proprio elemento. Con N=1 milione, la GPU completerà l'attività 100–1000 volte più velocemente di un singolo core CPU.
Le GPU mobili operano sotto rigide limitazioni termiche e di potenza. Il TDP tipico di una GPU mobile è di 2–8 W, contro i 150–450 W delle controparti desktop. Ciò richiede un'architettura speciale focalizzata sull'efficienza energetica anziché sulle prestazioni di picco.
La principale tecnologia di risparmio energetico è il Tile-Based Rendering. Il fotogramma viene diviso in tile di 16x16 o 32x32 pixel. Ogni tile viene completamente elaborato in SRAM veloce (Tile Memory), quindi scritto nella DRAM esterna. Ciò riduce gli accessi alla memoria di 4–10 volte rispetto alla modalità immediata.
Qualcomm Adreno è la GPU mobile più diffusa. Adreno 750 (Snapdragon 8 Gen 3) contiene 12 processori shader con un pool di registri condiviso. Supporta Vulkan 1.3, OpenGL ES 3.2, OpenCL 3.0 e ray tracing hardware. Secondo Qualcomm (2025), Adreno offre un miglioramento delle prestazioni del 45% generazione dopo generazione mantenendo il consumo energetico.
ARM Mali è la seconda GPU più popolare nei dispositivi Android. Mali-G720 si basa sull'architettura Valhall di 5ª generazione con supporto per Variable Rate Shading e ASTC HDR. Una caratteristica distintiva di Mali è l'elaborazione a quartetti: quattro thread vengono combinati in un warp per un migliore utilizzo delle ALU.
Apple GPU è progettata esclusivamente per Metal API. Dall'A13 Bionic, Apple utilizza un design GPU proprietario con supporto per Metal 3, ray tracing e mesh shader. L'architettura Apple GPU dispone di Unified Memory con larghezza di banda fino a 800 GB/s sul M4 Ultra.
Il throttling della GPU — riduzione della frequenza per surriscaldamento — è il problema principale nei giochi mobili. Sotto carico prolungato, la temperatura del SoC raggiunge 85–95 °C e la GPU riduce la frequenza del 30–50%. Secondo AnandTech (2025), la Qualcomm Adreno 750 perde fino al 35% delle prestazioni dopo 15 minuti in Genshin Impact.
Gli sviluppatori possono mitigare il throttling attraverso l'ottimizzazione delle draw call, la riduzione della risoluzione di rendering e l'uso di Foveated Rendering. Metal Performance Shaders su iOS e Android Frame Pacing API su Android aiutano a sincronizzare il carico con il budget termico del dispositivo.
GPGPU (General-Purpose computing on GPU) è l'uso di un processore grafico per calcoli non grafici. L'idea è nata a metà degli anni 2000, quando gli sviluppatori hanno scoperto che gli shader potevano essere adattati per operazioni matriciali, crittografia e simulazione fisica.
Oggi, GPGPU è uno strumento standard per attività che richiedono parallelismo massivo: apprendimento automatico (training e inferenza di reti neurali), crittografia (hashing, cifratura), elaborazione di immagini e video (filtri, codec) e simulazioni scientifiche (fluidodinamica, chimica quantistica).
Sui dispositivi mobili, GPGPU è accessibile tramite Compute Shaders — shader senza output grafico che lavorano solo con dati. Un Compute Shader avvia una griglia di gruppi di lavoro, ciascun gruppo contiene più thread. L'accesso alla memoria avviene tramite buffer e texture senza legame con lo schermo.
#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'esempio di compute shader calcola la radice quadrata per ogni elemento dell'array. Un gruppo di lavoro 16x16 elabora 256 elementi simultaneamente. Le GPU mobili moderne supportano fino a 1024 gruppi di lavoro e milioni di thread globali.
Le API di accesso alla GPU determinano come gli sviluppatori inviano comandi e dati al processore grafico. Tre API principali sono utilizzate sulle piattaforme mobili: Vulkan, Metal e OpenGL ES. Ognuna ha i suoi vantaggi e limiti che influenzano prestazioni e compatibilità.
Vulkan è un'API multipiattaforma di basso livello del Khronos Group, successore di OpenGL. Vulkan offre agli sviluppatori il controllo diretto sulla memoria GPU, le code di comandi e la sincronizzazione. Secondo Khronos (2025), Vulkan fornisce un miglioramento delle prestazioni del 30–60% rispetto a OpenGL ES riducendo l'overhead del driver.
Su Android, Vulkan è obbligatorio da Android 7.0 (API 24), e tutti i SoC moderni supportano Vulkan 1.3. Vulkan Memory Allocator e SPIR-V come rappresentazione intermedia consentono di scrivere shader in GLSL, HLSL o Rust GPU.
Metal è l'API proprietaria di Apple per GPU su tutti i dispositivi dell'ecosistema: iPhone, iPad, Mac, Apple TV. Metal offre overhead minimo e tempi di esecuzione dei comandi prevedibili. Secondo Apple Developer Documentation (2025), Metal gestisce fino a 100.000 draw call per fotogramma senza cali di FPS.
Una caratteristica principale è Metal Shading Language (MSL) basato su C++. Gli shader vengono compilati in codice macchina insieme all'applicazione, eliminando la compilazione JIT tipica di Vulkan. Metal supporta Mesh Shaders, Ray Tracing e Dynamic Libraries per caricare shader in fase di esecuzione.
OpenGL ES è una versione semplificata di OpenGL per sistemi embedded. Viene utilizzato su dispositivi vecchi e per compatibilità all'indietro. OpenGL ES 3.2 è supportato sul 94% dei dispositivi Android secondo Android Studio (2025). Per i nuovi progetti, Google raccomanda Vulkan invece di OpenGL ES.
WebGL è l'analogo di OpenGL ES per browser, la base per la grafica 3D sul web. WebGL 2.0 (corrispondente a OpenGL ES 3.0) è supportato sul 92% dei browser mobili. WebGPU è la prossima generazione, con un'architettura vicina a Vulkan e Metal.
Domande Frequenti
Una GPU mobile opera entro un budget termico di 2–8 W, utilizza Tile-Based Rendering per il risparmio energetico e condivide la memoria con la CPU tramite UMA. Una GPU desktop consuma 150–450 W, ha memoria video dedicata (GDDR) e utilizza Immediate Mode Rendering.
Apple GPU nei chip M4 Ultra e A18 Pro è leader in prestazioni per watt tra le GPU mobili. Tra i dispositivi Android, guidano Qualcomm Adreno 850 in Snapdragon 8 Gen 4 e ARM Mali-G925 in MediaTek Dimensity 9500.
Sì, la GPU è attivamente utilizzata per l'inferenza di reti neurali tramite Core ML su iOS e TensorFlow Lite / NNAPI su Android. Secondo Google (2025), l'accelerazione GPU offre un miglioramento della velocità di 3–10 volte rispetto alla CPU.
Il throttling si verifica quando il budget termico viene superato. Sotto carico prolungato, la temperatura del SoC raggiunge 85–95 °C e la GPU riduce la frequenza per proteggere il chip. La soluzione è ottimizzare il rendering e utilizzare limiti FPS (30–45 FPS).
Vulkan è la scelta principale per i nuovi progetti. OpenGL ES è per la compatibilità all'indietro con dispositivi vecchi. Metal è obbligatorio per iOS. Per lo sviluppo multipiattaforma, utilizzare framework come Unity, Unreal Engine o Filament.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.
Leggi anche