Обзор NVIDIA Tegra K1

Первый мобильный SoC компании с графическим ядром Kepler    

Содержание

Введение

Имя компании NVIDIA всегда ассоциируется с трехмерной графикой и совершенно неудивительно, что все их решения рассматриваются пользователями и обзорщиками именно с этой точки зрения в первую очередь, в том числе и мобильные. Трехмерная графика в последние несколько лет развивается чуть ли не активнее всех остальных направлений в IT. Вспомните, к примеру, что было доступно в середине 90-х годов прошлого века, когда только начинался путь аппаратного 3D-рендеринга в реальном времени — RealityEngine от компании Silicon Graphics, с довольно жалкими способностями по современным меркам. Нынешние умные часы умеют куда большее, чем тогдашний дорогущий ящик.

И это было профессиональное устройство, а в течение нескольких последующих лет 3D-графика усиленно развивалась и на потребительском рынке — все помнят и компанию 3dfx и ее конкурентов, большая часть из которых сейчас уже отошла от дел. Но не NVIDIA — калифорнийская компания на протяжении всего этого времени остается на позиции лидера, именно они выпустили первый потребительский GPU (хотя номинально то не они, но та история с чипом от S3 была довольно мутной) менее чем через десять лет.

А что же сейчас? Прошло еще несколько лет и мы носим в карманах вычислительные устройства, мощь которых в разы выше тех настольных профессиональных решений прошлых лет. Мобильная 3D-графика активно развивается по пути настольной и лишь немного отстает от нее по возможностям. Современные мобильные GPU способны отрисовать сложнейшие сцены, с которыми несколько лет назад не смогли бы справиться даже большие игровые консоли.

 

Дэн Виволи из NVIDIA приводит наглядный пример стремительного развития 3D-графики на примере автомобилей марки Lexus разных лет. Если бы автоиндустрия в эти годы развивалась столь же стремительно, что и 3D-графика, то современный автомобиль развивал бы скорость в 1000 раз выше, потреблял топлива в 400 раз меньше и стоил бы при этом в 500 раз дешевле. Цифры можете прикинуть сами, но это еще не все — по размеру автомобиль стал бы меньше Кубика Рубика!

Сопоставление шуточное, конечно же, и казалось бы — зачем сравнивать современные технологии 3D-графики с решениями многолетней давности? Дело в том, что уже даже первому мобильному чипу Tegra скоро будет уже шесть лет! Как быстро идет время, а у NVIDIA в мобильных чипах до сих пор было устаревшее видеоядро, что явно не работало положительно на их имидж лидеров графических технологий и не помогало в продвижении решений Tegra на рынок.

Вот уже на протяжении нескольких лет мы интересовались у представителей компании NVIDIA, когда же возможности современных настольных графических архитектур компании попадут и в их мобильные чипы, не говоря уже об их унификации. Понятно, что дело это непростое и работу в этом направлении компания вела давно, но во всех предыдущих моделях NVIDIA Tegra использовались видеоядра, основа которых была заложена много лет назад — даже в четвертом поколении чипа GPU функционально не сильно отличался от самого первого мобильного решения компании.

Во всем остальном, к системам-на-чипах NVIDIA Tegra почти не было претензий, они всегда имели весьма производительные CPU-ядра, отличились интересными решениями по достижению более высокой энергоэффективности, но вот GPU хоть и были весьма производительными, но функционально оставались на уровне многолетней давности, что неплохо сработало для Tegra 3, ставшего довольно популярным в смартфонах и особенно планшетах, но уже явно не годилось для Tegra 4. Тем более, что было давно понятно, что унифицированное CUDA-совместимое видеоядро настольной архитектуры Kepler — дело ближайшего будущего для Tegra.

И вот, в своем пятом мобильном чипе, ранее известном под кодовым именем Logan, компания наконец-то воплотила наши давние надежды. Впервые некоторые данные о новом поколении NVIDIA раскрыла еще в рамках широко известной конференции компьютерной графики SIGGRAPH 2013, в которой компания всегда принимает участие. Эта выставка является отличным местом для показа графических и вычислительных возможностей мобильной системы-на-чипе, GPU-часть которого является наиболее важной составной частью.

А вот для анонса и раскрытия всех подробностей о Tegra K1 компания NVIDIA выбрала шоу, направленное на пользовательскую электронику — International CES 2014, проходящее в эти дни в Лас-Вегасе. Реальные же продукты на базе Tegra пятого поколения должны появиться на рынке уже в первом полугодии наступившего 2014 года. Давайте посмотрим, что сделала и изменила NVIDIA в своем мобильном чипе, на который они возлагают большие надежды.

Пятое поколение NVIDIA Tegra

Уже давно было известно, что основные нововведения в Tegra K1 будут касаться именно его графического ядра, а остальное хоть и подвергнется модификации, но очень легкой, без каких-либо откровений. А GPU архитектуры Kepler стал как раз тем главным изменением, ради которого и имело смысл выпускать Tegra K1. Ведь новый GPU приносит не только значительно улучшенную графическую функциональность, но и универсальные вычислительные возможности и повышенную энергоэффективность — еще одну характеристику, по которой к Tegra были некоторые претензии.

 

Неудивительно, что именно возможности GPU и интересуют нас в первую очередь. Пока что расскажем о примененном в Tegra K1 видеоядре то, что в его состав входят 192 вычислительных CUDA-ядра известной нам архитектуры Kepler, и то, что графическое ядро поддерживает не только OpenGL ES 3.0, но и OpenGL 4.4, DirectX 11 и CUDA 6.

Что касается еще одной важной части в виде универсальных CPU-ядер, то там произошли куда менее радикальные изменения. Конечно, когда-то 64-битные CPU-ядра сделает и NVIDIA, но архитектуры ARMv8 в Tegra пока что нет (см. дополнение в конце статьи), это все те же четыре Cortex-A15 с двумя мегабайтами кэш-памяти второго уровня и пятым вспомогательным ядром-«компаньоном» (также Cortex-A15), предназначенным для работы в экономичном режиме с невысокой вычислительной нагрузкой.

Важное изменение CPU-части нового чипа заключается в том, что это не совсем те Cortex-A15, что применялись в Tegra 4. Во-первых, основываясь на опыте проектирования Tegra 4, инженеры NVIDIA смогли улучшить характеристики Tegra K1, а во-вторых — все 4+1 универсальных ядра A15 имеют ревизию R3, тогда как в Tegra 4 применялись менее совершенные R2. Преимущества модифицированных R3-ядер заключаются в архитектурных изменениях, направленных на снижение требуемого рабочего напряжения и энергопотребления, что выливается в лучшую энергоэффективность, соответственно, о чем мы еще обязательно поговорим далее.

Продолжая рассматривать характеристики Tegra K1, отметим, что модуль работы с камерами имеет мощный сдвоенный процессор обработки изображений (ISP), имеющий пропускную способность до 1,2 гигапикселя и поддерживающий сенсоры с разрешением до 100 мегапикселей. Модуль работы с устройствами вывода изображения поддерживает разрешение до UltraHD, также известное как 4K (что было и в Tegra 4, впрочем) и для встроенного дисплея и внешних, подключаемых по HDMI 1.4a, а вместе с этим чип поддерживает и декодирование данных в формате H.265 в этом разрешении. Из портов ввода-вывода отметим поддержку пары разъемов USB 3.0.

Новый чип NVIDIA производится по 28-нанометровому «HPM» техпроцессу на заводах тайваньской компании TSMC, в отличие от технологического процесса 28 нм «HPL» этой же компании, который применяется для Tegra 4. Мы уже писали, что у компании TSMC есть несколько видов техпроцесса 28 нм, и «HPM» для мобильных чипов подходит несколько лучше, так как помогает добиться более высокой тактовой частоты, а «HPL» оптимизирован для низких утечек. Вероятно, в том числе поэтому максимальная частота вычислительных ядер Tegra 4 была ограничена пределом 1,9—2,0 ГГц, а в случае Tegra K1 CPU-ядра будут работать на более высокой тактовой частоте до 2,3 ГГц.

Графическая архитектура Kepler

Наконец-то пришло то время, когда лучшая из существующих графических архитектур компании NVIDIA пришла и на мобильные чипы Tegra. Хотелось бы, чтобы это случилось еще во время выхода Tegra 4, конечно, но тогда что-то не получилось и мобильный чип с Kepler внутри еще не был готов к производству.

 

Зато теперь все отлично, если устаревшему видеоядру в Tegra 4 компанию составлял настольный Fermi с лучшей функциональностью, то начиная с Kepler, у NVIDIA произошел качественный скачок по функциональности мобильных GPU, который планируется поддерживать и в будущем, если верить представленной выше диаграмме. NVIDIA утверждает, что архитектура Maxwell уже разрабатывалась с учетом будущего применения в мобильных чипах, и две разные линейки тогда окончательно сольются в одну.

Интересно, что во время проектирования первого поколения Kepler, эту архитектуру еще не планировалось применять в мобильных чипах семейства Tegra, но при создании второй версии архитектуры (видеочипы GK2xx), в NVIDIA решили сделать это. Итак, что нам предлагает Tegra K1 по возможностям видеоядра архитектуры Kepler? Мобильный GPU имеет кодовое имя GK20A и состоит из 192 CUDA-ядер, имеет унифицированную кэш-память второго уровня, выделенные блоки для обработки геометрии и тесселяции, а также блоки ROP.

