Графические ускорители ARM: Adreno, GeForce ULP, PowerVR и другие

Автор: Юрий Пятковский, 18 марта 2014, 07:30

Современные смартфоны и планшетные ПК просто-таки нельзя представить без графического ускорителя, который входит в состав однокристальной системы (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. Хочется верить, что уже в этом году появятся игры с по-настоящему красивой и реалистичной картинкой.