Nvidia Tegra K1: удивительная штучка

   Автор статьи: Дмитрий Романовский

Мобильные устройств в лице смартфонов и планшетов стали вездесущими. Они, стремясь к универсализации, постепенно подминают под себя традиционные персональные компьютеры. Вот почему так важен вопрос с появлением потрясающих трехмерных игр уровня консолей Xbox 360 и PlayStation 3.

Nvidia пристрастилась выбирать выставки CES для запуска мобильных однокристальных систем семейства Tegra. Нынешнее мероприятие в Лас-Вегасе исключением не стало, явив чипсет Tegra K1, прежде известный под кодовым обозначением Project Logan.

Привлекательность Tegra 2 была выражена в первой двухъядерности на Android-платформе. Tegra 3 попыталась проделать схожий шаг, но уже с четырьмя вычислительными ядрами. Tegra 4 лишь сделала все вещи быстрее. Tegra K1 покончила с трюками, сосредоточившись на важных аспектах.

Nvidia подготовила Tegra K1 в двух исполнениях. Одна версия идет с четырьмя процессорными ядрами (точнее, четырьмя основными плюс одним вспомогательным) на базе микроархитектуры ARM Cortex-A15. Второй вариант получил два ядра на собственном 64-разрядном ARMv8-решении Nvidia Denver. Что важно, обе конфигурации Tegra K1 интегрируют полноценную реализацию настольной видеографической микроархитектуры Nvidia Kepler. Начиная с этого момента, вся мобильная видеографика будет подкреплена точно такими же идеями, которые внедряются в настольные видеокарты. Кроме того, если указанного факта недостаточно, все грядущие проекты Nvidia GeForce будут начинаться прежде всего как мобильные, ибо компания осознала, что за этим таятся широчайшие перспективы.

Tegra K1 также стал ракетой-носителем для Project Denver, первого ARMv8-процессора авторства Nvidia.

 

Вариант первый: четыре ядра ARM Cortex-A15

Первая конфигурация Tegra K1, опирающаяся на процессорные ядра ARM Cortex-A15, пошла в производственный цикл в конце декабря 2013 года. OEM-производителям она станет доступной в первом квартале, и коммерческие устройства на ее базе появятся в первом полугодии.

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

Tegra K1 получила новейшую ревизию Cortex-A15 (r3p3) против таковой в Tegra 4 (r2p1). ARM Holdings постоянно обновляет свой интеллектуальный багаж, устраняя обнаруженные в процессорах ошибки и иногда усиливая момент производительности. В случае с Tegra K1 основные улучшения явлены по части эффективности электропитания за счет добавления более четкого тактирования логических элементов.

Сочетание новой ревизии Cortex-A15 с переходом на 28-нм технологический HPM-процесс наделяет Tegra K1 повышенной производительностью на том же уровне энергопотребления либо меньшей энергопрожорливостью при такой же скорости вычислений. Впрочем, тенденция в мобильном мире такова, что OEM-производители преследуют извлечение максимальной производительности, а никак не оптимизацию в форме баланса с хорошим энергопотреблением.

Наибольшая тактовая частота центрального процессора Tegra K1 поднялась с 1,9 до 2,3 ГГц, что суть прямой результат миграции на 28-нм HPM-базу. Максимум частоты не зависит от числа активных ядер. По отношению к производительности Tegra 4 следует говорить о ее усилении на 20%.

Каких-либо изменений в конфигурации кешей L1/L2 не сделано: мы по-прежнему имеем дело с совместно используемыми 2 Мбайт кеш-памяти второго уровня и 32 Кбайт инструкций и 32 Кбайт данных в первичном кеше на каждое ядро.

Ядро-компаньон может масштабироваться до 1 ГГц, хотя обычно его тактовая частота колеблется вокруг 500 МГц.

Ядра центрального процессора и видеографика обслуживаются 64-разрядным интерфейсом оперативной LPDDR3-памяти.