Если вы не помните архитектуру Kepler, то все GPU этого семейства состоят из одного или нескольких кластеров обработки графики GPC, которые имеют собственные движки растеризации и могут содержать по одному или несколько мультипроцессоров SMX. А эти мультипроцессоры, в свою очередь, содержат по 192 вычислительных ядра, движки обработки геометрии и тесселяции и текстурные модули TMU.

 

Понятно, что мобильный GPU в составе Tegra K1 пока что просто не может содержать слишком много исполнительных блоков, поэтому инженеры решили обойтись одним кластером GPC, содержащим один же мультипроцессор SMX. В состав которого входит 192 вычислительных ядра, один блок растеризации и тесселяции, четыре блока ROP, восемь блоков TMU, общая кэш-память и другие функциональные устройства.

Много ли это и с чем сравнимо из известных настольных и ноутбучных решений? Можно сказать, что GK20A в составе Tegra K1 по вычислительной мощности равен половине настольной видеокарты GeForce GT 640 на базе GK107, у которой есть ровно вдвое больше потоковых CUDA-ядер. По остальным параметрам мобильный GK20A уступает вчетверо — у него в четыре раза меньше блоков TMU и ROP. Но не забывайте — мы сравниваем мобильный GPU с настольным решением, пусть и довольно слабым! Причем, тактовая частота GPU в составе Tegra K1 достаточно высока и составляет 950 МГц, что даже чуть выше частоты видеочипа в GeForce GT 640.

Что касается аналогичных видеокарт для ноутбуков, то у GK107 появился улучшенный собрат GK208, который ближе всего к мобильному GPU в Tegra K1. GK107 и GK208 имеют по два мультипроцессора SMX, состоящих из 192 CUDA-ядер каждый, а GK208 имеет некоторые дополнительные вычислительные возможности и уменьшенную с 128-бит до 64-бит ширину шины видеопамяти. Этот GPU лежит в основе нескольких ноутбучных видеокарт: GeForce GT 720M, 730M, GT 735M и GT 755M, а также настольных решений: GeForce GT 635 и вторых ревизий GT 630 и GT 640.

Естественно, что мобильный GPU пришлось серьезно перерабатывать и модифицировать. Для мобильных устройств не нужно слишком большое количество блоков ROP и TMU, не говоря уже о блоках обработки геометрии и тесселяции, которые будут использоваться лишь на малую часть их возможностей. Еще важнее другие изменения, которые пошли на пользу энергоэффективности. К примеру, в GK20A были серьезно упрощены коммуникации между блоками GPU, так как для мобильной версии с одним GPC и одним SMX просто нет нужды в передаче данных и балансировке работы между разными SMX и кластерами, поэтому часть управляющей логики была упразднена и в целом мобильный GPU стал гораздо проще и энергоэффективнее.

Но это не коснулось функциональности видеоядра, которое полностью соответствует по возможностям настольным Kepler. В том числе по возможностям обработки геометрии и тесселяции — разбиения геометрических примитивов на более мелкие. Тесселяция — большое преимущество Kepler и она особенно важна для мобильных устройств, так как способна обеспечить более эффективную обработку сложной геометрии, по сравнению с традиционными методами.

 

К примеру, динамическая генерация геометрии ландшафта и/или водной поверхности при заданном уровне детализации способна обеспечить многократный (по оценке NVIDIA — более чем 50-кратный) рост производительности, по сравнению с прямым увеличением количества треугольников, который доступен на устаревших видеоядрах с поддержкой лишь OpenGL ES 2.0.

По ПК-играм вы уже знаете, что при правильном подходе тесселяция способна улучшить реалистичность сгенерированного изображения. Этот метод позволяет добавить детализации к объектам в 3D-сцене, особенно заметной на гранях, дает возможность корректного просчета теней и глобального освещения, при этом геометрические данные динамически добавляются лишь там, где они нужны.

 

В качестве одного из таких примеров NVIDIA представляет демо-программу с полностью тесселированным ландшафтом, использующую OpenGL 4, в которой графический процессор Tegra K1 с легкостью обрабатывает несколько миллионов полигонов в кадре при стабильных 60 FPS. Также можно вспомнить и еще одну аналогичную демку Island, переделанную для мобильного GPU.

Или помните года три назад была такая демонстрационная программа-бенчмарк Stone Giant от BitSquid и Fatshark, которая работала на видеокартах с аппаратной поддержкой Direct3D 11 и тесселяции? Так вот она теперь отлично работает и на мобильном чипе Tegra K1 в полном разрешении, а ведь раньше далеко не каждый настольный GPU справлялся с ней!

 

Поддерживаются новым мобильным чипом NVIDIA и другие возможности, которые открыла архитектура Kepler. К примеру, как и все настольные GPU, новинка поддерживает так называемое bindless-текстурирование. В предыдущих графических архитектурах модель привязки текстур обеспечивает поддержку одновременной работы лишь с 128 текстурами, которым выделяется свой фиксированный слот в таблице привязок, а в Kepler внедрили «не привязанные» текстуры, когда шейдерная программа может обращаться к текстурам в памяти напрямую, без использования таблицы привязки:

 

Это решение увеличивает одновременное количество обрабатываемых текстур в одной шейдерной программе более чем до 1 миллиона, что позволяет увеличить количество уникальных текстур и материалов в одной сцене и может использоваться в техниках, аналогичных известной MegaTexture, применяемой в движке id Software. Кроме этого, bindless-текстурирование помогает снизить загрузку CPU при рендеринге, уменьшая время, необходимое видеодрайверу на обработку запросов.

Как и в настольных собратьях, в мобильном GPU архитектуры Kepler повсеместно используется сжатие информации в разных частях графического конвейера. В нем достаточно много мест, где применяется сжатие и буферизация, помогающие эффективнее использовать видеопамять и ее полосу пропускания, которой всегда не хватает.

 

Текстурная компрессия даже еще важнее для мобильных устройств, чем для ПК, так как мобильные чипы имеют узкие шины доступа к памяти, а микросхемы памяти работают на меньшей тактовой частоте, что выливается в недостаток пропускной способности. Поэтому в NVIDIA уделили много внимания эффективному сжатию данных и их буферизации между различными блоками GPU, а также другим методам экономии ПСП.

Так, в видеоядре Tegra K1 применяется отбрасывание примитивов (primitive culling), иерархический Z Cull, сжатие Early Z и Z-буфера, сжатие буфера цвета и текстурное сжатие несколькими методами: DXT, ETC, ASTC (Adaptive Scalable Texture Compression).

ASTC — это блочный алгоритм сжатия изображений с потерями, разработанный ARM, который является общепринятым стандартом и официальным расширением для OpenGL и OpenGL ES. Этот метод имеет преимущества перед DXT и ETC, поддерживает блоки разного размера и формата (в т.ч. HDR), обеспечивает лучшее качество изображения и значительно экономит ПСП.

 

В качестве примера, на данной иллюстрации NVIDIA показан коэффициент сжатия изображений типичного пользовательского интерфейса мобильным видеоядром Kepler, на которых достигается сжатие от 43 до 76%.

С внедрением видеоядра современной архитектуры Kepler в Tegra K1 добавились и другие возможности, не связанные с 3D-графикой напрямую. Например, ускоренная на GPU отрисовка 2D-графики, известная как трассировка пути (path rendering). Данный метод определяет двухмерный рисунок в виде последовательности независимых от разрешения экрана очертаний (путей), которые могут быть заполнены цветом, градиентом, изображением и т.п.

 

В отличие от растровых изображений, трассировка пути позволяет поворачивать и масштабировать изображение без артефактов пикселизации и других подобных проблем, и она будет весьма к месту при работе с PostScript, PDF, SVG, Flash, отрисовкой шрифтов TrueType и OpenType, векторных изображений и «холстов» (canvas) HTML 5.

Сейчас все операции по отрисовке векторных изображений выполняются на CPU, но у GPU-ускоренной поддержки есть свои достоинства: видеоядро способно качественно и быстро фильтровать изображение (включая анизотропную фильтрацию), на нем доступна программируемая закраска (например, сложный бампмаппинг, медленный на CPU), поддерживается быстрый блендинг изображений. Среди других достоинств: отсутствие необходимости отрисовывать изображение в текстуру, смесь векторных и 3D-объектов в одном буфере, гораздо более высокая производительность и снижение нагрузки на CPU-ядра.

NVIDIA полагает, что многие приложения с 2D-графикой вскоре перенесут работу path rendering, выполняемую на CPU, на более эффективные в этом деле видеоядра, получив преимущество в гибкости и производительности. На специальном мероприятии NVIDIA журналистам показывали демонстрацию этой технологии на обычном планшете с Tegra K1, где запускали CPU и GPU-версии по очереди. И действительно, рендеринг, масштабирование и поворот содержимого HTML-страниц и SVG-картинок осуществлялся на GPU в разы быстрее, что было заметно невооруженным взглядом.

Возможности Tegra K1 по обработке графики

Итак, графические возможности видеоядра Tegra K1 соответствуют настольным чипам архитектуры Kepler, так как мобильное GPU-ядро вышедшего чипа Tegra основано на последней графической архитектуре компании NVIDIA. Видеоядро Tegra K1 поддерживает как OpenGL ES 3.0 с OpenGL 4.4, так и все возможности DirectX 11, включая тесселяцию, а также NVIDIA CUDA 6.0 и OpenCL.

