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 используют общую оперативную память без отдельной видеопамяти. Это снижает задержки при обмене данными и упрощает программирование, но ограничивает пропускную способность при интенсивных вычислениях.
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 — 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 работают в жёстких ограничениях тепловыделения и энергопотребления. Типичный TDP мобильного GPU — 2–8 Вт, против 150–450 Вт у настольных аналогов. Это требует особой архитектуры с упором на энергоэффективность, а не пиковую производительность.
Основная технология энергосбережения — Tile-Based Rendering. Кадр разбивается на тайлы 16x16 или 32x32 пикселя. Каждый тайл обрабатывается целиком в быстрой 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 (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 вычисляет квадратный корень для каждого элемента массива. Рабочая группа 16x16 обрабатывает 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 Вт, использует Tile-Based Rendering для энергосбережения и разделяет память с CPU через UMA. Настольный GPU потребляет 150–450 Вт, имеет отдельную видеопамять (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. Для кроссплатформенной разработки используйте фреймворки вроде Unity, Unreal Engine или Filament.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также