Монтажи кристалла Tegra K1 выполнены по-разному: «корпус на корпусе», отдельно, а также в иной форме для стандартного ноутбучного применения.

 

Вариант второй: два ядра Nvidia Denver

Три года назад, также на выставке CES, Nvidia объявила, что работает над собственным ARM-микропроцессором, проходящим под кодовым обозначением Denver. Он позиционировался универсальным решением для всего, от персональных компьютеров до серверов, без прямого упоминания о смартфонах или планшетах. Во второй половине 2014-го Nvidia собирается предложить второй вариант Tegra K1 на фундаменте двух ядер Denver, причем 64-разрядных. Подробностей о таком исполнении известно не так много.

Учитывая 28-нм HPM-природу Tegra K1, следует ожидать, что Denver-версия исповедует такую же. Раз Nvidia заявляет о совместимости этих двух кристаллов на уровне контактов, значит, оба эксплуатируют вышеупомянутый 64-разрядный интерфейс оперативной LPDDR3-памяти.

Ядро-компаньон исчезло, равно как пропало глупое сочетание основных четырех ядер. В руках оказываются два, по-видимому, больших ядра с более тесной связью — другими словами, правильный проект дизайна центрального процессора для мобильных устройств. По иронии судьбы, мы говорим о Nvidia, компании, которая задала ARM-рынку гонку за многоядерностью и которая первой, исключая Apple и Intel, пришла к выводу, что четыре ядра — в случае со смартфонами и планшетами далеко не лучшее решение в преследовании хорошей производительности на ватт.

Долгое время считалось, что Denver окажется перевоплощением оригинального подхода Nvidia к x86-процессору. Роились слухи, мол, будет использован двоичный транслятор для преобразования x86-кода в определенный внутренний формат (нужный для надлежащего планирования, отправки и выполнения), прежде чем тот достигнет непосредственно ядра центрального процессора. Но всё вышло иначе, и мы видим прямую ARMv8-совместимость.

Однако есть мнение, что в Denver всё же реализована некоторая форма уровня программной абстракции, которая прерывает машинный код ARMv8, транслирует его, а затем оптимизирует и преобразует в более дружественный формат, и далее доставляет на подлежащее оборудование. В прошлом мы уже сталкивались с трансформацией кода и двоичной трансляцией (например, в продуктах Transmeta начала 2000 годов), но никогда этого не было сделано хорошо на потребительском клиентском уровне.

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

Решение ARM описанной проблемы заключено в использовании больших, спекулятивных, с выполнением вне очереди ядер плюс обычных ядер с исполнением в заданной последовательности — последние активизируются, когда нет необходимости в большой производительности. Добавьте сюда логику для переключения между двумя типами ядер, и вуаля.

Если Denver действительно следует путем двоичной трансляции с оптимизацией и преобразованием кода, тогда мы получим иное решение по сохранению энергопотребления при росте производительности в мобильных процессорах. Можно построить относительно широкий суперскаляр (Nvidia утверждает об исполнении семи инструкций за такт, хотя важно помнить, что мы говорим о формате внутренних инструкций процессора, и потому не понятно, какие типы из них могут выполняться одновременно), и при этом перебросить на плечи программного обеспечения всю сложность планирования и параллелизма на уровне машинных команд. С хорошим «движком» преобразования кода центральный процессор будет получать внушительные блоки инструкций, которые уже оптимизированы для пикового параллелизма. Ну а изъятие из процессора обсчета планирования и внеочередного исполнения снизит энергопотребление.

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

Nvidia наделила Denver двумя кешами первого уровня: 128-Кбайт для команд и 64-Кбайт для данных. Достаточно необычное несбалансированное сочетание кешей в клиентской машине, что, очевидно, имеет отношение к уникальной микроархитектуре Denver. Кстати, тот же процессор Transmeta Efficeon (с преобразованием кода второго поколения) располагал аналогичными размерами кешей (и исполнением восемью инструкций за такт). Максимум тактовой частоты для Tegra K1 заявлен на уровне 2,5 ГГц, что для столь суперскалярной реализации звучит очень серьезно, особенно если мы говорим о 28-нм HPM-реализации.