Самое главное, что новый мобильный GPU намного проще и менее требователен к питанию, по сравнению со старшими братьями. Мобильное видеоядро поддерживает все то же, что и GeForce GTX Titan, но потребляет при этом в сотню раз меньше энергии! NVIDIA указывает потребление чипа как 2 Вт, но вполне вероятно, что в некоторых ресурсоемких задачах типичное потребление будет порядка 2,5-3 Вт, что типично для мощных мобильных SoC, предназначенных для планшетов и крупных смартфонов с 5-дюймовыми (и более) экранами.

Мы уже приводили выше некоторые важные события в развитии аппаратной 3D-графики: появление RealityEngine в 90-х годах, выход первого игрового GPU с аппаратно ускоренной обработкой геометрии от NVIDIA в 1999, появление программируемых шейдерных программ в 2001 и выход GPGPU-ориентированных GPU в последние годы. Каждый шаг предоставлял новые возможности, и появление видеоядра столь продвинутой архитектуры в мобильных решениях является важным событием для NVIDIA.

Возможности нового GPU будут раскрыты не только в игровых приложениях со сложной 3D-графикой, но и обработке изображений, применении SoC в автомобилях и других задачах, о которых мы поговорим далее. Но естественно, что наибольший эффект на пользователей оказывают новые возможности именно 3D-графики.

 

NVIDIA подготовила новую демо-программу для первого мобильного Kepler, которая использует Unreal Engine. Конечно, в ней не обошлось без некоторых предпросчитанных вещей, но основная часть освещения рассчитывается в реальном времени, применяется HDR-рендеринг и сложные материалы.

Результат выглядит весьма впечатляюще — качеством изображения были довольны даже сами создатели движка из Epic Games — Марк Рейн, например. Рендеринг сложных сцен, который ранее требовал достаточно мощного настольного GPU, теперь неплохо работает и на новом мобильном чипе, который отлично подходит для топовых смартфонов и планшетов:

 

Перед разработчиками мобильных 3D-приложений на столь мощных системах открываются новые возможности, ведь становится доступным качество графики почти как в таких играх для ПК, как Watch_Dogs, Battlefield 3/4, Assasin's Creed IV.

Все это в ближайшем будущем будет доступно на мобильных (и не просто мобильных, а в том числе и карманных!) устройствах с Tegra K1. Мощное видеоядро Kepler предлагает большое количество новых возможностей, ранее недоступных на подобных устройствах:

 

Графика Tegra K1 обеспечивает гибкую программируемость и высочайшую производительность для мобильных устройств, облегчает создание качественной 3D-картинки и перенос игровых приложений с «взрослых» платформ: ПК и консолей. Уже в ближайшем будущем даже на мобильных системах будут доступны такие эффекты и алгоритмы, как тесселяция, реалистичные физические эффекты PhysX, сложное освещение (в том числе глобальное) и постобработка, и даже трассировка лучей.

При переходе от предыдущего мобильного чипа к Tegra K1 произошел приличный скачок в 3D-производительности и ошеломляющий — в функциональности. Этот скачок можно оценить по сравнению графики в бенчмарке GLBenchmark Egypt с лицом из известной демо-программы от NVIDIA.

 

Это — уже известная вам демонстрационная программа имитации человеческого лица и мимики — FaceWorks Ira. Одна из наиболее детализированных имитаций человеческого лица, которая была впервые показана на GTC 2013 несколько месяцев назад в качестве демонстрации возможностей лучших настольных решений, теперь работает и на мобильных устройствах с Tegra K1.

Конечно, мобильная версия демо-программы потребовала некоторых упрощений, ведь видеочип с потреблением в 2-3 Вт пока что не способен обработать 5 триллионов операций с плавающей запятой в секунду. Важно, что все базовые эффекты остались: полноценный HDR-рендеринг, сглаживание методом FXAA и подповерхностное рассеивание (subsurface scattering), имитирующее распространение света через полупрозрачные ткани человека. В мобильной версии демо-программы шейдеры были упрощены, они используют меньше внеэкранных буферов, текстуры меньшего разрешения и лишь один проход. Но хотя качество картинки несколько снизилось, оно осталось весьма высоким для компактных решений, недостижимым ранее.

Кто-то из читателей обязательно возразит, что в серьезные игры, требующие качественной 3D-графики, на мобильных устройствах почти не играют, но данные от App Annie и Flurry Analytics говорят о том, что пользователи Google Play Market даже в 2012 году тратили на игры 76% от общей суммы потраченных на покупку ПО средств, а неигровому софту досталось лишь 24%. Более того, при использовании мобильных устройств вроде планшетов, их пользователи тратят 67% времени на игры и лишь оставшаяся треть уходит на все остальные занятия.

Если посмотреть на доли игровых разработчиков, нацеленных на различные игровые платформы, то для мобильных устройств игры разрабатывает 55% от всех разработчиков, что даже больше, чем для ПК (48%), не говоря уже о 5-13% компаний, разрабатывающих игры для различных настольных консолей. Понятно, что так получается во многом из-за более доступной финансово разработки для мобильных устройств, но фактов это не меняет — больше всего игровых разработчиков нацелены на мобильные устройства.

А есть еще данные и прогнозы DFC Intelligence о том, что именно рынок мобильных игровых приложений растет быстрее всех остальных игровых платформ. Так что возможность внедрения качественной 3D-графики вполне может быть востребована и в мобильных играх. Даже тех, которые пока что довольствуются 2D-картинкой, как это было ранее и на взрослых игровых платформах.

 

Но как разрабатывать качественные игры для мобильных устройств, если на ПК и консолях есть много специализированного ПО, предназначенного для игровых разработчиков, а для смартфонов и планшетов все это находится в зачаточном состоянии? Ведь во многом именно поэтому игры на Android не столь впечатляющи, как для игровых консолей. Чтобы помочь разработчикам в их нелегком деле, NVIDIA давно разрабатывает разнообразное дополнительное ПО, полезное при создании 3D-игр.

Эти утилиты теперь доступны и на мобильных устройствах — те же самые программы, что и на ПК. К примеру, известный пакет GameWorks будет работать и в случае Tegra K1 с видеоядром Kepler, а в него входят известные по ПК SDK, алгоритмы, эффекты, движки и библиотеки, такие как VisualFX SDK, Core SDK, Graphics Lib, Game Compute Lib, Optix и PhysX. Более того, у NVIDIA есть специальные утилиты для отлова ошибок в мобильных приложениях в Visual Studio и NVIDIA Nsight Tegra — специализированный отладчик для мобильной графики. Все это уже вполне работоспособно и применяется разработчиками:

 

Над пакетом GameWorks работает более трех сотен сотрудников NVIDIA, он состоит из: VisualFX SDK — набора сложных реалистичных эффектов, Graphics Lib — примеров эффектов с документацией и обучающими примерами, PhysX SDK — самого распространенного физического движка, применяемого более чем в 500 играх, Game Compute Lib — примеров вычислительных шейдеров на CUDA, DirectX и GLSL, Optix SDK — движка трассировки лучей, и др.

 

Утилиты для разработчиков NVIDIA включают все необходимое для создания игровых приложений для Android в привычной среде Visual Studio, для этого используется специализированная версия отладчика NVIDIA Nsight Tegra. Полноценная поддержка утилит NVIDIA настольными решениями GeForce и мобильным чипом Tegra K1 означает одинаковый подход к программированию на ПК и мобильных решениях и сравнительно простой перенос между этими платформами.

Неудивительно, что новое решение NVIDIA и утилиты для разработчиков уже получили горячую поддержку от разработчиков, компания сотрудничает со всеми создателями основных игровых движков: CryEngine, Unreal Engine, id tech 5, Frostbite, Unity, Source и других. Они имеют доступ к исходным кодам друг друга и портируют рендереры движков на новую мобильную платформу, NVIDIA помогает в оптимизации производительности и внедрении новых технологий, в том числе и физических эффектов PhysX.

Такая поддержка очень важна, ведь тот же Unreal Engine применяется в более чем 300 играх (лишь несколько свежих примеров: Bioshock Infinite, Hawken, Borderlands 2, Mass Effect 3, Gears of War 3, Batman Arkham City) и является самым коммерчески успешным игровым движком прошедших лет. А четвертая версия движка Unreal Engine 4 еще более совершенна, в том числе и с точки зрения качества графических эффектов.

Этот движок нацелен на вышедшие недавно консоли текущего поколения (PlayStation 4 и Xbox One), а также на современные ПК, в нем используется отложенный (deferred) рендеринг, тесселяция, вычислительные и геометрические шейдеры, bindless-текстурирование и сжатие текстур ASTC, физические эффекты, а в системных требованиях у движка указана обязательная поддержка DirectX 11 или OpenGL 4.4.

Поэтому на мобильных чипах без поддержки OpenGL 4 игры на движке Unreal Engine 4 просто не будут работать. А вот возможности графического ядра Kepler в мобильном чипе Tegra K1 значительно превосходят спецификации OpenGL ES 3.0. Пожалуй, впервые в мобильном чипе возможно все (абсолютно все, с учетом лишь меньшей производительности, но не возможностей) то, что мы уже видели на настольных ПК, поэтому игровые приложения на основе Unreal Engine 4 вполне можно сделать и для мобильных устройств, основанных на новом чипе NVIDIA.

