Обзор GPU NVIDIA Tegra 4 | Вид изнутри
С момента премьеры первого SoC Tegra в 2008 году главным преимуществом NVIDIA в мобильном сегменте был опыт проектирования GPU и создания платформ. К тому же, компании помогли близкие отношения с игровыми производителями, поскольку большая часть мобильных игр можно отнести к сегменту мейнстрим. Тем не менее, игроделы постоянно проявляют интерес к мощным архитектурам, позволяющим использовать мощные графические движки на полную катушку, чтобы конкурировать с игровыми консолями текущего поколения.
Мы видели, как компании типа Intel выбирали NVIDIA на базе Cortex-A9 за ориентир в энергопотреблении, и сейчас NVIDIA представляет Tegra 4 как лучшее решение в рамках производительности на квадратный миллиметр и, соответственно, производительности на ватт. По сути, у NVIDIA уже есть на базе SoC Tegra 4i под названием Phoenix. Две платы на фото ниже предназначены для установки в 5-дюймовые устройства и содержат различные версии Tegra 4.

Мы уже знаем, что GPU Tegra 4 не использует унифицированный шейдерный дизайн. Как утверждает NVIDIA, сейчас для перехода — не самое подходящее время. В итоге перед нами снова программируемые разделённые пиксельные и вершинные шейдеры. Представители компании также не заявляли о совместимости с OpenGL ES 3.0, хотя всем понятно, что негативного влияния на возможности разработчиков для Tegra 4 технология не окажет.
Итак, GPU в новом SoC является логическим продолжением с дополнительными усовершенствованиями.
| Tegra 4 | Tegra 4i | Tegra 3 | |
| Вершинные вычислительные модули | 6 | 3 | 1 |
| Пиксельные шейдеры | 4 | 2 | 2 |
| MAD | 72 | 60 | 12 |
| Тактовая частота, МГц | 672 | 660 | 416 /520 |
| Скорость заполнения текстур, Гпикс/с | 2,68 | 1,32 | 1,04 |
| Интерфейс | 2 x 32-bit | 1 x 32-bit | 1 x 32-bit |
| Поддерживаемая память | DDR3L-1866, LPDDR3-1866 | DDR3L-1866, LPDDR3-2133 | DDR3-1600, LPDDR2-1066 |
| Техпроцесс, нм | 28 | 28 | 40 |
использует один модуль вершинных шейдеров с четырьмя ядрами, совместимыми с FP32. Также SoC включает два конвейера с четырьмя ядрами FP20 на каждом. Четыре вершинных и восемь пиксельных шейдеров составляют, так называемый, 12-ядерный дизайн GPU .

У Tegra 4 уже шесть вершинных вычислительных модулей, и в каждом — по четыре «ядра». Если учесть разницу в тактовой частоте (672 МГц у Tegra 4 и 520 МГц у ) то производительность вершинных шейдеров новом поколении повысилась в 7,75 раз.
Каждый из четырёх пиксельных конвейеров содержит по 12 шейдеров (где по три ALU на модуль и четыре блока умножения на каждый ALU), всего их 48. Опять же, если учесть частоту, вы получите прирост производительности в 7,75.
Обзор GPU NVIDIA Tegra 4 | Принцип работы
По существу архитектура вершинной обработки Tegra 4 не отличается от архитектуры GPU NV40, на котором в 2004 году работали видеокарты серии GeForce 6800.
После блока обработки вершин данные подаются в блок триангуляции, который может формировать видимый треугольник за пять тактов.
Дальше треугольники превращаются в пиксели. Tegra 4 выполняет комбинацию растеризации и раннего Z-обнаружения на скорости восемь пикселей за такт, отбрасывая данные, которые не будут видимыми, на ранних этапах обработки, тем самым избавляя ядро от лишней работы. Вряд ли кого-то это удивит, но этот подход позаимствован у настольных графических процессоров.
Чем режим непосредственного рендеринга NVIDIA отличается от метода «отложенной мозаичной отрисовки» (Tile Based Deferred Rendering, TBDR) ядра PowerVR IP от Imagination Technologies и, следовательно, от чипов SoC Apple Ax и Intel Atom? В архитектуре TBDR перед стадией растеризации кадры делятся на мозаику, в результате данные геометрии помещаются в буферную память, где разбираются оставшиеся пиксели. С ростом сложности геометрии сцены процесс удаления скрытых поверхностей происходит не так хорошо.

