GPU (Graphics Processing Unit) — je specializovaný procesor pro paralelní zpracování grafických dat, provádějící miliony výpočtů nad pixely a vrcholy za snímek. Na rozdíl od CPU, který je optimalizován pro sekvenční úlohy s nízkou latencí, GPU obsahuje tisíce nízkoenergetických jader pro hromadné matematické operace. Podle NVIDIA Developer Blog (2025) obsahují moderní mobilní GPU až 1024 jader a dosahují výkonu 2 TFLOPS při výpočetním zatížení. Vývojáři integrují GPU pro rendering, post-processing a strojové učení na zařízení.
Hlavní body
GPU (Graphics Processing Unit) — je specializovaný mikročip navržený pro hromadný paralelismus. První GPU se objevily na konci 90. let jako akcelerátory 3D grafiky pro stolní počítače. Od té doby se architektura vyvinula z pevné pipeline na programovatelné shadery a univerzální výpočetní bloky.
Hlavním účelem GPU — rasterizace: převod geometrických dat (vrcholy, trojúhelníky) na pixely na obrazovce. Proces zahrnuje transformaci vrcholů, ořezávání neviditelných ploch, texturování a míchání barev. Všechny tyto operace se provádějí paralelně pro tisíce prvků současně.
Podle Jon Peddie Research (2025) tvoří trh mobilních GPU 58 % celkového objemu grafických procesorů, čímž předčí diskrétní řešení pro PC a servery. Každý chytrý telefon obsahuje alespoň jeden GPU integrovaný v System-on-Chip (SoC) spolu s CPU, DSP a neuroprocesorem.
Moderní GPU se dělí na dva typy: integrované (vestavěné do SoC, sdílející paměť s CPU) a diskrétní (samostatná karta s vlastní video pamětí). V mobilním vývoji se používají výhradně integrované GPU — Qualcomm Adreno, ARM Mali, Apple GPU a Imagination PowerVR.
Evoluce GPU prošla třemi fázemi: pevná pipeline (1999–2006), unifikované shadery (2006–2016) a programovatelná výpočetní jádra (2016 — současnost). První fáze definovala pevnou posloupnost operací — transformace, osvětlení, texturování. Vývojář nemohl do pipeline zasahovat.
S příchodem unifikovaných shaderů získal GPU schopnost provádět libovolné programy — shadery napsané v HLSL nebo GLSL. To otevřelo cestu k GPGPU — využití GPU pro negrafické úlohy. Třetí fáze přidala tensorová jádra pro strojové učení a ray tracing v reálném čase.
U mobilních GPU byl klíčovým milníkem zavedení Tile-Based Deferred Rendering (TBDR) — architektury, při které je snímek rozdělen na dlaždice (16x16 pixelů) a zpracováván v rychlé lokální paměti. To snižuje spotřebu energie 3–5krát ve srovnání s immediate mode renderingem typickým pro stolní GPU.
Architektura GPU se radikálně liší od CPU. Místo několika výkonných jader s velkou cache obsahuje GPU stovky nebo tisíce jednoduchých výpočetních bloků optimalizovaných pro SIMD (Single Instruction, Multiple Data) — jedna instrukce se provádí nad mnoha datovými prvky.
Základním blokem GPU — Shader Core (v terminologii NVIDIA) nebo Execution Unit (Intel). Několik takových bloků se spojuje do Compute Unit (AMD) nebo Streaming Multiprocessor (NVIDIA). Každý blok obsahuje ALU pro aritmetiku, registry a plánovač warpů (skupin vláken).
Mobilní GPU se architektonicky liší od stolních. Qualcomm Adreno používá architekturu s programovatelnými shader procesory a vyhrazeným blokem rasterizace. ARM Mali je založen na Bifrost nebo Valhall — architekturách s kvartetovým zpracováním warpů. Apple GPU má od roku 2017 vlastní design s podporou Metal a unifikované paměti.
| Výrobce | Řada GPU | Architektura | API |
|---|---|---|---|
| Qualcomm | Adreno 6xx/7xx/8xx | Programovatelné shader procesory | Vulkan, OpenGL ES |
| ARM | Řada Mali-G | Bifrost / Valhall | Vulkan, OpenGL ES |
| Apple | Apple GPU (A13–A18) | Vlastní design | Metal |
| Imagination | PowerVR IMG | Furian / B-Series | Vulkan, OpenGL ES |
Klíčovou vlastností mobilních GPU — Unified Memory Architecture (UMA). GPU a CPU sdílejí společnou RAM bez oddělené video paměti. To snižuje latenci při výměně dat a zjednodušuje programování, ale omezuje propustnost při intenzivních výpočtech.
CPU je navržen pro sekvenční úlohy s minimální latencí. Obsahuje 4–12 výkonných jader s velkou cache L1/L2/L3, prediktorem větvení a spekulativním prováděním. GPU naproti tomu obětuje latenci ve prospěch propustnosti — tisíce jader zpracovávají data s vysokou latencí, ale obrovským celkovým výkonem.
Rozdíl se projevuje v FLOPS (operacích s plovoucí čárkou za sekundu). Nejlepší mobilní SoC roku 2025: CPU — 200 GFLOPS, GPU — 2400 GFLOPS. GPU překonává CPU 12krát u úloh umožňujících paralelismus. U sekvenčních algoritmů však CPU zůstává rychlejší kvůli nižším režiím na správu vláken.
V praxi vývojář používá CPU pro logiku aplikace, UI a IO, a GPU pro rendering, zpracování obrazu, simulaci fyziky a inferenci neuronových sítí. Podle Google Android Performance Patterns (2025) činí optimální zatížení GPU v mobilních aplikacích 60–80 % — přetížení vede k throttlingu a přehřívání.
// CPU — sekvenční zpracování
for (int i = 0; i < N; i++) {
result[i] = data[i] * 2.0f;
}
// GPU — paralelní zpracování (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;
}
Kód na CPU provádí násobení sekvenčně pro každý prvek. Verze GPU spouští 256 vláken paralelně, každé násobí svůj prvek. Při N=1 milionu provede GPU úlohu 100–1000krát rychleji než CPU na jednom jádře.
Mobilní GPU pracují v přísných omezeních tepelného výdeje a spotřeby energie. Typické TDP mobilního GPU je 2–8 W, oproti 150–450 W u stolních protějšků. To vyžaduje speciální architekturu s důrazem na energetickou účinnost, nikoli špičkový výkon.
Hlavní technologie úspory energie — Tile-Based Rendering. Snímek je rozdělen na dlaždice 16×16 nebo 32×32 pixelů. Každá dlaždice je zpracována celá v rychlé paměti SRAM (Tile Memory) a poté zapsána do externí DRAM. To snižuje přístupy do paměti 4–10krát ve srovnání s immediate mode.
Qualcomm Adreno — nejrozšířenější mobilní GPU. Adreno 750 (Snapdragon 8 Gen 3) obsahuje 12 shader procesorů se společným fondem registrů. Podporuje Vulkan 1.3, OpenGL ES 3.2, OpenCL 3.0 a ray tracing na úrovni jádra. Podle Qualcomm (2025) přináší Adreno 45% nárůst výkonu na generaci při zachování spotřeby energie.
ARM Mali — druhý nejoblíbenější GPU v zařízeních s Androidem. Mali-G720 je založen na architektuře Valhall 5. generace s podporou Variable Rate Shading a ASTC HDR. Zvláštností Mali je kvartetové zpracování: čtyři vlákna jsou sloučena do jednoho warpu pro lepší využití ALU.
Apple GPU je navržen výhradně pro Metal API. Od A13 Bionic používá Apple vlastní design GPU s podporou Metal 3, ray tracingu a mesh shaderů. Architektura Apple GPU se vyznačuje Unified Memory s propustností až 800 GB/s na M4 Ultra.
Throttling GPU — snižování frekvence při přehřívání — hlavní problém mobilních her. Při dlouhodobém zatížení dosahuje teplota SoC 85–95 °C a GPU snižuje frekvenci o 30–50 %. Podle AnandTech (2025) ztrácí Qualcomm Adreno 750 až 35 % výkonu po 15 minutách v Genshin Impact.
Vývojář může throttling zmírnit pomocí optimalizace draw volání, snížení rozlišení renderingu a použití Foveated Rendering. Metal Performance Shaders na iOS a Android Frame Pacing API na Android pomáhají synchronizovat zátěž s tepelným rozpočtem zařízení.
GPGPU (General-Purpose computing on GPU) — využití grafického procesoru pro negrafické výpočty. Nápad vznikl v polovině 2000. let, když si vývojáři všimli, že shadery lze přizpůsobit pro maticové operace, kryptografii a simulaci fyziky.
Dnes je GPGPU standardním nástrojem pro úlohy vyžadující hromadný paralelismus: strojové učení (trénování a inference neuronových sítí), kryptografie (hashování, šifrování), zpracování obrazu a videa (filtry, kodeky), vědecké simulace (hydrodynamika, kvantová chemie).
Na mobilních zařízeních se GPGPU aplikuje prostřednictvím Compute Shaders — shaderů bez grafického výstupu, pracujících pouze s daty. Compute Shader spouští Grid pracovních skupin, každá skupina obsahuje několik vláken. Přístup k paměti — přes buffery a textury bez vazby na obrazovku.
#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;
}
Příklad compute shaderu počítá druhou odmocninu pro každý prvek pole. Pracovní skupina 16×16 zpracovává 256 prvků současně. Moderní mobilní GPU podporují až 1024 pracovních skupin a miliony globálních vláken.
API pro přístup k GPU určují, jak vývojář odesílá příkazy a data na grafický procesor. Na mobilních platformách se používají tři hlavní API: Vulkan, Metal a OpenGL ES. Každé má své výhody a omezení, které ovlivňují výkon a kompatibilitu.
Vulkan — nízkoúrovňové multiplatformní API od Khronos Group, nástupce OpenGL. Vulkan poskytuje vývojáři přímou kontrolu nad pamětí GPU, frontami příkazů a synchronizací. Podle Khronos (2025) přináší Vulkan 30–60% nárůst výkonu oproti OpenGL ES díky snížení režie ovladače.
Na Androidu je Vulkan povinný od Android 7.0 (API 24), ale všechna moderní SoC podporují Vulkan 1.3. Vulkan Memory Allocator a SPIR-V jako mezikód umožňují psát shadery v GLSL, HLSL nebo Rust GPU.
Metal — proprietární API Apple pro GPU na všech zařízeních ekosystému: iPhone, iPad, Mac, Apple TV. Metal zajišťuje minimální režii a předvídatelnou dobu provádění příkazů. Podle Apple Developer Documentation (2025) zpracovává Metal až 100 000 draw volání na snímek bez poklesu FPS.
Klíčová vlastnost — Metal Shading Language (MSL) založený na C++. Shadery jsou kompilovány do strojového kódu spolu s aplikací, což eliminuje JIT kompilaci typickou pro Vulkan. Metal podporuje Mesh Shaders, Ray Tracing a Dynamic Libraries pro načítání shaderů za běhu.
OpenGL ES — zjednodušená verze OpenGL pro vestavěné systémy. Používá se na starších zařízeních a pro zajištění zpětné kompatibility. OpenGL ES 3.2 je podporován na 94 % zařízení s Androidem podle Android Studio (2025). Pro nové projekty Google doporučuje Vulkan místo OpenGL ES.
WebGL — prohlížečový analog OpenGL ES, základ 3D grafiky na webu. WebGL 2.0 (odpovídá OpenGL ES 3.0) je podporován na 92 % mobilních prohlížečů. WebGPU — další generace s architekturou blízkou Vulkan a Metal.
Často kladené otázky
Mobilní GPU pracuje v tepelném paketu 2–8 W, využívá Tile-Based Rendering pro úsporu energie a sdílí paměť s CPU přes UMA. Stolní GPU spotřebovává 150–450 W, má samostatnou video paměť (GDDR) a používá Immediate Mode Rendering.
Apple GPU v čipech M4 Ultra a A18 Pro — lídr ve výkonu na watt mezi mobilními GPU. Mezi zařízeními s Androidem vede Qualcomm Adreno 850 v Snapdragon 8 Gen 4 a ARM Mali-G925 v MediaTek Dimensity 9500.
Ano, GPU se aktivně používá pro inferenci neuronových sítí prostřednictvím Core ML na iOS a TensorFlow Lite / NNAPI na Androidu. Podle Google (2025) poskytuje GPU akcelerace 3–10násobné zvýšení rychlosti oproti CPU.
Throttling nastává kvůli překročení tepelného rozpočtu. Při dlouhodobém zatížení dosahuje teplota SoC 85–95 °C a GPU snižuje frekvenci na ochranu čipu. Řešením je optimalizace renderingu a použití FPS limitů (30–45 FPS).
Vulkan — hlavní volba pro nové projekty. OpenGL ES — pro zpětnou kompatibilitu se staršími zařízeními. Metal — povinný pro iOS. Pro multiplatformní vývoj použijte frameworky jako Unity, Unreal Engine nebo Filament.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také