На мероприятии для журналистов показали некую демонстрацию Unreal Engine 4 Demo Shooter, которая смотрится весьма впечатляюще для мобильных устройств, отличается сложными графическими и физическими эффектами. Но это все дело хоть и недалекого, но все же будущего. А в ближайшее время вероятно портирование некоторых ПК игр на Android, так как NVIDIA Tegra K1 полностью поддерживает OpenGL 4.4 и какие-то из игр можно перенести очень просто.

 

К примеру, игру Serious Sam 3: BFE, которая вышла на ПК в 2011 году, уже перенесли на Tegra K1 без каких-либо упрощений графики и весь процесс портирования занял лишь несколько дней! Так получилось из-за того, что движок игры изначально ориентирован не только на DirectX, но и на OpenGL 4, а видеоядро Kepler в Tegra K1 обладает такой поддержкой. Но даже если рендерер игры изначально написан для Direct3D, то перенести для работы на мобильном чипе Tegra K1 его не так уж сложно, так как NVIDIA обеспечила разработчиков всеми необходимыми утилитами.

Игровые разработчики, получившие Tegra K1 одними из первых и уже начавшие программировать для нового мобильного GPU, весьма впечатлены его возможностями. Одним из таких разработчиков является 11 Bit Studios, которые известны по игре Anomaly 2 в стиле tower defence, которая вышла на ПК еще в мае 2013 года и была перенесена на Android осенью. Нынешняя мобильная версия использует OpenGL ES и в нее внесены некоторые упрощения, по сравнению с настольным вариантом, но польская компания уже сделала версию для Tegra K1, использующую OpenGL 4 и вовсе лишенную каких-либо упрощений!

 

И действительно, показанная журналистам демо-версия на планшете с Tegra K1 отличается очень хорошей графикой для портативных устройств. Более того, при максимальных настройках игры устройство на базе Tegra K1 обеспечивает 60 FPS при включенных системах частиц, эффектах PhysX (камни, дым и т.п.), HDR-рендеринге и эффектах постобработки. В Google Play есть отдельный бенчмарк (Anomaly 2 Benchmark), который также обещают оптимизировать для Tegra K1.

Польские разработчики из 11 Bit Studios утверждают, что они затратили очень мало времени на перенос игры на Tegra K1, по сравнению с обычной Android-версией — всего лишь несколько дней против нескольких месяцев. Ведь если в обычной OpenGL ES версии требовалось убирать или переписывать какие-то эффекты и алгоритмы и упрощать ресурсы (готовить текстуры низкого разрешения и менее сложные модели), то полноценный Kepler в Tegra K1 позволяет не тратить время на подобное упрощение, что заметно облегчает портирование.

Портирование «настольных» игр на портативные устройства еще никогда не было настолько простым, и в будущем можно ожидать множества таких примеров. В качестве еще одной ПК-игры с отличной графикой, которая перенесена на Android и отлично выглядит на NVIDIA Tegra K1, можно привести логически-физический платформер Trine 2. Мобильная версия этой игры, показанная на планшете с новым чипом NVIDIA, выглядит не хуже, чем на старших игровых платформах!

 

Надо отметить, что в последнее время снова увеличивается значение графического API OpenGL, который используют все мобильные устройства на Android, ПК с Linux и Apple, а также некоторые из настольных игровых консолей. А уж с выходом SteamOS от Valve — операционной системы, основанной на Linux и разработанной для Steam-игр, позиции OpenGL могут укрепиться еще сильнее. И это лишь на руку NVIDIA, которая всегда уделяла поддержке этого API особенное внимание.

Универсальные вычислительные возможности

Но не только обработка графики требуется сейчас от нынешних графических процессоров, даже мобильных. Конкуренты NVIDIA уже достаточно давно щеголяют надписями OpenCL в строчках спецификаций (правда, практического толка от этого до сих пор так и не видно). В случае NVIDIA же все обстоит лучше, так как именно у них больше всего опыта в GPGPU — соответствующие чипы они выпускают уже восемь лет!

Да-да, с 2006 прошла уже много времени, и G80 тогда был первым видеочипом, направленным на GPGPU-вычисления. С тех пор сменилось немало архитектур и поколений, и вот уже в мобильном чипе Tegra K1 видеоядро основано на точно такой же архитектуре Kepler, что и настольные собратья. Причем, это абсолютно полноценный Kepler, что касается и универсальных неграфических вычислений — по набору команд он 100% совместим с GTX Titan и другими видеокартами, имеет такие же возможности по кэшированию: конфигурируемые 64 КБ памяти между общей (shared) и кэш-памятью первого уровня и т.д.

И по темпу вычислений с двойной точностью (FP64) мобильное видеоядро NVIDIA ни в чем не уступает бюджетным решениям архитектуры Kepler (известны под кодовыми именами GK10x) — такие вычисления выполняются со скоростью 1/24 относительно вычислений одинарной точности. NVIDIA инвестировала в универсальные вычисления немало времени и средств, и именно они предлагают лучшую в индустрии поддержку GPGPU: языки программирования, библиотеки и другие утилиты для разработчиков:

 

И с выходом Tegra K1 их платформа параллельных вычислений CUDA работает на всех решениях компании, от мобильных Tegra до профессиональных вычислителей Tesla. Утилиты разработчика CUDA 6 Developer Tools поддерживают все современные графические решения компании, а также и другое программное обеспечение: NVIDIA Nsight Eclipse Edition, Visual Profiler, Cuda-gdb, Cuda-memcheck и многое другое.

Настольные графические процессоры уже довольно давно умеют гораздо большее, чем просто рендеринг 3D-сцен, и вот наконец-то GPGPU-вычисления пришли и на мобильные решения NVIDIA. Да, тут они немножко отстали от конкурентов, давно заявивших о возможности универсальных вычислений на их GPU, но только воз и ныне там — ни одного заметного случая использования GPGPU в мобильных устройствах мы не припомним. А вот опыт NVIDIA и относительные успехи на других рынках позволяют надеяться на более широкое распространение подобных возможностей.

 

С приходом видеоядра с архитектурой Kepler в Tegra K1, становятся доступны такие вычислительно-требовательные возможности, как распознавание лиц, речи и образов, компьютерное зрение, продвинутая обработка изображений в реальном времени, более совершенные системы дополненной реальности, изменение глубины резкости и перефокусировка на фотоснимках и многое другое, что мы пока что даже еще не можем себе представить и что способно произвести в мобильных устройствах настоящий переворот.

Одним из наиболее актуальных применений для серьезно увеличившихся и качественно улучшившихся вычислительных возможностей NVIDIA Tegra K1 является вычислительная фотография, о которой мы уже упоминали в обзоре Tegra 4. Пятым изданием мобильного чипа компании поддерживается вторая версия движка вычислительной фотографии Chimera 2, которая имеет некоторые изменения и улучшения.

 

Сам по себе движок улучшился скорее количественно, а качественный скачок наблюдается в возможностях по обработке изображения вычислительными ядрами GPU, которых стало больше и для них удобнее программировать. Ведь Kepler — это гибко настраиваемая высокоэффективная архитектура по параллельной обработке огромных массивов данных. А с точки зрения работы вычислительной фотографии нужна быстрая связь между GPU-ядрами и движком Chimera 2, то есть — тесная интеграция возможностей этих блоков в Tegra K1.

Для обработки изображений в состав нового мобильного чипа Tegra включен сдвоенный движок ISP следующего поколения (по сравнению с тем, что был в Tegra 4, видимо). Каждый из двух ISP способен обрабатывать до 600 мегапикселей в секунду, что дает общую производительность в 1,2 гигапикселя/с. Блоками ISP поддерживаются модули цифровых камер с разрешением до 100 мегапикселей, а глубина цвета может составлять до 14-бит на пиксель.

 

Для чего вообще может понадобиться такая мощь? Кроме типичных задач вроде качественных шумоподавления, масштабирования и цветокоррекции, можно сходу придумать такие задачи, как локальный tone mapping (процесс преобразования большего диапазона яркостей к меньшему) в реальном времени при 30 кадрах в секунду, съемку панорам высокого разрешения в реальном времени, задачу по стабилизации при видеосъемке, а также поддержку огромного количества фокусировочных точек — вплоть до 4096 штук по сетке 64 на 64, что полезно для отслеживания движущихся в кадре объектов по всем направлениям: горизонтали, вертикали и диагоналям. И все это — с очень высокой производительностью и сравнительно низким потреблением энергии, так как движок Chimera 2 оптимизирован для подобных вычислений.

Но не одна лишь производительность беспокоит пользователя при фото- и видеосъемке. Еще больше вопросов возникает по возможному улучшению качестве изображения. И кроме уже перечисленных алгоритмов качественного шумоподавления, тонмаппинга, масштабирования и цветокоррекции, NVIDIA заявляет о преимуществе их решения по качеству изображения, захватываемого с сенсоров, которое выражается в лучшем отношении сигнал/шум, то есть, меньшем уровне шума:

 

Хотя по предоставленным на слайде изображениям очень сложно говорить о качестве и вообще о какой-либо положительной разнице, NVIDIA уверяет, что снимки сделаны в условиях специально оборудованной студии с калиброванным источником света при низком освещении сцены (18 люкс) и новый ISP3 в таких условиях имеет преимущество перед старым, который применялся в Tegra 4.

Журналистам показали демонстрационную программу обработки видео с камеры — локальный tone mapping для снятого камерой изображения в реальном времени с 30 кадрами в секунду, а для столь ресурсоемких операций обязательно применение GPGPU-возможностей мощного видеоядра архитектуры Kepler. И пусть демо было не самым впечатляющим, но оно явно использует сложные вычисления — и тут уже дело за разработчиками, которым Tegra K1 дает впечатляющие возможности.

