Графические ускорители ARM: Adreno, GeForce ULP, PowerVR и другие
Современные смартфоны и планшетные ПК просто-таки нельзя представить без графического ускорителя, который входит в состав однокристальной системы (system-on-a-chip). Сейчас графическое ядро требуется не только для запуска трехмерных игр, но и для прорисовки интерфейса операционной системы и воспроизведения видео сверхвысокого разрешения (4K).
Первопроходец Intel
В начале 2000-х мобильные телефоны и КПК обрабатывали графику в играх исключительно с помощью центрального процессора. При этом картинка в играх была предельно примитивной. Лед тронулся в 2006 году, когда компания Intel представила мобильное графическое ядро 2700G с производительностью на уровне игровой консоли Sony PlayStation One. Правда, операционные системы Windows Mobile и Symbian не смогли наполную раскрыть его потенциал.
Dell X50v – КПК с графическим ускорителем Intel 2700G
Мобильные графические ускорители стали эффективно использоваться лишь с выходом Apple iPhone и Android-смартфонов. Так, первое поколение iPhone строилось на базе процессора Samsung ARM 1176JZ(F)-S с графикой Mbx lite (от компании Imagination Technologies). Первым же графическим ядром для Android стало Adreno 130, о котором речь пойдет чуть ниже.
Qualcomm Adreno
В 2005 году компания Qualcomm, до этого занимавшаяся исключительно оборудованием для сотовых сетей, получила у ARM Limited лицензию на производство и, что важнее всего, модификацию процессоров архитектуры ARM. Несколько лет у нее ушло на разработку собственной архитектуры под названием Scorpion (набор инструкций ARMv7) и внедрение энергоэффективного графического ускорителя ATI Imageon.
В 2008 году в продажу поступил WindowsMobile-коммуникатор HTC Touch Diamond с процессором Qualcomm MSM7201A и графикой Adreno 130 (переименованная ATI Imageon). А вскоре мир увидел первый Android-смартфон – HTC Dream (операторское название T-Mobile G1) с точно такой же однокристальной системой. Окрыленная успехом на рынке Android, компания Qualcomm выкупила подразделение мобильной графики AMD.
Современная графика Qualcomm представлена как бюджетными моделями (Adreno 203, 205 и 305), так и настоящими 3D-монстрами (Adreno 320, 330 и 420). В отличие от родоначальницы Adreno 130, в которой применялась устаревшая конвейерная архитектура с фиксированными функциями блоков, современная графика Qualcomm строится на унифицированной шейдерной архитектуре. Исключением стала лишь Adreno 205 с VLIW-архитектурой.
NVIDIA GeForce ULP
Компания NVIDIA, многолетний лидер индустрии компьютерной графики, не могла долго оставаться в стороне быстрорастущего рынка мобильных гаджетов. И если первое поколение чипов NVIDIA Tegra нигде кроме медиаплеера Microsoft Zune HD не применялось, то второе поколение произвело настоящий фурор. Так, LG Optimus 2X на базе Tegra 2 стал первым в мире двухъядерным Android-смартфоном. Да и львиная доля модельного ряда Android-планшетов 2011 года строились именно на втором поколении Tegra. Мобильное графическое ядро Tegra 2 получило 8 ядер и громогласное имя GeForce ULP.
В третьем поколении однокристальных систем NVIDIA число ядер графики увеличилось до 12, а в четвертом – до 72 штук. Настоящим же откровением стал анонс чипа Tegra K1 с графикой аж на 192 ядра и, что важнее всего, взрослой архитектурой Kepler. Наконец-то появилась возможность сравнивать смартфонно-планшетную графику NVIDIA с ее же видеокартами для ПК. Если не делать поправку на невысокую частоту графического ядра и видеопамяти Tegra K1, то можно предположить, что она всего лишь вдвое медленнее ноутбучной NVIDIA GeForce 740M (384 ядра Kepler).
Imagination PowerVR
Несмотря на сильные рыночные позиции Qualcomm и авторитет NVIDIA, именно мобильная графика PowerVR от компании Imagination Technologies является самой распространенной в мире. По некоторым данным, ее доля достигает 50 процентов рынка. Впрочем, оно и не странно, ведь графику PowerVR применяют в своих однокристальных системах сразу несколько крупных производителей.
Так, графические ускорители PowerVR SGX 531 и SGX 544MP в своих ARM-процессорах использует компания MediaTek. Модель PowerVR SGX 545 вполне себе неплохо подружилась с процессорными ядрами х86 в чипах Intel Atom. Нельзя забывать и про портативную игровую консоль Sony PlayStation Vita с графикой PowerVR SGX 543MP4+.
Приоритетным же заказчиком для Imagination остается компания Apple. Именно ей Imagination предоставляет право первыми использовать свои новейшие разработки. Так было в 2011 году с PowerVR SGX 543MP2 с двумя кластерами ядер (для iPad 2 и iPhone 4S), точно также произошло в прошлом году с PowerVR G6430 с уже четырьмя кластерами (для iPad Air, iPad mini 2gen и iPhone 5S).
А ведь в арсенале Imagination имеется еще более мощная графика – PowerVR GX6650 с 192 ядрами, как у NVIDIA Tegra K1. Так почему же качество картинки в мобильных играх так медленно двигается вперед? Об этом мы тоже расскажем ниже.
ARM Mali
Британская компания ARM Limited, которая в 1980-х и придумала одноименную процессорную архитектуру, проектирует не только процессорные, но и графические ядра. А ее партнеры сами решают, лицензировать только первое, или еще и второе. Пробой пера для ARM Limited стала графика Mali 55, которая применялась в мобильном телефоне LG Renoir не столько для игр, сколько для плавности анимации меню.
Первым же полноценным ускорителем 3D-графики ARM Limited был Mali-200, которого со временем заменил мультикластерный Mali-400MP. Новым витком эволюции стала графика Mali-T604 (почти вдвое быстрее Mali-400MP), первым устройством на базе которой стал планшет Google Nexus 10.
Противостоять же графическим флагманам 2014 года – Adreno 420, Tegra K1 и PowerVR G6650 – будет ARM Mali-T760, способный построить до 1,4 млрд. треугольников в секунду. Кроме того, Mali-T760 поддерживает актуальные графические технологии OpenGL ES 3.0 и DirectX 11, а также параллельные вычисления OpenCL.
Сравнить несравнимое
Противопоставлять друг другу два мобильных графических ускорителя – дело неблагодарное. Меньше всего стоит доверять показателям бенчмарков, так как они выдают суммарную оценку процессора и интегрированной графики. Некоторые однокристальные системы содержат мощные процессорные ядра и при этом слабый графический ускоритель, тогда как в других наоборот перевешивает графика.
Лучший же способ сравнить два мобильных графических ядра – детально рассмотреть их архитектуру. В качестве примера возьмем три широко известные модели: Qualcomm Adreno 220 (из чипа Snapdragon S3), NVIDIA GeForce ULP (из Tegra 2) и Imagination PowerVR SGX 543MP2 (из Apple A5). Так, графика Adreno 220 содержит 8 унифицированных шейдеров, работающих по-умолчанию на частоте 266 МГц, а ее производительность оценивается в 17 GLOPS.
Конкурирующая же NVIDIA GeForce ULP версии Tegra 2 также имеет 8 шейдеров, но в отличие от Adreno они не унифицированные. Четыре шейдера являются пиксельными и еще четыре вертексными. Стандартная частота ядра GeForce ULP равняется 300 МГц. Пиковая производительность Tegra 2 составляет 5,6 GLOPS. Существенное отставание в производительности от Adreno 220 при в целом-то схожем количестве шейдеров вызвано меньшем количеством инструкций, обрабатываемых за такт.
Название модели |
Qualcomm Adreno 220 |
NVIDIA GeForce ULP (версия из Tegra 2) |
Imagination PowerVR SGX 543MP2 |
Архитектура |
Унифицированная шейдерная |
С фиксированными функциями блоков |
С фиксированными функциями блоков |
Количество кластеров |
1 |
1 |
2 |
Количество шейдеров |
8 |
4+4 |
8+4 |
Частота ядра |
266 МГц |
300 МГц |
200 МГц |
Производительность |
17 GLOPS |
5,6 GLOPS |
14,4 GFLOPS |
Отдельно стоит поговорить про графику Imagination PowerVR SGX 543MP2, которую часто ошибочно называют «двухъядерной». На самом же деле, приставка MP2 в названии подразумевает наличие двух кластеров ядер. Каждый кластер у SGX 543MP2 содержит 4 пиксельных шейдера и 2 вертексных. То есть суммарное количество шейдеров у SGX 543MP2 равно 12 (8+4), начальная рабочая частота – 200 МГц, а быстродействие – 14,4 GFLOPS.
Унифицированная шейдерная архитектура является куда более современной, чем фиксированная. К примеру, современные видеокарты для ПК содержат большое количество унифицированных шейдеров (больше тысячи) и значительно меньше фиксированных (меньше сотни). Быстродействие же в играх зависит в первую очередь от того, на какую архитектуру ориентировался разработчик, то есть от оптимизации.
А еще от смартфона к смартфону может отличаться частота оперативной памяти, часть которой, как известно, одалживает интегрированная графика. Именно ОЗУ с низкой пропускной способность может стать узким горлышком графической подсистемы, что выльется в низкие оценки бенчмарка.
Похорошела ли графика в играх?
Если сравнивать мобильные игры пятилетний давности и современные, то разница в качестве картинки будет, как говорится, на лицо. Но если учитывать многократный прирост производительности ARM-процессоров и интегрированных в них графических ускорителей, то картинка явно похорошела недостаточно сильно.
Несколько лет назад дать толчок развитию графики в мобильных играх, якобы, пыталась компания NVIDIA. Так, зомби-шутер Dead Trigger на смартфонах и планшетах с чипом Tegra 3 работал с расширенными опциями графики: лучами света, тенями, металлическим блеском и дымкой. Правда, очень скоро выяснилось, что для всего этого мощная графика GeForce ULP вовсе не требуется, а достаточно с помощью root-прав отредактировать конфигурационный файл игры.
Среда разработки Unity
Впрочем, винить во всех бедах производителей ARM-чипов и, тем более, компании Google и Apple не стоит. Прогресс качества картинки тормозят в первую очередь разработчики игр. Продавая свои творения по доллару-два, они не готовы инвестировать сотни тысяч в разработку собственного графического движка. Луч надежды загорелся лишь с появлением кроссплатформенного движка Unity. Хочется верить, что уже в этом году появятся игры с по-настоящему красивой и реалистичной картинкой.