Блочная диаграмма Tegra 4
Вернёмся к Tegra 4. Значение цвета пикселя и данные Z-буфера сжимаются специальным алгоритмом без потерь. Сжатие особенно актуально при включении сглаживания, потому как уменьшает поток данным и потери пропускной способности памяти (об этом далее). Данные хорошо сжимаются, с высоким коэффициентом. Итак, такой подход означает, что данные сжимаются только тогда, когда это возможно, поэтому в памяти выделяется ровно столько же места, как если бы сжатие не применялось, по этой части экономии нет. Однако получается хороший выигрыш в пропускной способности шины памяти.
После растеризации данные поступают на конвейер фрагментной обработки, который может обрабатывать четыре пикселя за такт. Как мы уже говорили, каждый пиксельный конвейер имеет три ALU с четырьмя модулями умножения, плюс один многофункциональный блок, обеспечивающий работу нескольких комбинированных инструкций VLIW для различных задач (нормализация и комбинирование, смешивание, вычисления для стандартного освещения и т.д.). Tegra 4 имеет 24 регистра FP20 на пиксель по сравнению с 16-ю у , что позволяет обрабатывать больше потоков «на лету».
У каждого из четырёх каналов есть собственный кэш L1 для чтения и записи, а также новая особенность Tegra 4 – общий кэш L2 для текстур. Естественно, фильтрация текстур будет происходить в большей степени локально, снова экономя пропускную способность памяти.
Несмотря на то, что инженеры NVIDIA сделали так много изменений по всему GPU для экономии пропускной способности памяти, требования к самой памяти остались по-прежнему высоки. оснащалась одноканальной памятью с 32-битным интерфейсом. Tegra 4 использует два канала по 32 бит наряду с модулями LPDDR3 1866. Такое решение обеспечивает трёхкратный прирост пропускной способности по сравнению с LPDDR2-1066.
Обзор GPU NVIDIA Tegra 4 | Функции и функциональность
Судя по характеристикам, использует архитектуру OpenGL ES 2.0. Не хватает всего пары компонентов для совместимости с ES 3.0: блоков FP32 и сжатия ETC2 RGB. По словам NVIDIA они не значительны. Блоки FP32 важны только для вычислений общего характера, а с функциями ETC2 в справляется механизм сжатия DXT.

Активация HDR
По части DirectX, GPU поддерживает функциональный уровень Direct3D 9_1. Для более высоких функциональных уровней также понадобятся модули обработки FP32 во фрагментном шейдере, а новый чип NVIDIA ограничен точностью FP20. Также необходима поддержка формата R32F, наряду с некоторыми другими текстурными форматами, которых у нет. Представители компании утверждают, что NVIDIA сейчас на стадии переговоров с Microsoft по поводу применения форматов 9_3, которые поддерживаются на аппаратном уровне и используются для HDR, без дополнительных требований к точности со стороны API. Однако на текущий момент более высокоуровневые функции, такие как технология instancing (дублирование) под Windows RT применяться не могут.
Тем не менее, содержит новые функции, и NVIDIA рассчитывает, что они улучшат качество оптимизированных игр. Возьмём в качестве примера поддержку сглаживания. Раньше предлагала сглаживание CSAA (coverage sampling anti-aliasing), которое вычисляло значения покрытия (coverage) в пределах пикселя. Поскольку значение покрытия сэмпла зависит от состава пикселя, эффективность CSAA не очень высока. решает проблему поддержкой двух- и четырёхкратного MSAA, подкреплённого цветовым и Z-сжатием.
также имеет 24-битный Z- и 8-битный стенсильный буфер, у был только 16-битный Z-буфер. Массив текстур, кубические карты и цветовая граница текстур также входят в список новых функций NVIDIA.

Тени
Включение глубоких текстур и процент фильтрации текстур для карт теней позволяет реализовать тени более высокого качества с фильтрацией по краям. Конечно, с DirectX 11 и GPU класса TFLOP добиться реализма легче, однако такая обработка теней в DirectX 9 всё ещё распространена на некоторых консолях. В она даётся не совсем бесплатно. Но это аппаратная функция, поэтому вам не придётся тратить на фильтрацию другие ресурсы GPU.
NVIDIA повысила максимальное разрешение текстур в до 4K x 4K против 2K x 2K у . Теоретически это значит, что разработчики игр теперь могут использовать наработки с PC и консольных игр, обеспечивая более высокое качество текстур.
NVIDIA говорит, что кроме текстур высокого разрешения в разработке находятся игры с настоящим HDR. включает HDR через поддержку фильтрации и смешивания FP16 , MRT и соответствующих форматов поверхностей. Во времена GeForce 6800 это были самые обсуждаемые функции (помните патч Far Cry 1.3, добавляющий поддержку HDR в игру?). Теперь, через шесть лет, мы можем насладиться этим в мобильном сегменте.
Обзор GPU NVIDIA Tegra 4 | Tegra 4i: весь в отца
готовился для сегмента планшетов и суперфонов. Чип оснащён CPU Cortex-A15 с ядрами 4+1, полным 72-шейдерным GPU и опциональным модемом i500. С другой стороны, Tegra 4i – решение для смартфонов, оснащённое 4+1 ядрами Cortex-A9 r4, 60-шейдерным GPU и встроенным модемом i500.
Хотя CPU в Tegra 4i сильно отличается, его GPU имеет одинаковую с архитектуру. Вместо шести вершинных модулей здесь представлено три, всего 12 MAD. Четыре пиксельных канала сузились до двух. Обратите внимание, что такое же количество MAD находится во фрагментном канале. Решение NVIDIA вполне осознанно и базируется на современном контенте, основной упор в котором сделан на сложный шейдинг, нежели на скорость заполнения. Разработчики эффектов могут достичь высоких результатов, используя шейдерную мощность.

