GPU (Graphics Processing Unit) — är en specialiserad processor för parallell bearbetning av grafisk data, som utför miljontals beräkningar på pixlar och hörn per bildruta. Till skillnad från en CPU, som är optimerad för sekventiella uppgifter med låg latens, innehåller en GPU tusentals lågeffektkärnor för massiva matematiska operationer. Enligt NVIDIA Developer Blog (2025) innehåller moderna mobila GPU:er upp till 1024 kärnor och når en prestanda på 2 TFLOPS i beräkningsbelastningar. Utvecklare integrerar GPU:er för rendering, efterbehandling och maskininlärning på enheten.
Huvudpunkter
GPU (Graphics Processing Unit) — är ett specialiserat mikrochip designat för massiv parallellism. De första GPU:erna dök upp i slutet av 1990-talet som 3D-grafikacceleratorer för stationära datorer. Sedan dess har arkitekturen utvecklats från fast pipeline till programmerbara shaders och universella beräkningsblock.
GPU:ns huvudsakliga syfte — rasterisering: omvandling av geometrisk data (hörn, trianglar) till pixlar på skärmen. Processen omfattar hörntransformering, bortskärning av osynliga ytor, texturering och färgblandning. Alla dessa operationer utförs parallellt för tusentals element samtidigt.
Enligt Jon Peddie Research (2025) utgör den mobila GPU-marknaden 58 % av den totala volymen grafikkretsar, vilket överträffar diskreta lösningar för datorer och servrar. Varje smartphone innehåller minst en GPU integrerad i System-on-Chip (SoC) tillsammans med CPU, DSP och neuroprocessor.
Moderna GPU:er delas in i två typer: integrerade (inbyggda i SoC, delar minne med CPU) och diskreta (separat kort med eget videominne). Inom mobilutveckling används uteslutande integrerade GPU:er — Qualcomm Adreno, ARM Mali, Apple GPU och Imagination PowerVR.
GPU:ns evolution har gått igenom tre faser: fast pipeline (1999–2006), enhetliga shaders (2006–2016) och programmerbara beräkningskärnor (2016 — nutid). Den första fasen definierade en stel sekvens av operationer — transformering, belysning, texturering. Utvecklaren kunde inte ingripa i pipelinen.
Med tillkomsten av enhetliga shaders fick GPU:n förmågan att utföra godtyckliga program — shaders skrivna i HLSL eller GLSL. Detta öppnade vägen för GPGPU — användning av GPU för icke-grafiska uppgifter. Den tredje fasen lade till tensorkärnor för maskininlärning och strålspårning i realtid.
För mobila GPU:er var den viktigaste milstolpen införandet av Tile-Based Deferred Rendering (TBDR) — en arkitektur där bildrutan delas upp i brickor (16x16 pixlar) och bearbetas i snabbt lokalt minne. Detta minskar energiförbrukningen med 3–5 gånger jämfört med immediate mode rendering, som är typisk för stationära GPU:er.
GPU-arkitektur skiljer sig radikalt från CPU. Istället för några få kraftfulla kärnor med stor cache innehåller en GPU hundratals eller tusentals enkla beräkningsblock optimerade för SIMD (Single Instruction, Multiple Data) — en instruktion utförs på flera dataelement.
GPU:ns grundläggande block — Shader Core (i NVIDIA-terminologi) eller Execution Unit (Intel). Flera sådana block kombineras i Compute Unit (AMD) eller Streaming Multiprocessor (NVIDIA). Varje block innehåller ALU för aritmetik, registerfil och warp-schemaläggare (grupper av trådar).
Mobila GPU:er skiljer sig arkitektoniskt från stationära. Qualcomm Adreno använder en arkitektur med programmerbara shader-processorer och ett dedikerat rasteriseringsblock. ARM Mali är baserat på Bifrost eller Valhall — arkitekturer med kvartettbearbetning av warpar. Apple GPU har sedan 2017 en egen design med stöd för Metal och enhetligt minne.
| Tillverkare | GPU-serie | Arkitektur | API |
|---|---|---|---|
| Qualcomm | Adreno 6xx/7xx/8xx | Programmerbara shader-processorer | Vulkan, OpenGL ES |
| ARM | Mali-G-serie | Bifrost / Valhall | Vulkan, OpenGL ES |
| Apple | Apple GPU (A13–A18) | Egen design | Metal |
| Imagination | PowerVR IMG | Furian / B-Series | Vulkan, OpenGL ES |
Nyckelegenskapen hos mobila GPU:er — Unified Memory Architecture (UMA). GPU och CPU delar gemensamt RAM utan separat videominne. Detta minskar latensen vid datautbyte och förenklar programmering, men begränsar bandbredden vid intensiva beräkningar.
CPU är designad för sekventiella uppgifter med minimal latens. Den innehåller 4–12 kraftfulla kärnor med stor L1/L2/L3-cache, branch predictor och spekulativ exekvering. GPU offrar däremot latens för bandbredd — tusentals kärnor bearbetar data med hög latens men enorm total prestanda.
Skillnaden syns i FLOPS (flyttalsoperationer per sekund). Den bästa mobila SoC år 2025: CPU — 200 GFLOPS, GPU — 2400 GFLOPS. GPU överträffar CPU 12 gånger i uppgifter som tillåter parallellism. För sekventiella algoritmer är CPU dock snabbare på grund av lägre omkostnader för trådhantering.
I praktiken använder utvecklaren CPU för applikationslogik, UI och IO, och GPU för rendering, bildbehandling, fysiksimulering och inferens av neurala nätverk. Enligt Google Android Performance Patterns (2025) är den optimala GPU-belastningen i mobila appar 60–80 % — överbelastning leder till throttling och överhettning.
// CPU — sekventiell bearbetning
for (int i = 0; i < N; i++) {
result[i] = data[i] * 2.0f;
}
// GPU — parallell bearbetning (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;
}
Koden på CPU utför multiplikationen sekventiellt för varje element. GPU-versionen startar 256 trådar parallellt, varje tråd multiplicerar sitt eget element. Vid N=1 miljon utför GPU uppgiften 100–1000 gånger snabbare än CPU på en kärna.
Mobila GPU:er arbetar under strikta begränsningar för värmeavgivning och energiförbrukning. Den typiska TDP:n för en mobil GPU är 2–8 W, jämfört med 150–450 W för stationära motsvarigheter. Detta kräver en speciell arkitektur med fokus på energieffektivitet snarare än topprestanda.
Den huvudsakliga energibesparande teknologin — Tile-Based Rendering. Bildrutan delas upp i brickor på 16x16 eller 32x32 pixlar. Varje bricka bearbetas helt i snabbt SRAM-minne (Tile Memory) och skrivs sedan till extern DRAM. Detta minskar minnesåtkomster med 4–10 gånger jämfört med immediate mode.
Qualcomm Adreno — den vanligaste mobila GPU:n. Adreno 750 (Snapdragon 8 Gen 3) innehåller 12 shader-processorer med en gemensam registerpool. Stöder Vulkan 1.3, OpenGL ES 3.2, OpenCL 3.0 och strålspårning på kärnnivå. Enligt Qualcomm (2025) levererar Adreno en prestandaökning på 45 % per generation med bibehållen energiförbrukning.
ARM Mali — den näst populäraste GPU:n i Android-enheter. Mali-G720 är baserad på Valhall-arkitekturen av 5:e generationen med stöd för Variable Rate Shading och ASTC HDR. Mali:s särdrag är kvartettbearbetning: fyra trådar kombineras i en warp för bättre ALU-utnyttjande.
Apple GPU är designad uteslutande för Metal API. Från och med A13 Bionic använder Apple en egen GPU-design med stöd för Metal 3, strålspårning och mesh-shaders. Apple GPU-arkitekturen utmärker sig med Unified Memory med en bandbredd på upp till 800 GB/s på M4 Ultra.
GPU-throttling — frekvenssänkning vid överhettning — det största problemet för mobila spel. Vid långvarig belastning når SoC-temperaturen 85–95°C och GPU sänker frekvensen med 30–50 %. Enligt AnandTech (2025) förlorar Qualcomm Adreno 750 upp till 35 % av sin prestanda efter 15 minuter i Genshin Impact.
Utvecklaren kan mildra throttling genom optimering av draw-anrop, sänkning av renderingsupplösningen och användning av Foveated Rendering. Metal Performance Shaders på iOS och Android Frame Pacing API på Android hjälper till att synkronisera belastningen med enhetens termiska budget.
GPGPU (General-Purpose computing on GPU) — användning av grafikkretsen för icke-grafiska beräkningar. Idén föddes i mitten av 2000-talet när utvecklare upptäckte att shaders kunde anpassas för matrisoperationer, kryptografi och fysiksimulering.
Idag är GPGPU ett standardverktyg för uppgifter som kräver massiv parallellism: maskininlärning (träning och inferens av neurala nätverk), kryptografi (hashning, kryptering), bild- och videobehandling (filter, codecs), vetenskapliga simuleringar (hydrodynamik, kvantkemi).
På mobila enheter tillämpas GPGPU genom Compute Shaders — shaders utan grafisk utmatning som endast arbetar med data. Compute Shader startar ett Grid av arbetsgrupper, varje grupp innehåller flera trådar. Åtkomst till minne — via buffertar och texturer utan koppling till skärmen.
#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;
}
Exemplet på compute shader beräknar kvadratroten för varje element i arrayen. En arbetsgrupp på 16x16 bearbetar 256 element samtidigt. Moderna mobila GPU:er stöder upp till 1024 arbetsgrupper och miljontals globala trådar.
API:er för GPU-åtkomst bestämmer hur utvecklaren skickar kommandon och data till grafikkretsen. På mobila plattformar används tre huvudsakliga API:er: Vulkan, Metal och OpenGL ES. Var och en har sina fördelar och begränsningar som påverkar prestanda och kompatibilitet.
Vulkan — ett lågnivå- och plattformsoberoende API från Khronos Group, efterträdare till OpenGL. Vulkan ger utvecklaren direkt kontroll över GPU-minne, kommandoköer och synkronisering. Enligt Khronos (2025) ger Vulkan en prestandaökning på 30–60 % jämfört med OpenGL ES genom minskad drivrutinsoverhead.
På Android är Vulkan obligatoriskt från Android 7.0 (API 24), men alla moderna SoC:er stöder Vulkan 1.3. Vulkan Memory Allocator och SPIR-V som mellankod gör det möjligt att skriva shaders i GLSL, HLSL eller Rust GPU.
Metal — Apples proprietära API för GPU på alla enheter i ekosystemet: iPhone, iPad, Mac, Apple TV. Metal garanterar minimal overhead och förutsägbar exekveringstid för kommandon. Enligt Apple Developer Documentation (2025) bearbetar Metal upp till 100 000 draw-anrop per bildruta utan FPS-fall.
Nyckelegenskap — Metal Shading Language (MSL) baserat på C++. Shaders kompileras till maskinkod tillsammans med applikationen, vilket eliminerar JIT-kompilering som är typisk för Vulkan. Metal stöder Mesh Shaders, Ray Tracing och Dynamic Libraries för inläsning av shaders under körning.
OpenGL ES — en förenklad version av OpenGL för inbäddade system. Används på äldre enheter och för bakåtkompatibilitet. OpenGL ES 3.2 stöds på 94 % av Android-enheter enligt Android Studio (2025). För nya projekt rekommenderar Google Vulkan istället för OpenGL ES.
WebGL — webbläsarmotsvarigheten till OpenGL ES, grunden för 3D-grafik på webben. WebGL 2.0 (motsvarande OpenGL ES 3.0) stöds på 92 % av mobila webbläsare. WebGPU — nästa generation, med arkitektur nära Vulkan och Metal.
Vanliga frågor
En mobil GPU arbetar i ett termiskt paket på 2–8 W, använder Tile-Based Rendering för energibesparing och delar minne med CPU via UMA. En stationär GPU förbrukar 150–450 W, har separat videominne (GDDR) och använder Immediate Mode Rendering.
Apple GPU i M4 Ultra och A18 Pro-chips — ledare i prestanda per watt bland mobila GPU:er. Bland Android-enheter leder Qualcomm Adreno 850 i Snapdragon 8 Gen 4 och ARM Mali-G925 i MediaTek Dimensity 9500.
Ja, GPU används aktivt för inferens av neurala nätverk via Core ML på iOS och TensorFlow Lite / NNAPI på Android. Enligt Google (2025) ger GPU-acceleration en hastighetsökning på 3–10 gånger jämfört med CPU.
Throttling uppstår på grund av att den termiska budgeten överskrids. Vid långvarig belastning når SoC-temperaturen 85–95°C och GPU sänker frekvensen för att skydda chipet. Lösning — optimering av rendering och användning av FPS-gränser (30–45 FPS).
Vulkan — det främsta valet för nya projekt. OpenGL ES — för bakåtkompatibilitet med äldre enheter. Metal — obligatoriskt för iOS. För plattformsoberoende utveckling, använd ramverk som Unity, Unreal Engine eller Filament.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också