К слову, вычислительная архитектура Chimera 2 в Tegra K1 предусматривает конвейер для одновременного использования ресурсов CPU и GPU. Те задачи, которые лучше исполняются на GPU, можно отдавать видеочипу, а часть вычислений с множеством ветвлений и условий выполнять на CPU, и эффективно смешивать эти команды для достижения одной цели.

 

Возможности Chimera 2 важны не только для фото- и видеосъемки, но и для компьютерного или машинного зрения (computer vision), ведь в нем применяются очень сложные алгоритмы для распознавания объектов и других задач. В частности, это автомобильное компьютерное зрение: распознавание пешеходов, разделительных полос и прочей разметки, распознавание дорожных знаков и других объектов, мониторинг «слепых» зон в зеркалах заднего вида и т.п. задачи.

 

Надо сказать, что применение Tegra в автомобилях уже стало довольно успешным для NVIDIA, и многие автопроизводители используют мобильные чипы калифорнийской компании в своих моделях автомобилей — общее количество проданных автомобилей с внедренными в них чипами Tegra достигло нескольких миллионов.

Правда, пока что дело не дошло до продвинутого использования, о котором написано выше, но системы-на-чипах в автомобилях используются в навигационных и развлекательных системах, для вывода информации на лобовое стекло, и даже в виде полностью цифровой панели приборов, когда все приборы со стрелками и цифрами рендерятся в реальном времени, заменяя привычные «теплые ламповые» циферблаты.

 

Судя по показанным NVIDIA демонстрационным программам, цифровая панель приборов вполне может привлечь любителей изменить в своих автомобилях все на свой вкус, а автопроизводителям даст возможность сэкономить денег на материалах, ведь вместо дорогостоящей обработки металла можно просто отрисовать на ЖК-экране его цифровую модель. Для тех, кому это кажется баловством, остаются возможности вроде определения линий разметки и знаков — показанные демонстрации работали неплохо, хотя совершенно новыми эти возможности назвать трудно.

Оценка производительности и энергопотребления

Как обычно, постараемся дать всю имеющуюся у нас на данный момент информацию о производительности и потреблении энергии новым чипом Tegra K1. По понятным причинам, пока что в наличии лишь официальные данные от самой компании NVIDIA — все-таки от стороны, заинтересованной в хороших результатах новинки, поэтому к ним нужно относиться со здоровой долей скепсиса.

С производительностью CPU-части Tegra K1 все понятно уже сейчас — применяются те же самые Cortex-A15 ядра, скоростные характеристики которых давно известны. Единственное изменение, по сравнению с предыдущей версией SoC от NVIDIA заключается в том, что тактовая частота CPU-ядер в Tegra K1 может достигать 2,3 ГГц — причем для всех ядер одновременно, у чипа нет турборежима, в котором одно ядро работает на более высокой частоте (видимо, ядро-компаньон осталось оптимизировано для низкого потребления энергии, в первую очередь). Давайте рассмотрим первые данные об энергоэффективности улучшенных универсальных вычислительных ядер Cortex-A15 третьей ревизии.

 

На этой диаграмме NVIDIA сравнивает два своих решения разных поколений: Tegra 4 и Tegra K1. В CPU-части отличия между ними заключаются в разных «ревизиях» процессорных ядер: R2 и R3, соответственно. Плюс к этому, разница в потреблении дополняется применением иного технологического процесса — 28 нм «HPM», оптимизированного для мобильных чипов, и другими модификациями.

Новая ревизия CPU-ядер и иной техпроцесс позволили заметно улучшить энергоэффективность новинки по сравнению с предыдущей Tegra. При том же уровне потребления энергии вычислительными ядрами, пятая модель Tegra обеспечивает рост производительности на 40% в бенчмарке SPECint2k. А вычислительная производительность, равная скорости предыдущего чипа достигается при более чем вдвое меньшем уровне энергопотребления.

Результат очень хороший, но это было лишь сравнение с предыдущей версией мобильной системы-на-чипе от NVIDIA, а что если сравнить энергоэффективность с конкурентами? Ведь многие из них ушли далеко вперед, у Qualcomm вышло несколько новых решений, не говоря уже про Apple с их уникальным 64-битным чипом Cyclone.

 

По крайней мере, сравнение самой компании NVIDIA в бенчмарке Octane показывает, что Tegra K1 становится самым энергоэффективным мобильным чипом в CPU-части. Новый чип NVIDIA на разных частотах и напряжении оказывается явно энергоэффективнее, чем недавний топовый Qualcomm Snapdragon 800 и по этому важнейшему параметру чип Tegra K1 оказался примерно на одном уровне с 64-битным чипом Apple A7, работающим на частоте 1,3 ГГц. Решение NVIDIA даже чуть лучше, но разница незначительна.

Столь высокая энергоэффективность CPU-ядер явно может помочь компании вернуть позиции, несколько утраченные со времен чипа Tegra 3, который массово применялся в смартфонах и планшетах. Но мы пока что говорили лишь о CPU-ядрах, а что у новинки с производительностью и энергоэффективностью GPU-ядра, которое интересует нас еще больше? Посмотрим сначала на теоретическое сравнение Tegra 4 и Tegra K1:

 

Собственно, ничего неожиданного в данных нет, по пиковым цифрам новый GPU значительно превосходит устаревшее видеоядро Tegra 4. Если по текстурированию двукратная разница в скорости (на такт) не столь заметна, да и прирост общей математической мощи не достиг трехкратного значения, то разница в скорости растеризации и геометрической производительности впечатляет куда больше. Кроме того, не нужно забывать, что вычислительные ядра Kepler намного более продвинутые и гибкие, да и прямое сравнение объема кэш-памяти не совсем корректно, так как L2-кэш в Tegra K1 гибко настраивается и полезен в широком круге задач.

В общем, по теории между Tegra 4 и Tegra K1 получается просто огромная разница! Да и улучшение энергоэффективности ожидается весьма внушительное, но об этом мы поговорим позже. А сейчас посмотрим, насколько близко GPU в Tegra K1 подобрался к возможностям... настольных консолей предыдущего поколения — тех самых, на которых до сих пор играют многие игроки.

 

Конечно же, сравнение не самое простое и корректное, так как архитектура консолей очень сильно отличается и от ПК-шной и от мобильной в Tegra K1. К примеру, пропускная способность памяти для Xbox 360 для 10 МБ специальной памяти гораздо выше — 256 ГБ/с. В остальном, GPU в Tegra K1 примерно на том же уровне, по сравнению с консолями предыдущего поколения. Почти по всем теоретическим пиковым параметрам новый мобильный чип NVIDIA не хуже PlayStation 3 и Xbox 360, кроме ПСП (даже без учета быстрых 10 МБ памяти в консоли Microsoft) и скорости текстурирования.

Даже сравнение математической производительности не такое уж понятное, ведь в случае консоли Sony не учтены более мощные дополнительные CPU-ядра, на которые перекладывается часть работы GPU, хотя такое низкоуровневое программирование доступно лишь избранным разработчикам. В случае же Tegra K1 перед программистами предстанет уже знакомая им по ПК архитектура Kepler, все возможности и особенности которой изучены. В общем, везде есть свои плюсы и минусы и, судя по теоретическим цифрам, чип Tegra K1 вполне может тягаться с GPU и CPU, установленными в настольных консолях: PlayStation 3 и Xbox 360. А по некоторым параметрам, вроде объема доступной памяти и возможностям GPU, так и вовсе значительно их превосходит.

Все это делает Tegra K1 мощнейшей игровой платформой, одной из лучших среди мобильных. Конечно же, нужно помнить, что это сравнение — чисто теоретическое, у консолей есть свои плюсы, в числе которых единая аппаратная конфигурация, под которую легко максимально оптимизировать код игры. К тому же, игры для консолей разрабатываются лучшими компаниями в этом деле, которые имеют и огромный опыт и необходимые знания и умения, чтобы выжать из аппаратных особенностей все, что только можно. Так что не стоит ожидать игр консольного качества на мобильных устройствах, как минимум — в ближайшее время. Но зато у NVIDIA есть свои преимущества перед другими мобильными решениями: отличная программная поддержка игровых разработчиков и игровая платформа TegraZone, так что шансы на успех у них есть.

Если же говорить о конкретных цифрах производительности, то на мероприятии NVIDIA журналистам показали некоторые цифры производительности в графических бенчмарках и продемонстрировали производительность и энергоэффективность новой Tegra K1 на деле. Слайд с цифрами бенчмарка GFXbench 2.7.5 показывает явное превосходство GPU-ядра Tegra K1 перед Adreno 330 в Snapdragon 800 и PowerVR G6400 в Apple A7, протестированных в схожих по форм-фактору планшетах с экраном размера 7-9 дюймов.

 

Даже по устаревшему GFXbench 2.7.5, который использует старые алгоритмы, эффекты и даже API и не охватывает новых возможностей Tegra K1, видно, что преимущество новинки NVIDIA перед сильными соперниками более чем двукратное! В более современных 3D-тестах преимущество современного графического ядра NVIDIA должно увеличиться даже еще больше.

