GPU (Graphics Processing Unit) — е специализиран процесор за паралелна обработка на графични данни, изпълняващ милиони изчисления върху пиксели и върхове на кадър. За разлика от CPU, който е оптимизиран за последователни задачи с ниска латентност, GPU съдържа хиляди нискомощни ядра за масови математически операции. Според NVIDIA Developer Blog (2025), съвременните мобилни GPU съдържат до 1024 ядра и достигат производителност от 2 TFLOPS при изчислителни натоварвания. Разработчиците интегрират GPU за рендериране, пост-обработка и машинно обучение на устройството.
Основни точки
GPU (Graphics Processing Unit) — е специализиран микрочип, проектиран за масов паралелизъм. Първите GPU се появиха в края на 1990-те като ускорители на 3D графика за настолни компютри. Оттогава архитектурата еволюира от фиксиран конвейер до програмируеми шейдъри и универсални изчислителни блокове.
Основното предназначение на GPU — растеризация: преобразуване на геометрични данни (върхове, триъгълници) в пиксели на екрана. Процесът включва трансформация на върхове, отсичане на невидими повърхности, текстуриране и смесване на цветове. Всички тези операции се изпълняват паралелно за хиляди елементи едновременно.
Според Jon Peddie Research (2025), пазарът на мобилни GPU съставлява 58% от общия обем на графичните процесори, изпреварвайки дискретните решения за компютри и сървъри. Всеки смартфон съдържа поне един GPU, интегриран в System-on-Chip (SoC) заедно с CPU, DSP и невропроцесор.
Съвременните GPU се делят на два типа: интегрирани (вградени в SoC, споделят памет с CPU) и дискретни (отделна карта със собствена видео памет). В мобилното разработване се използват изключително интегрирани GPU — Qualcomm Adreno, ARM Mali, Apple GPU и Imagination PowerVR.
Еволюцията на GPU премина през три етапа: фиксиран конвейер (1999–2006), унифицирани шейдъри (2006–2016) и програмируеми изчислителни ядра (2016 — до днес). Първият етап определяше твърда последователност от операции — трансформация, осветление, текстуриране. Разработчикът не можеше да се намесва в конвейера.
С появата на унифицирани шейдъри, GPU получи възможност да изпълнява произволни програми — шейдъри, написани на HLSL или GLSL. Това отвори пътя към GPGPU — използване на GPU за неграфични задачи. Третият етап добави тензорни ядра за машинно обучение и проследяване на лъчи в реално време.
В мобилните GPU ключов момент беше въвеждането на Tile-Based Deferred Rendering (TBDR) — архитектура, при която кадърът се разделя на тайлове (16x16 пиксела) и се обработва в бърза локална памет. Това намалява консумацията на енергия 3–5 пъти в сравнение с immediate mode rendering, характерен за настолните GPU.
Архитектурата на GPU се различава коренно от CPU. Вместо няколко мощни ядра с голям кеш, GPU съдържа стотици или хиляди прости изчислителни блокове, оптимизирани за SIMD (Single Instruction, Multiple Data) — една инструкция се изпълнява върху множество елементи от данни.
Основният блок на GPU — Shader Core (в терминологията на NVIDIA) или Execution Unit (Intel). Няколко такива блока се обединяват в Compute Unit (AMD) или Streaming Multiprocessor (NVIDIA). Всеки блок включва ALU за аритметика, регистров файл и планировчик на уорпове (групи нишки).
Мобилните GPU се различават архитектурно от настолните. Qualcomm Adreno използва архитектура с програмируеми шейдърни процесори и отделен блок за растеризация. ARM Mali се основава на Bifrost или Valhall — архитектури с квартетна обработка на уорпове. Apple GPU от 2017 г. има собствен дизайн с поддръжка на Metal и унифицирана памет.
| Производител | Линия GPU | Архитектура | API |
|---|---|---|---|
| Qualcomm | Adreno 6xx/7xx/8xx | Програмируеми шейдърни процесори | Vulkan, OpenGL ES |
| ARM | Серия Mali-G | Bifrost / Valhall | Vulkan, OpenGL ES |
| Apple | Apple GPU (A13–A18) | Собствен дизайн | Metal |
| Imagination | PowerVR IMG | Furian / B-Series | Vulkan, OpenGL ES |
Ключова характеристика на мобилните GPU — Unified Memory Architecture (UMA). GPU и CPU използват обща RAM памет без отделна видео памет. Това намалява латентността при обмен на данни и опростява програмирането, но ограничава пропускателната способност при интензивни изчисления.
CPU е проектиран за последователни задачи с минимална латентност. Съдържа 4–12 мощни ядра с голям кеш L1/L2/L3, предсказател на разклонения и спекулативно изпълнение. GPU, обратно, жертва латентността в полза на пропускателната способност — хиляди ядра обработват данни с висока латентност, но огромна обща производителност.
Разликата се проявява в FLOPS (операции с плаваща запетая в секунда). Най-добрият мобилен SoC за 2025: CPU — 200 GFLOPS, GPU — 2400 GFLOPS. GPU надминава CPU 12 пъти при задачи, допускащи паралелизъм. Въпреки това за последователни алгоритми CPU остава по-бърз поради по-малките разходи за управление на нишки.
На практика разработчикът използва CPU за логика на приложението, UI и IO, а GPU за рендериране, обработка на изображения, симулация на физика и инференция на невронни мрежи. Според Google Android Performance Patterns (2025), оптималното натоварване на GPU в мобилни приложения е 60–80% — претоварването води до тротлинг и прегряване.
// CPU — последователна обработка
for (int i = 0; i < N; i++) {
result[i] = data[i] * 2.0f;
}
// GPU — паралелна обработка (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;
}
Кодът на CPU изпълнява умножението последователно за всеки елемент. GPU версията стартира 256 нишки паралелно, всяка умножава своя елемент. При N=1 милион, GPU ще изпълни задачата 100–1000 пъти по-бързо от CPU на едно ядро.
Мобилните GPU работят в строги ограничения на отделяне на топлина и консумация на енергия. Типичният TDP на мобилен GPU е 2–8 W, срещу 150–450 W при настолните аналози. Това изисква специална архитектура с акцент върху енергийната ефективност, а не пиковата производителност.
Основната технология за пестене на енергия — Tile-Based Rendering. Кадърът се разделя на тайлове 16×16 или 32×32 пиксела. Всеки тайл се обработва изцяло в бърза SRAM памет (Tile Memory), след което се записва във външна DRAM. Това намалява достъпите до памет 4–10 пъти в сравнение с immediate mode.
Qualcomm Adreno — най-разпространеният мобилен GPU. Adreno 750 (Snapdragon 8 Gen 3) съдържа 12 шейдърни процесора с общ пул от регистри. Поддържа Vulkan 1.3, OpenGL ES 3.2, OpenCL 3.0 и проследяване на лъчи на ниво ядро. Според Qualcomm (2025), Adreno осигурява 45% увеличение на производителността на поколение при запазване на консумацията на енергия.
ARM Mali — вторият по популярност GPU в Android устройства. Mali-G720 се основава на архитектура Valhall от 5-то поколение с поддръжка на Variable Rate Shading и ASTC HDR. Особеност на Mali е квартетната обработка: четири нишки се обединяват в един уорп за по-добро използване на ALU.
Apple GPU се проектира изключително за Metal API. От A13 Bionic насам, Apple използва собствен дизайн на GPU с поддръжка на Metal 3, проследяване на лъчи и mesh-шейдъри. Архитектурата на Apple GPU се отличава с Unified Memory с пропускателна способност до 800 GB/s на M4 Ultra.
Тротлинг на GPU — намаляване на честотата при прегряване — основният проблем на мобилните игри. При продължително натоварване температурата на SoC достига 85–95°C, и GPU намалява честотата с 30–50%. Според AnandTech (2025), Qualcomm Adreno 750 губи до 35% от производителността си след 15 минути в Genshin Impact.
Разработчикът може да смекчи тротлинга чрез оптимизиране на draw-повиквания, намаляване на резолюцията на рендериране и използване на Foveated Rendering. Metal Performance Shaders на iOS и Android Frame Pacing API на Android помагат за синхронизиране на натоварването с термичния бюджет на устройството.
GPGPU (General-Purpose computing on GPU) — използване на графичния процесор за неграфични изчисления. Идеята се ражда в средата на 2000-те, когато разработчиците забелязват, че шейдърите могат да бъдат адаптирани за матрични операции, криптография и симулация на физика.
Днес GPGPU е стандартен инструмент за задачи, изискващи масов паралелизъм: машинно обучение (обучение и инференция на невронни мрежи), криптография (хеширане, криптиране), обработка на изображения и видео (филтри, кодеци), научни симулации (хидродинамика, квантова химия).
На мобилни устройства GPGPU се прилага чрез Compute Shaders — шейдъри без графичен изход, работещи само с данни. Compute Shader стартира Grid от работни групи, всяка група съдържа няколко нишки. Достъп до памет — чрез буфери и текстури без връзка с екрана.
#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;
}
Примерният compute shader изчислява квадратен корен за всеки елемент от масива. Работна група 16×16 обработва 256 елемента едновременно. Съвременните мобилни GPU поддържат до 1024 работни групи и милиони глобални нишки.
API за достъп до GPU определят как разработчикът изпраща команди и данни към графичния процесор. На мобилни платформи се използват три основни API: Vulkan, Metal и OpenGL ES. Всяко има своите предимства и ограничения, които влияят на производителността и съвместимостта.
Vulkan — нискониво междуплатформено API от Khronos Group, наследник на OpenGL. Vulkan дава на разработчика пряк контрол над паметта на GPU, опашките от команди и синхронизацията. Според Khronos (2025), Vulkan осигурява 30–60% увеличение на производителността в сравнение с OpenGL ES благодарение на намаляване на разходите за драйвера.
На Android Vulkan е задължителен от Android 7.0 (API 24), но всички съвременни SoC поддържат Vulkan 1.3. Vulkan Memory Allocator и SPIR-V като междинен код позволяват писане на шейдъри на GLSL, HLSL или Rust GPU.
Metal — патентовано API на Apple за GPU на всички устройства от екосистемата: iPhone, iPad, Mac, Apple TV. Metal осигурява минимални разходи и предвидимо време за изпълнение на команди. Според Apple Developer Documentation (2025), Metal обработва до 100 000 draw-повиквания на кадър без спад на FPS.
Ключова характеристика — Metal Shading Language (MSL), базиран на C++. Шейдърите се компилират до машинен код заедно с приложението, което елиминира JIT компилацията, типична за Vulkan. Metal поддържа Mesh Shaders, Ray Tracing и Dynamic Libraries за зареждане на шейдъри по време на изпълнение.
OpenGL ES — опростена версия на OpenGL за вградени системи. Използва се на по-стари устройства и за осигуряване на обратна съвместимост. OpenGL ES 3.2 се поддържа на 94% от Android устройства според Android Studio (2025). За нови проекти Google препоръчва Vulkan вместо OpenGL ES.
WebGL — браузърният аналог на OpenGL ES, основата на 3D графиката в уеб. WebGL 2.0 (съответства на OpenGL ES 3.0) се поддържа на 92% от мобилните браузъри. WebGPU — следващото поколение, с архитектура, близка до Vulkan и Metal.
Често задавани въпроси
Мобилният GPU работи в термичен пакет от 2–8 W, използва Tile-Based Rendering за пестене на енергия и споделя памет с CPU чрез UMA. Настолният GPU консумира 150–450 W, има отделна видео памет (GDDR) и използва Immediate Mode Rendering.
Apple GPU в чиповете M4 Ultra и A18 Pro — лидер по производителност на ват сред мобилните GPU. Сред Android устройствата водещи са Qualcomm Adreno 850 в Snapdragon 8 Gen 4 и ARM Mali-G925 в MediaTek Dimensity 9500.
Да, GPU се използва активно за инференция на невронни мрежи чрез Core ML на iOS и TensorFlow Lite / NNAPI на Android. Според Google (2025), GPU ускорението дава 3–10 пъти увеличение на скоростта в сравнение с CPU.
Тротлинг възниква поради превишаване на термичния бюджет. При продължително натоварване температурата на SoC достига 85–95°C и GPU намалява честотата, за да защити чипа. Решение — оптимизация на рендерирането и използване на FPS лимити (30–45 FPS).
Vulkan — основният избор за нови проекти. OpenGL ES — за обратна съвместимост с по-стари устройства. Metal — задължителен за iOS. За междуплатформено разработване използвайте frameworks като Unity, Unreal Engine или Filament.
Резюме
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също