Nvidia, развернувшаяся на CES 2014, продемонстрировала Tegra K1 в Denver-исполнении в окружении мобильной платформы Google Android 4.4 KitKat. Кристалл буквально вот-вот покинул фабричные стены и уже готов к прототипному использованию. Так что надежды на запуск коммерческого производства на второе полугодие вполне себе реализуемы.

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

 

Видеографика

Пусть Denver-вариант Tegra K1 сумел удивить сам по себе, однако всё основное внимание в новом кристалле Nvidia должно быть приковано к видеографике. До сих пор в чипсетах Tegra применялись GeForce-ядра с ультранизким напряжением, причем выполненные не в рамках универсальной архитектуры, подобной на NV40. Проект никогда не отличался ни силой по части производительности, ни бережным отношением к энергопотреблению. Кроме того, масса критики была направлена на его узкий интерфейс памяти.

Начав заниматься Project Logan почти три года назад, Nvidia решила отказаться от GeForce-ядер в пользу сочетания производственных планов на мобильную и настольную видеографику. Tegra K1 стал первым из мобильных продуктов, получившим действительно настольную видеографику — Kepler. Более того, отныне все видеографические чипсеты фирмы будут разрабатываться вначале с точки зрения мобильного применения, и только затем масштабироваться в настольных продуктах.

Что интересно, переход Kepler в мобильный мир характеризуется такими же проектными нормами, которые сделаны для ее настольного варианта: те же размер регистрового файла, кеш-память первого уровня и ISA-совместимость. Предположим, мы взяли видеокарту GeForce 740M, которая расходует 19 ватт энергии. Далее мы вычитаем 3 ватта, уходящие на операции ввода-вывода с памятью, обращение к PCIe и прочие косвенные вещи. Затем отнимаем 6 ватт, теряющиеся в ходе электрических утечек. После этого избавляемся от двух потоковых мультипроцессоров в пользу одного, дабы оказаться с энергопотреблением в пределах 10 ватт. Наконец, понижаем тактовую частоту с 1 ГГц до 900 МГц и уменьшаем напряжение — итоговые 2-3 ватта мы получаем без какой-либо смены подлежащей архитектуры. Другими словами, Kepler-видеографика легко воплотима на мобильном уровне.

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

«Движки» замощения (тесселляции) и геометрической обработки остались такими же, как в настольной Kepler. На месте поддержка 64-разрядных вычислений с плавающей запятой (FP64). Есть четыре блока растровых операций (ROP) и восемь блоков работы с текстурами — в десктопной Kepler таковых насчитывается 16. Основные изменения случились по части межсоединений.

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

Nvidia обновила модули работы с текстурами, наделив их поддержкой адаптивного масштабируемого сжатия текстур (ASTC), — в настольной Kepler этого нет. Компания также надеется, что использование подхода сжатия цвета позволит сократить требования к пропускной способности памяти в ходе обработки пользовательского интерфейса, а не только в трехмерных играх.

Проектные изменения, случившиеся в мобильной версии Kepler, опускают энергопотребление ниже более чем приемлемых 2 ватт. Nvidia приводит диаграмму, из которой следует, что Kepler характеризуется такой же производительностью (в тестах GFXBench 3.0), что и видеографика в Apple A7 и Qualcomm Snapdragon 800, но при этом потребляет значительно меньше энергии. Даже если в конечных продуктах будет проведена оптимизация для пиковой производительности, а не бережного отношения к энергопотреблению, можно смело заявлять, что опасений на предмет энергопрожорливости Tegra K1 быть не должно.