Но может быть видеоядро Tegra K1 потребляет слишком много энергии? Известно, что Kepler сам по себе является весьма энергоэффективной архитектурой, и мы уже говорили о кэшировании и буферизации данных, агрессивном сжатии данных во многих точках графического конвейера, оптимизациях Z-буферизации и т.п. И даже настольные видеочипы архитектуры Kepler имеют много специфических функций, направленных на увеличение энергоэффективности.

Но для мобильных чипов этого недостаточно. Для мобильного Kepler применяется многоуровневое изменение тактовой частоты и напряжения, есть два уровня отключения неиспользуемых в данный момент функциональных устройств GPU (power gating), дополнительно оптимизированы межчиповые соединения (мы уже говорили об отсутствии связи между разными мультипроцессорами SMX, так как он в GK20A один), а также внедрены специальные режимы работы в простое, с низкой и высокой нагрузкой исполнительных блоков.

Эти дополнительные меры привели к значительному улучшению энергоэффективности даже по сравнению с достаточно экономичными «ноутбучными» вариантами чипов архитектуры Kepler — потребление снизилось еще более чем в два раза: с пяти до двух ватт. Вероятно, аналогичные возможности будут изначально использоваться и в будущих решениях на основе архитектуры Maxwell, а достигнутое в мобильном Kepler улучшение энергоэффективности поможет также и последующим настольным GPU.

На мероприятии NVIDIA журналистам показали специальный стенд для измерения потребления энергии мобильными устройствами, к которому были подключены различные планшеты и смартфоны, и по этим данным планшет с Tegra K1 также оказался значительно энергоэффективнее всех конкурентов, среди которых были самые последние модели от известных производителей. Давайте сравним энергоэффективность Tegra K1 со Snapdragon 800 и Apple A7 уже в совершенно новом тесте 3D-производительности GFXBench 3.0:

 

Итак, если ограничить питание систем-на-чипах целиком рамками в 2,5 Вт (типичное потребление топовых смартфонов при высокой нагрузке) и привести производительность Tegra K1 к тем значениям, что показывают ее конкуренты в этом тесте, то получается, что при той же производительности Tegra K1 потребляет в этом 3D-тесте заметно меньше энергии, по сравнению с PowerVR G6400 из Apple A7, работающем в iPhone 5S, и чем Adreno 330 в составе Qualcomm Snapdragon 800 (на Sony Xperia Z Ultra).

Тесты были выполнены на специализированном стенде NVIDIA, напомним. По данным NVIDIA, мобильный Kepler в составе нового чипа в 1,5 раза энергоэффективнее последней системы-на-чипе Apple при той же скорости и в те же 1,5 раза эффективнее Snapdragon 800, но уже при сниженном потреблении. Иными словами, если исходить из данных компании, то главные конкуренты на данный момент оказались повержены — отличный результат! Такое впечатление, что NVIDIA наконец-то поставила в свой мобильный чип достойное графическое ядро, по всем параметрам превосходящее конкурентов, и по функциональности и по производительности.

Выводы

Рынок мобильных систем-на-чипах, предназначенных для мобильных устройств, развивается очень быстро, и мобильные чипы с каждым поколением все функциональнее и все быстрее. И это — на фоне относительного застоя на рынке настольных решений, который если не сужается, то стабилизировался по объему продаж. Производители мобильных SoC выпускают все более мощные и продвинутые решения, стараясь при этом удержать потребление энергии в допустимых рамках — высокая энергоэффективность в мобильных продуктах всегда была важнейшим параметром.

И те мобильные чипы, которые не обеспечивают высокой эффективности и отстают по технологиям ко времени своего выхода, просто не находят широкого применения на рынке. К примеру, не самой удачной попыткой можно назвать NVIDIA Tegra 4. С точки зрения CPU-производительности в этом чипе все очень хорошо, да и GPU-ядро достаточно производительное. Но по своим возможностям оно недалеко ушло от самого первого мобильного решения компании. Да, в нем были проведены кое-какие модификации, но основа не менялась несколько лет, что для признанного лидера на рынке GPU было просто неприлично. От NVIDIA и в мобильном секторе всегда ожидается лучшее по 3D-возможностям решение, как минимум ни в чем не уступающее конкурентам.

Плюс к этому, Tegra 4 и по остальным характеристикам не особенно выделилась среди множества аналогичных решений, может и анонсированных позже, но реально ставших доступными примерно в одно и то же время — то есть, предыдущий чип NVIDIA явно опоздал на рынок. И мы очень надеемся, что в этот раз были устранены абсолютно все недостатки предыдущего решения. По крайней мере, с технической точки зрения он стал гораздо лучше, особенно в своей GPU-части.

Что касается CPU, то четыре уже знакомых нам универсальных Cortex-A15 ядра (как и пятое ядро-компаньон) более совершенной ревизии R3, дополнительные оптимизации и перевод производства на техпроцесс 28 нм «HPM», позволили как повысить производительность CPU-части по сравнению с Tegra 4 (максимальная частота ядер выросла до 2,3 ГГц), так и значительно улучшить энергоэффективность нового решения. Предварительные тесты NVIDIA говорят о высокой производительности и энергоэффективности вычислительных ядер в новом чипе, хотя для окончательных выводов лучше дождаться независимых сравнений с лучшими из конкурентов в условиях нашей тестовой лаборатории.

Возможно, NVIDIA немного отстает от других лидеров индустрии по освоению 64-битных ARM-ядер для того, чтобы быть безоговорочным лидером во всем, но пока 4 ГБ поддерживаемой памяти достаточно, это «отставание» не слишком актуально. Да и для полноценного использования 64-битной системы команд ARMv8 требуется программная поддержка от Google и остальных производителей ПО. Такое ядро пока что есть только у Apple, которая единолично владеет собственной инфраструктурой — не только аппаратным обеспечением, но и программным (операционная система и другое ПО).

Главное, что NVIDIA наконец-то избавилась от устаревшего графического ядра и окончательно справилась с интеграцией в мобильный чип своей самой совершенной архитектуры Kepler. Одно это уже делает Tegra K1 одним из вероятных лидеров 2014 года на рынке мобильных систем-на-чипе, предназначенных для топовых решений. Мало того, что новый мобильный GPU предлагает все возможности настольных решений, по многим параметрам превышающие функциональность конкурентов, так у них еще и лучшие в индустрии утилиты для разработчиков, а также отличная программа сотрудничества с создателями игр и есть собственная игровая платформа TegraZone.

Судя по функциональности и производительности графического ядра Tegra K1 в предварительных тестах от NVIDIA, именно этот чип может дать возможность переноса и разработки игровых приложений с качеством, аналогичным консольным проектам для игровых приставок предыдущего поколения: PlayStation 3 и Xbox 360. Да и со многими ПК-играми вчерашнего дня четыре ядра Cortex-A15 и мощнейшее графическое ядро Kepler вполне себе справятся.

Новинка позволит использовать в мобильных играх сложную геометрию с тесселяцией, продвинутые физические эффекты PhysX, сложные шейдеры и текстурирование, постобработку с применением вычислительных шейдеров и многое другое — все то, к чему мы привыкли на игровых ПК. Серьезные игры недавнего прошлого с легкостью переносятся на Tegra K1 за несколько дней или недель, как мы видим на примере Seroius Sam 3 и Anomaly 2. И с учетом TegraZone, а также большой вероятности выхода последующих версий карманной консоли NVIDIA Shield, именно такие игры могут стать одной из тех причин, которые будут мотивировать пользователей к приобретению мощных мобильных устройств.

В этот раз у компании NVIDIA получился мобильный чип, гораздо более интересный и с технологической и с рыночной точек зрения, по сравнению с предыдущим поколением. Новая версия Tegra отличается чуть более мощными CPU-ядрами, гораздо более мощным и функциональным GPU-ядром, которое в разы лучше того, что мы видели в Tegra 4. И при всех этих улучшениях энергетическая эффективность даже повысилась — новый чип потребляет не больше энергии, чем Tegra 4, а мощность его GPU значительно возросла. Похоже, что в этот раз у NVIDIA получилась удачная система-на-чипе, этакая «Tegra 4 done right» — нам кажется, что именно таким должен был быть предыдущий чип компании, вышедший в прошлом году — и тогда бы он завоевал куда большую рыночную долю.

Вроде бы все очень неплохо, но осталась еще пара вопросов. Вы заметили, что в материале нет ни слова о модемной части и прочих беспроводных интерфейсах? А все потому, что никаких изменений там нет, встроенная модемная часть в Tegra K1 отсутствует, а внешних новых чипов Icera представлено не было. Да оно и не нужно, по сути, ведь последние модификации чипов Icera поддерживают LTE, а Tegra K1 предполагается применять не только в смартфонах, требующих поддержки сотовой связи, но и в других устройствах, вроде планшетов и игровых консолей. Интересно другое — в NVIDIA осторожно намекают, что готовые смартфоны и планшеты на базе Tegra K1 не обязательно должны использовать чипы Icera. То ли в компании сдались с продвижением софт-модемов Icera и потихоньку «прикрывают лавочку», то ли просто хотят дать производителям устройств большую гибкость.

Необходимость применения дополнительного чипа для поддержки передачи данных по мобильным сетям для Tegra K1 в каком-то смысле можно считать недостатком, ведь у той же Qualcomm давно есть конкурентоспособные системы-на-чипе со встроенными LTE-модулями. Однокристальная система со встроенной поддержкой LTE все же выгоднее для производителей, что сказывается и на стоимости решений. Но это все же нельзя назвать слишком большим недостатком, который вполне может быть перекрыт мощнейшим GPU-ядром и CPU-производительностью самого современного уровня — для топовых смартфонов и планшетов это куда важнее.

