GPU — що це, будова та принцип роботи

Автор: IT Sectr Опубліковано: 2026-06-10 Час читання: 9 хв

GPU (Graphics Processing Unit) — це спеціалізований процесор для паралельної обробки графічних даних, що виконує мільйони обчислень над пікселями та вершинами за кадр. На відміну від CPU, оптимізованого для послідовних завдань із низькою затримкою, GPU містить тисячі малопотужних ядер для масових математичних операцій. За даними NVIDIA Developer Blog (2025), сучасні мобільні GPU містять до 1024 ядер і досягають продуктивності 2 TFLOPS у обчислювальних навантаженнях. Розробники інтегрують GPU для рендерингу, пост-обробки та машинного навчання на пристрої.

Головне

  • GPU — спеціалізований процесор із тисячами ядер для паралельної обробки графіки та обчислень.
  • Архітектура GPU базується на SIMD-конвеєрі: одна інструкція виконується над багатьма даними одночасно.
  • GPU в мобільних пристроях вбудований у SoC і розділяє пам'ять із CPU через архітектуру Unified Memory.
  • GPU Computing (GPGPU) використовує графічний процесор для неграфічних завдань: ML, криптографія, обробка сигналів.
  • API доступу до GPU на мобільних платформах: Vulkan, Metal, OpenGL ES та WebGL для браузерів.

Що таке 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

Еволюція GPU пройшла три етапи: фіксований конвеєр (1999–2006), уніфіковані шейдери (2006–2016) та програмовані обчислювальні ядра (2016 — теперішній час). Перший етап визначав жорстку послідовність операцій — трансформація, освітлення, текстурування. Розробник не міг втрутитися в конвеєр.

З появою уніфікованих шейдерів GPU отримав можливість виконувати довільні програми — шейдери, написані на HLSL або GLSL. Це відкрило шлях до GPGPU — використання GPU для неграфічних завдань. Третій етап додав тензорні ядра для машинного навчання та трасування променів у реальному часі.

У мобільних GPU ключовим рубіконом стало впровадження Tile-Based Deferred Rendering (TBDR) — архітектури, за якої кадр розбивається на тайли (16×16 пікселів) і обробляється у швидкій локальній пам'яті. Це знижує енергоспоживання у 3–5 разів порівняно з immediate mode rendering, характерним для настільних GPU.

Архітектура 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
QualcommAdreno 6xx/7xx/8xxПрограмовані шейдерні процесориVulkan, OpenGL ES
ARMСерія Mali-GBifrost / ValhallVulkan, OpenGL ES
AppleApple GPU (A13–A18)Власний дизайнMetal
ImaginationPowerVR IMGFurian / B-SeriesVulkan, OpenGL ES

Ключова особливість мобільних GPU — Unified Memory Architecture (UMA). GPU та CPU використовують спільну оперативну пам'ять без окремої відеопам'яті. Це знижує затримки при обміні даними та спрощує програмування, але обмежує пропускну здатність при інтенсивних обчисленнях.

GPU vs CPU: ключові відмінності

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% — перевантаження веде до троттлінгу та перегріву.

cpp
// 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;
}

Код на CPU виконує множення послідовно для кожного елемента. GPU-версія запускає 256 потоків паралельно, кожен множить свій елемент. При N=1 млн GPU виконає завдання у 100–1000 разів швидше, ніж CPU на одному ядрі.

GPU в мобільних пристроях

Мобільні GPU працюють у жорстких обмеженнях тепловиділення та енергоспоживання. Типовий TDP мобільного GPU — 2–8 Вт, проти 150–450 Вт у настільних аналогів. Це вимагає особливої архітектури з упором на енергоефективність, а не пікову продуктивність.

Основна технологія енергозбереження — 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 ГБ/с на 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: обчислення на GPU

GPGPU (General-Purpose computing on GPU) — використання графічного процесора для неграфічних обчислень. Ідея народилася в середині 2000-х, коли розробники помітили, що шейдери можна адаптувати для матричних операцій, криптографії та симуляції фізики.

Сьогодні GPGPU — стандартний інструмент для завдань, що вимагають масового паралелізму: машинне навчання (тренування та інференс нейромереж), криптографія (хешування, шифрування), обробка зображень та відео (фільтри, кодеки), наукові симуляції (гідродинаміка, квантова хімія).

На мобільних пристроях GPGPU застосовується через Compute Shaders — шейдери без графічного виведення, що працюють лише з даними. Compute Shader запускає Grid із робочих груп, кожна група містить кілька потоків. Доступ до пам'яті — через буфери та текстури без прив'язки до екрана.

glsl
#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 доступу до GPU визначають, як розробник надсилає команди та дані на графічний процесор. На мобільних платформах використовуються три основні API: Vulkan, Metal та OpenGL ES. Кожен має свої переваги та обмеження, що впливають на продуктивність і сумісність.

Vulkan

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

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 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 від настільного?

Мобільний GPU працює в тепловому пакеті 2–8 Вт, використовує Tile-Based Rendering для енергозбереження та розділяє пам'ять із CPU через UMA. Настільний GPU споживає 150–450 Вт, має окрему відеопам'ять (GDDR) та використовує Immediate Mode Rendering.

Який мобільний GPU найпродуктивніший у 2026 році?

Apple GPU у чипі M4 Ultra та A18 Pro — лідер за продуктивністю на ват серед мобільних GPU. Серед Android-пристроїв лідирує Qualcomm Adreno 850 у Snapdragon 8 Gen 4 та ARM Mali-G925 у MediaTek Dimensity 9500.

Чи можна використовувати GPU для машинного навчання на мобільних пристроях?

Так, GPU активно використовується для інференсу нейромереж через Core ML на iOS та TensorFlow Lite / NNAPI на Android. За даними Google (2025), GPU-прискорення дає приріст швидкості в 3–10 разів порівняно з CPU.

Чому GPU гріється та троттлить у мобільних іграх?

Троттлінг відбувається через перевищення теплового бюджету. При тривалому навантаженні температура SoC досягає 85–95°C, і GPU знижує частоту для захисту кристала. Рішення — оптимізація рендерингу та використання FPS-капів (30–45 FPS).

Який API вибрати для GPU-графіки на Android?

Vulkan — основний вибір для нових проєктів. OpenGL ES — для зворотної сумісності зі старими пристроями. Metal — обов'язковий для iOS. Для кроссплатформної розробки використовуйте фреймворки на кшталт Unity, Unreal Engine або Filament.

Підсумки

  • GPU — спеціалізований процесор із тисячами ядер для паралельної обробки даних та прискорення графіки.
  • Архітектура GPU використовує SIMD-конвеєр, Tile-Based Rendering та Unified Memory для мобільних SoC.
  • GPU vs CPU: GPU перевершує CPU у 10–12 разів за FLOPS на завданнях із масовим паралелізмом, але поступається в послідовних алгоритмах.
  • Мобільні GPU від Qualcomm, ARM, Apple та Imagination працюють у жорсткому ліміті 2–8 Вт і схильні до троттлінгу.
  • GPGPU через Compute Shaders застосовується для ML, криптографії, обробки зображень та наукових симуляцій.
  • Vulkan та Metal — основні API для сучасних мобільних застосунків, що забезпечують низькорівневий контроль над GPU.
  • Оптимізація GPU включає управління draw-викликами, FPS-капи та використання Foveated Rendering для зниження тепловиділення.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також