Kepler, в отличие от видеографики предыдущих поколений Tegra, обращается к полностью унифицированной архитектуре, совместимой с OpenGL ES 3.0, OpenGL 4.4, DirectX 11 и CUDA 6.0 И самым притягательным в этом всём является совместимость на API-уровне — огромный шаг Nvidia вперед, означающий мгновенное привлечение разработчиков игр, которые смогут создавать кросс-платформенные тайтлы, эквивалентные на всем спектре устройств: персональных компьютерах, игровых консолях, мобильных платформах. В подтверждение вышесказанного Nvidia продемонстрировала, как выглядит Unreal Engine 4 на тестовой системе, работающей под управлением Google Android.

Конечно, было бы преждевременным говорить о переносе игр с современных игровых консолей на Tegra K1, но для приставок предыдущего поколения (Xbox 360 и PlayStation 3) это возможно, так как чипсет получился сильнее последних. На частоте 950 МГц Kepler по силам отметиться 365 гигафлопсами (192 ядра CUDA и 2 флопса на каждое). Да, пиковая производительность фильтрации текстур и, что более важно, пропускная способность памяти ниже таковых показателей у консолей, но эти характеристики не станут ограничивающим фактором для потенциального портирования игр.

Предварительные испытания смоделированной игрой T-Rex в рамках бенчмарка GFXBench, причем во внеэкранном 1080p-разрешении, то есть без ограничения частоты вертикальной синхронизации, показали видеографическую силу мобильной Kepler. Прототипный планшет выдал 60 кадров/с, опережая Tegra 4 (16 кадров/с на оборудовании Toshiba eXcite Pro), Snapdragon 800 (24 кадра/с на Galaxy Note 3) и A7 (27 кадров/с на iPad Air).

Более того Tegra K1 удалось обогнать интегрированную видеографику Intel HD 4400 (57 кадров/с) и HD 4200 (47 кадров/с), встроенную в ноутбучные процессоры Core i5 Haswell. Зато дискретная видеокарта Nvidia GT 740M в пух и прах разбила новинку, выбив 112 кадров/с.

Nvidia показала плагины NSight Tegra для интегрированной среды разработки Microsoft Visual Studio, позволяющие переносить игры с Xbox 360 и PS3 на Android-платформу. Вообще же любые игры, подготовленные для SteamOS, управляющей консолями Valve Steam Machine платформы, очень легко перевести на рельсы мобильной Google-системы: как только осуществлено портирование на OpenGL, всё остальное становится простым делом. Компания продемонстрировала игрушку Serious Sam 3, запущенную на тестовом оборудовании Tegra K1, и, как заявлено, на это ушло где-то пару недель, притом что основная часть проведенной работы заключалась в отображении управления в соответствии с Android-окружением.

 

Сигнальный процессор и видео

Кристалл Nvidia Tegra K1 получил серьезные улучшения на стороне обработки сигналов. В 2013 году мобильные чипсеты начали получать по два сигнальных процессора, что позволило OEM-производителям наделить устройства набором новых возможностей в плоскости изображений: например, снимать фотографии в ходе видеосъемки или одновременно включать фронтальную и тыловую камеры. В Tegra K1 интегрированы как раз-таки два сигнальных процессора, причем первоклассного уровня.

Напомним: сигнальный процессор занимается обработкой конвейера изображений, когда дело доходит до фотографий, видео, преобразования из массива Байера в RGB-раскладку (демозаики), автофокусировки, автоэкспозиции, выставления баланса белого, устранения шумов, коррекции оптики и т. п.

Каждый из двух сигнальных процессоров в Tegra K1 способен обработать 14-разрядные данные на скорости 600 мегапикселей/с и поддерживает камеры с максимумом разрешающей способности 100 мегапикселей. Общая пропускная способность заявлена на уровне 1,2 гигапикселей/с. Для сравнения: этот показатель Tegra 4 лежит в пределах 400 мегапикселей/с при 10 разрядах на пиксель.

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