Судя по всему, с возможностями и производительностью у чипа Tegra K1 все отлично, остается самый главный и больной вопрос — о доступности конечных мобильных устройств на рынке. Ведь почти со всеми предыдущими решениями NVIDIA явно опаздывала на рынок, что особенно печально сказалось на Tegra 4 и Tegra 4i. Впрочем, предсказывать будущее мы пока что не научились, а по надеждам данным NVIDIA выход мобильных решений, использующих их самые современные чипы, ожидается в первом квартале только начавшегося 2014 года, а для своевременной программной поддержки они уже обеспечили многих разработчиков ПО девкитами несколько месяцев назад.

И если планшеты, смартфоны и другие устройства (кто сказал Shield 2?) на базе Tegra K1 действительно выйдут в первой половине следующего года, как утверждает NVIDIA, то вряд ли новинка повторит «успех» своей предшественницы, которая не слишком широко используется в сторонних решениях. Кроме того, есть вероятность, что Tegra K1 не будет заменой для четвертой версии чипа, а станет топовым решением в линейке Tegra. Возможно, после выхода Tegra K1, сразу несколько чипов линейки Tegra будут одновременно производиться и применяться в мобильных устройствах разного класса и назначения. То есть, Tegra 4 и Tegra 4i могут продолжить использоваться в более простых и компактных устройствах. А может быть и под маркой Tegra K1 будет выпускаться несколько чипов с разными характеристиками — кто знает?

В первой половине года NVIDIA ожидает выход не только планшетов и смартфонов. Возможно, это будут сторонние игровые консоли, и переносные и стационарные? Впрочем, об устройствах других компаний, основанных на Tegra K1, говорить пока что очень рано, но эта система-на-чипе точно станет основой следующей версии портативной игровой консоли NVIDIA Shield. Мы предполагаем, что кроме перехода второй версии Shield на чип Tegra K1, консольная новинка компании может заполучить и более крупный дисплей, ведь устройство немаленькое и рамки вокруг экрана у первой версии имеются. Вполне можно их сократить, вместив туда экран с размером от 5,5 до 6 дюймов и разрешением FullHD, и это будет вполне обоснованный апгрейд.

 

Также NVIDIA планирует продолжить и практику выпуска референсных планшетов Tegra Note. Вы наверняка знаете о том, что такие 7-дюймовые планшеты с Tegra 4 уже продаются под различными торговыми марками в разных регионах мира: EVGA, PNY, Oysters, ZOTAC, Colorful, XOLO и др. В плюсах этих мобильных устройств: мощная начинка, своевременный выход обновлений прошивки и сравнительно низкая стоимость.

Текущее шасси Tegra Note 7 стало основой и для улучшенного референсного планшета на базе Tegra K1, новая версия которого внешне выглядит так же, но имеет экран с повышенным до 1920×1200 разрешением и объемом оперативной памяти, равным 4 ГБ. На мероприятии для прессы в офисе NVIDIA мы убедились в существовании и работоспособности таких улучшенных версий Tegra Note (на увеличенном изображении можно разглядеть ярлыки на все ПО, упомянутое в тексте статьи):

 

Вместе с нашими читателями мы надеемся, что с массовым производством и выходом на рынок у NVIDIA в этот раз все сложится много удачнее, чем у предыдущих моделей Tegra, которые частенько опаздывали с этим. Пока что не совсем понятно, от кого будет зависеть массовый выход устройств с Tegra K1 на рынок, то ли от производственных возможностей TSMC, то ли от самой NVIDIA. Но, по крайней мере, складывается впечатление, что NVIDIA изо всех сил старается устранить те задержки, на которые они в состоянии повлиять — ведь выход обновленных Shield и Note зависит почти исключительно от TSMC и NVIDIA.

P.S. Уже после окончания работы над материалом, появилась официальная информация от NVIDIA о том, что будет выпущено две версии Tegra K1, совместимых друг с другом по выводам: с 32-битными 4+1 ядрами Cortex-A15 и двумя 64-битными ядрами собственной разработки, основанной на архитектуре ARMv8 и известными нам под кодовым именем Denver. Из других отличий новых ядер — еще более высокая тактовая частота до 2,5 ГГц и кэш-память большего объема. В таком варианте Tegra станет еще более мощным игроком на рынке, но... тоже только в том случае, если чип выйдет не слишком поздно. Пока что есть лишь предположительные сроки его выхода, обозначенные как вторая половина текущего года, ну а первые рабочие чипы у NVIDIA уже есть и они были произведены совсем недавно.

 

 

 

6 января 2014 Г.

NVIDIA Tegra K1 — SoC Kepler

NVIDIA Tegra K1

SoC Kepler

NVIDIA , , . IT. , , 90- , 3D- — RealityEngine Silicon Graphics, . , .

, 3D- — 3dfx , . NVIDIA — , GPU ( , S3 ) .

? , . 3D- . GPU , .

NVIDIA 3D- Lexus . , 3D-, 1000 , 400 500 . , — !

, , — 3D- ? , Tegra ! , NVIDIA , Tegra .

NVIDIA, , . , , NVIDIA Tegra , — GPU .

, -- NVIDIA Tegra , CPU-, , GPU , , Tegra 3, , Tegra 4. , , CUDA- Kepler — Tegra.

, , Logan, - . NVIDIA SIGGRAPH 2013, . --, GPU- .

Tegra K1 NVIDIA , — International CES 2014, -. Tegra 2014 . , NVIDIA , .

NVIDIA Tegra

, Tegra K1 , , , - . GPU Kepler , Tegra K1. GPU , — , Tegra .

, GPU . Tegra K1 , 192 CUDA- Kepler, , OpenGL ES 3.0, OpenGL 4.4, DirectX 11 CUDA 6.

CPU-, . , - 64- CPU- NVIDIA, ARMv8 Tegra (. ), Cortex-A15 - -«» ( Cortex-A15), .

CPU- , Cortex-A15, Tegra 4. -, Tegra 4, NVIDIA Tegra K1, - — 4+1 A15 R3, Tegra 4 R2. R3- , , , , .

Tegra K1, , (ISP), 1,2 100 . UltraHD, 4K ( Tegra 4, ) , HDMI 1.4a, H.265 . - USB 3.0.

NVIDIA 28- «HPM» TSMC, 28 «HPL» , Tegra 4. , TSMC 28 , «HPM» , , «HPL» . , Tegra 4 1,92,0 , Tegra K1 CPU- 2,3 .

Kepler

- , NVIDIA Tegra. , Tegra 4, , - Kepler .

, Tegra 4 Fermi , Kepler, NVIDIA GPU, , . NVIDIA , Maxwell , .

, Kepler, Tegra, ( GK2xx), NVIDIA . , Tegra K1 Kepler? GPU GK20A 192 CUDA-, - , , ROP.

Kepler, GPU GPC, SMX. , , 192 , TMU.

, GPU Tegra K1 , GPC, SMX. 192 , , ROP, TMU, - .

? , GK20A Tegra K1 GeForce GT 640 GK107, CUDA-. GK20A — TMU ROP. — GPU , ! , GPU Tegra K1 950 , GeForce GT 640.

, GK107 GK208, GPU Tegra K1. GK107 GK208 SMX, 192 CUDA- , GK208 128- 64- . GPU : GeForce GT 720M, 730M, GT 735M GT 755M, : GeForce GT 635 GT 630 GT 640.

, GPU . ROP TMU, , . , . , GK20A GPU, GPC SMX SMX , GPU .

, Kepler. — . — Kepler , , .

, / ( NVIDIA — 50-) , , OpenGL ES 2.0.

- , . 3D-, , , , .

NVIDIA - , OpenGL 4, Tegra K1 60 FPS. Island, GPU.

- Stone Giant BitSquid Fatshark, Direct3D 11 ? Tegra K1 , GPU !

NVIDIA , Kepler. , GPU, bindless-. 128 , , Kepler « » , , :

1 , , MegaTexture, id Software. , bindless- CPU , , .

, GPU Kepler . , , , .

, , , , . NVIDIA GPU, .

, Tegra K1 (primitive culling), Z Cull, Early Z Z-, : DXT, ETC, ASTC (Adaptive Scalable Texture Compression).

ASTC — , ARM, OpenGL OpenGL ES. DXT ETC, ( .. HDR), .

, NVIDIA Kepler, 43 76%.

Kepler Tegra K1 , 3D- . , GPU 2D-, (path rendering). (), , , ..

, , PostScript, PDF, SVG, Flash, TrueType OpenType, «» (canvas) HTML 5.

CPU, GPU- : ( ), (, , CPU), . : , 3D- , CPU-.

NVIDIA , 2D- path rendering, CPU, , . NVIDIA Tegra K1, CPU GPU- . , , HTML- SVG- GPU , .

Tegra K1

, Tegra K1 Kepler, GPU- Tegra NVIDIA. Tegra K1 OpenGL ES 3.0 OpenGL 4.4, DirectX 11, , NVIDIA CUDA 6.0 OpenCL.

, GPU , . , GeForce GTX Titan, ! NVIDIA 2 , , 2,5-3 , SoC, 5- ( ) .

3D-: RealityEngine 90- , GPU NVIDIA 1999, 2001 GPGPU- GPU . , NVIDIA.