Блочная диаграмма Tegra 4i
Тем не менее, Tegra 4i предназначена для смартфонов, поэтому, прежде всего, должна ставить в приоритет эффективность, для этого NVIDIA решила опереться на одноканальную память с 32-битным интерфейсом. Но почему именно одноканальную, а не двухканальную? Во-первых, двухканальный дизайн тяжело вместить в Tegra 4i размером 12×12 мм. К тому же, два канала негативно повлияют на базовое энергопотребление. Итак, реализация одного канала с памятью DDR3-2133 удваивает пропускную способность , не затрагивая эффективность в простое.
Это также помогает понять, для каких устройств предназначен новый SoC. Планшеты типа Nexus 10 работают с разрешениями 2560×1600 пикселей, а последние суперфоны поддерживают до 1080p на 5-дюймовых дисплеях. С двумя пикселями за такт, Tegra 4i с частотой 660 МГц обрабатывает более 1,3 Гпикс/с. Телефону с дисплеем 1080p с двумя миллионами пикселей, частотой обновления 60 Гц нужно менее 125 миллионов пикселей в секунду. Tegra 4i может заполнить каждый пиксель сразу на десяти таких телефонах. Следовательно, NVIDIA считает, что эффективное балансирование ресурсов – это ключ к успеху в целевой платформе для Tegra 4i.
Обзор GPU NVIDIA Tegra 4 | Максимизация производительности на квадратный миллиметр
Очевидно, что NVIDIA пришлось постараться, чтобы разместить GPU на кристалле площадью всего 10,5 мм². Это меньше, чем Qualcomm Adreno 320, ARM Mali-T604 или Imagination Technologies PowerVR SGX554MP4. Откладывание реализации унифицированной шейдерной архитектуры и функций, необходимых для совместимости с OpenGL ES 3.0/Direct3D 9_3, и идентичность функций Tegra 4i указывают на то, что компания придерживается намеченных целей.
Но, в конечном счёте, сегодня мы не можем получить на мобильной платформе качество и функционал, характерный для PC. Лидерство NVIDIA в этом сегменте говорит о том, что разрабатывалась с упором на энергоэффективность рендеринга, и официальные результаты тестов это подтверждают. Вместо фокуса на частоте кадров и дорогих функциях сравниваются показатели площади GPU и его энергопотребления.
| Tegra 3 | Tegra 4 | Tegra 4/Tegra 3 | |
| GLBenchmark 2.5, Frame Rate 720p, On-Screen | 57 FPS | 60 FPS | |
| Потребляемая мощность (мВт) | 2294 | 1521 | |
| Производительность на ватт | 24,9 | 39,4 | 1,6x |
| GLBenchmark 2.5 Frame Rate 1080p, Off-Screen | 12 FPS | 54 FPS | |
| Потребляемая мощность (мВт) | 1629 | 3674 | |
| Производительность на ватт | 7,4 | 14,7 | 2x |
Источник: NVIDIA
Вот один пример: в экранном тесте GLBenchmark 2.5 720p показал 57 FPS с энергопотреблением в 2,3 Вт. ограничивается частотой дисплея в 60 Гц. Но, поскольку при этом нет высокой нагрузки, чип потребляет всего 1,5 Вт. В результате обходит по производительности на ватт (в FPS) в 1,6 раз. С другой стороны, если будет выполнять рендеринг на внешний дисплей с разрешением 1920×1080 пикселей, он сможет обогнать в 4,5 раза, используя в 2,25 больше электроэнергии. Это почти двукратный прирост производительности на ватт.
Понятно, что это собственные показатели NVIDIA и они охватывают только одну из подсистем SoC. Тем не менее, из обзора мы знаем, что другие производители постоянно соперничают с NVIDIA за лучшие показатели энергопотребления. способна обеспечить более длительную автономную работу новому поколению игр на Android, и Qualcomm с Samsung обязательно это заметят. Но мы ещё посмотрим, получится ли у NVIDIA убедить Microsoft задействовать более продвинутые функции под Windows RT.