Tegra K1 несет совместимость с возможностями Chimera 1.0, дебютировавшими в планшетном проекте Tegra Note 7: слежение за объектами съемки, постоянный HDR-режим, замедленный видеозахват, пакетное фотографирование с кадрами полного размера. Всё это осталось, перерастая в Chimera 2.0: временный пиксельный биннинг (суммирование зарядов восьми смежных ячеек КМОП-датчика в один суперпиксель) для снижения шумов, ускоренная панорамная съемка, видеостабилизация, убыстренный предпросмотр накладываемых эффектов. С высокоуровневых позиций Chimera-подходы не изменились: ядра либо запускаются на мощности центрального процессора, либо отдаются на откуп видеографике, до или после включения сигнального процессора, в разных пространствах изображения (Байера или RGB).

Tegra K1 поддерживает кодирование и декодирование 4K-видео 2160p@30 — соответственно в рамках профилей H.264 High Profile Level 4.2 и H.264 High Profile Level 5.1. Для видеокодирования эксплуатируются отдельные блоки: H.264, VP8, VC1 и прочие. Видеодекодирование H.265 не полностью подкреплено акселерацией на аппаратном уровне. Кристалл способен управлять внешними 4K-дисплеями, подключенными через Embedded DisplayPort (eDP) 1.4, LVDS и HDMI 1.4b.

Периферийные коммуникационные возможности Tegra K1 включают три порта USB 2.0, два USB 2.0, флеш-хранилище eMMC 4.5.1 и четыре PCIe.

 

Резюме

В прошлом Nvidia удавалось предлагать изворотливые альтернативы чипсетам Qualcomm, причем делая ставку на их ценовую доступность. Основным коммерческим аргументом Tegra K1 является мобильная видеографика Kepler. Однако смартфонное пространство по-прежнему будет избегать Nvidia-кристалл — куда перспективнее видится появление планшетов на базе Tegra K1, поскольку тут можно шире развернуться, преследуя цели переноса консольных игр на Android-платформу.

Tegra K1 решает многие вопросы, хотя и оставляет открытым серьезный аспект, связанный с бизнес-моделью: как именно разработчики игр намерены зарабатывать столько, чтобы портирование тайтлов оказалось выгодным занятием.

Возможности Tegra K1 могли бы удачно отразиться на планшетных усилиях Microsoft. Запуск игрушек класса Grand Theft Auto V на мобильных устройствах видится очень привлекательным для большой группы потребителей. Конечно, не многие захотели бы наслаждаться консольными играми на 5-дюймовых экранах, но привлекая сюда док-станцию в форме контроллера или планшет в сочетании с подставкой и беспроводным контроллером, вопрос с удобством пользования решается элементарно.

У Nvidia ушло пять поколений мобильных чипсетов, прежде чем получилось что-то путное, если рассматривать момент мощной мобильной видеографики. И это обязательно найдет воплощение в новых генерациях планшета Tegra Note 7 и карманной приставки Shield.

Центральный процессор Tegra K1 в варианте с Cortex-A15 не особо интересен и чем-то выдается. Зато внимание приковано к модификации Denver: слишком много рисков, чтобы сделать нечто чрезвычайно энергоэффективное — зато только два больших ядра вместо дурацкой затеи с мобильной многоядерностью в виде четырех и больше вычислительных ядер.

Nvidia еще не сумела себя зарекомендовать в плане ответственного подхода к срокам готовности Tegra-чипсетов. Вот почему есть сомнения, что Denver-модификация Tegra K1 увидит свет в назначенное время. Как ожидается, в рамках мероприятия GPU Technology Conference 2014, которое пройдет в конце марта, мы узнаем много больше, в том числе о продуктовом графике.

 

Подготовлено по материалам AnandTech. 

 

 


© СОТОВИК

Авторизация


Регистрация
Восстановление пароля

Наверх