GPU 3D-, , SoC , . , 3D-.

NVIDIA - Kepler, Unreal Engine. , , , HDR- .

Epic Games — , . , GPU, , :

3D- , , Watch_Dogs, Battlefield 3/4, Assasin's Creed IV.

( , !) Tegra K1. Kepler , :

Tegra K1 , 3D- «» : . , , PhysX, ( ) , .

Tegra K1 3D- — . GLBenchmark Egypt - NVIDIA.

— — FaceWorks Ira. , GTC 2013 , Tegra K1.

, - , 2-3 5 . , : HDR-, FXAA (subsurface scattering), . - , , . , , .

- , , 3D-, , App Annie Flurry Analytics , Google Play Market 2012 76% , 24%. , , 67% .

, , 55% , , (48%), 5-13% , . , - , — .

DFC Intelligence , . 3D- . , 2D-, .

, , , ? Android , . , NVIDIA , 3D-.

— , . , GameWorks Tegra K1 Kepler, SDK, , , , VisualFX SDK, Core SDK, Graphics Lib, Game Compute Lib, Optix PhysX. , NVIDIA Visual Studio NVIDIA Nsight Tegra — . :

GameWorks NVIDIA, : VisualFX SDK — , Graphics Lib — , PhysX SDK — , 500 , Game Compute Lib — CUDA, DirectX GLSL, Optix SDK — , .

NVIDIA Android Visual Studio, NVIDIA Nsight Tegra. NVIDIA GeForce Tegra K1 .

, NVIDIA , : CryEngine, Unreal Engine, id tech 5, Frostbite, Unity, Source . , NVIDIA , PhysX.

, Unreal Engine 300 ( : Bioshock Infinite, Hawken, Borderlands 2, Mass Effect 3, Gears of War 3, Batman Arkham City) . Unreal Engine 4 , .

(PlayStation 4 Xbox One), , (deferred) , , , bindless- ASTC, , DirectX 11 OpenGL 4.4.

OpenGL 4 Unreal Engine 4 . Kepler Tegra K1 OpenGL ES 3.0. , ( , , ) , , Unreal Engine 4 , NVIDIA.

Unreal Engine 4 Demo Shooter, , . , . Android, NVIDIA Tegra K1 OpenGL 4.4 - .

, Serious Sam 3: BFE, 2011 , Tegra K1 - ! - , DirectX, OpenGL 4, Kepler Tegra K1 . Direct3D, Tegra K1 , NVIDIA .

, Tegra K1 GPU, . 11 Bit Studios, Anomaly 2 tower defence, 2013 Android . OpenGL ES , , Tegra K1, OpenGL 4 - !

, - Tegra K1 . , Tegra K1 60 FPS , PhysX (, ..), HDR- . Google Play (Anomaly 2 Benchmark), Tegra K1.

11 Bit Studios , Tegra K1, Android- — . OpenGL ES - ( ), Kepler Tegra K1 , .

«» , . - , Android NVIDIA Tegra K1, - Trine 2. , NVIDIA, , !

, API OpenGL, Android, Linux Apple, . SteamOS Valve — , Linux Steam-, OpenGL . NVIDIA, API .

, . NVIDIA OpenCL (, ). NVIDIA , GPGPU — !

-, 2006 , G80 , GPGPU-. , Tegra K1 Kepler, . , Kepler, — 100% GTX Titan , : 64 (shared) - ..

(FP64) NVIDIA Kepler ( GK10x) — 1/24 . NVIDIA , GPGPU: , :

Tegra K1 CUDA , Tegra Tesla. CUDA 6 Developer Tools , : NVIDIA Nsight Eclipse Edition, Visual Profiler, Cuda-gdb, Cuda-memcheck .

, 3D-, - GPGPU- NVIDIA. , , GPU, — GPGPU . NVIDIA .

Kepler Tegra K1, - , , , , , , , .

NVIDIA Tegra K1 , Tegra 4. Chimera 2, .

, GPU, . Kepler — . GPU- Chimera 2, — Tegra K1.

Tegra ISP ( , Tegra 4, ). ISP 600 , 1,2 /. ISP 100 , 14- .

? , , , tone mapping ( ) 30 , , , — 4096 64 64, : , . — , Chimera 2 .

- . . , , , NVIDIA , , /, , :

- , NVIDIA , (18 ) ISP3 , Tegra 4.

— tone mapping 30 , GPGPU- Kepler. , — , Tegra K1 .

, Chimera 2 Tegra K1 CPU GPU. , GPU, , CPU, .

Chimera 2 - , (computer vision), . , : , , , «» .. .

, Tegra NVIDIA, — Tegra .

, , , -- , , , , « » .

NVIDIA , , , - . , , — , .

, Tegra K1. , NVIDIA — - , , .

CPU- Tegra K1 — Cortex-A15 , . , SoC NVIDIA , CPU- Tegra K1 2,3 — , , (, - , ). Cortex-A15 .

NVIDIA : Tegra 4 Tegra K1. CPU- «» : R2 R3, . , — 28 «HPM», , .

CPU- Tegra. , Tegra 40% SPECint2k. , .

, -- NVIDIA, ? , Qualcomm , Apple 64- Cyclone.

, NVIDIA Octane , Tegra K1 CPU-. NVIDIA , Qualcomm Snapdragon 800 Tegra K1 64- Apple A7, 1,3 . NVIDIA , .

CPU- , Tegra 3, . CPU-, GPU-, ? Tegra 4 Tegra K1:

, , GPU Tegra 4. ( ) , , . , , Kepler , - , L2- Tegra K1 .

, Tegra 4 Tegra K1 ! , . , GPU Tegra K1 ... — , .

, , - Tegra K1. , Xbox 360 10 — 256 /. , GPU Tegra K1 , . NVIDIA PlayStation 3 Xbox 360, ( 10 Microsoft) .

, Sony CPU-, GPU, . Tegra K1 Kepler, . , , , Tegra K1 GPU CPU, : PlayStation 3 Xbox 360. , GPU, .

Tegra K1 , . , , — , , , . , , , , . , — . NVIDIA : TegraZone, .

, NVIDIA Tegra K1 . GFXbench 2.7.5 GPU- Tegra K1 Adreno 330 Snapdragon 800 PowerVR G6400 Apple A7, - 7-9 .

GFXbench 2.7.5, , API Tegra K1, , NVIDIA ! 3D- NVIDIA .

Tegra K1 ? , Kepler , , , Z- .. Kepler , .

. Kepler , GPU (power gating), ( SMX, GK20A ), , .

«» Kepler — : . , Maxwell, Kepler GPU.

NVIDIA , , Tegra K1 , . Tegra K1 Snapdragon 800 Apple A7 3D- GFXBench 3.0:

, -- 2,5 ( ) Tegra K1 , , , Tegra K1 3D- , PowerVR G6400 Apple A7, iPhone 5S, Adreno 330 Qualcomm Snapdragon 800 ( Sony Xperia Z Ultra).

NVIDIA, . NVIDIA, Kepler 1,5 -- Apple 1,5 Snapdragon 800, . , , — ! , NVIDIA - , , .

--, , , . — , , . SoC , — .

, , . , NVIDIA Tegra 4. CPU- , GPU- . . , - , , GPU . NVIDIA 3D- , .

, Tegra 4 , , — , NVIDIA . , . , , GPU-.

CPU, Cortex-A15 ( -) R3, 28 «HPM», CPU- Tegra 4 ( 2,3 ), . NVIDIA , .

, NVIDIA 64- ARM- , , 4 , «» . 64- ARMv8 Google . Apple, — , ( ).

, NVIDIA - Kepler. Tegra K1 2014 --, . , GPU , , , TegraZone.

Tegra K1 NVIDIA, , : PlayStation 3 Xbox 360. - Cortex-A15 Kepler .

, PhysX, , — , . Tegra K1 , Seroius Sam 3 Anomaly 2. TegraZone, NVIDIA Shield, , .

NVIDIA , , . Tegra CPU-, GPU-, , Tegra 4. — , Tegra 4, GPU . , NVIDIA --, «Tegra 4 done right» — , , — .

, . , ? , , Tegra K1 , Icera . , , Icera LTE, Tegra K1 , , , . — NVIDIA , Tegra K1 Icera. - Icera « », .

Tegra K1 - , Qualcomm -- LTE-. LTE , . , GPU- CPU- — .

, Tegra K1 , — . NVIDIA , Tegra 4 Tegra 4i. , , NVIDIA , , 2014 , .

, ( Shield 2?) Tegra K1 , NVIDIA, «» , . , , Tegra K1 , Tegra. , Tegra K1, Tegra . , Tegra 4 Tegra 4i . Tegra K1 — ?

NVIDIA . , , ? , , Tegra K1, , -- NVIDIA Shield. , Shield Tegra K1, , . , 5,5 6 FullHD, .

NVIDIA Tegra Note. , 7- Tegra 4 : EVGA, PNY, Oysters, ZOTAC, Colorful, XOLO . : , .

Tegra Note 7 Tegra K1, , 1920×1200 , 4 . NVIDIA Tegra Note ( , ):

, NVIDIA , Tegra, . , Tegra K1 , TSMC, NVIDIA. , , , NVIDIA , — Shield Note TSMC NVIDIA.

P.S. , NVIDIA , Tegra K1, : 32- 4+1 Cortex-A15 64- , ARMv8 Denver. — 2,5 - . Tegra , ... , . , , NVIDIA .