Что ж вышел Pixel 6: появились обзоры, мы всё поняли, хайп прошел. Или нет?

Не пугайтесь про Pixel 6 и Pixel 6 Pro еще будет куча контента! В любом случае, теперь мы можем спокойно поговорить про самую главную и наверное самую недооцененную фишку нового смартфона Google — процессор Tensor.

Это необычный чип. Google Tensor не похож на, то что делает Samsung, Qualcomm, даже Apple и на то что делал HUAWEI тоже. Tensor — это нечто особенное.

В своё время Google показал, как делать вычислительную фотографию. И судя по тому, что мы узнали про Tensor, теперь Google показывает всей индустрии как делать процессоры.

Поэтому сегодня подробно разберем по полочкам, что есть Google Tensor. Поясним за странные инженерные решения. Расскажем про секретное оружие Google и раскроем пару секретов про Google Tensor 2.

Чем Google Tensor не является…

Вступление было достаточно пафосным. Поэтому давайте чуть вернёмся на землю и посмотрим правде в глаза: Google Tensor – не идеальный процессор. Он не самый быстрый, не самый энергоэффективный и далеко не такой вертикально интегрированный, как А15 Bionic. Ведь в процессорах Apple, в отличие от Google, свой дизайн ядер, своя графика, и вообще все свое, кроме модема, но и это вопрос времени.

Но есть в Google Tensor такое, что выделяет его среди всех конкурентов. И речь идет про уникальные инженерные решения, до которых кроме Google никто не додумался. И начнем мы с такого решения, как компоновка.

Компоновка

Такой вопрос. Кто у нас в мире главный модельер? Или скажем так, самый влиятельный модельер? Как думаете? Кто-нибудь из дома Gucci? Armani? Prada? Может Канье Уэст?

Нет! Это компания ARM, которая, как положено хорошему модельеру, каждый год выпускает новую коллекцию дизайнов ядер Cortex. Дальше эти дизайны лицензируют вендоры: Qualcomm, Samsung, MediaTek и теперь Google. Они и воплощают их в виде процессоров для наших смартфонов.

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

Например, в этом году на пике моды трёхкластерная компоновка 1+3+4, где есть одно огромное ядро Cortex-X1, три мощных ядра Cortex-A78, и четыре энергоэффективных Cortex-A55.

Такая компоновка используется в Snapdragon 888, Exynos 2100, да и остальные делают примерно то же самое, танцуя в ритме 1+3+4.

Но только не Google! Эти ребята делают какую-то особую дичь. В Google Tensor в качестве энергоэффективных ядер, как и у всех используется четыре ядра Cortex A55. Но вместо одного альфа ядра, тут сразу два Cortex-X1. А вместо актуальных на текущий момент Cortex-A78, они используют два ядра Cortex-A76.

А это даже не прошлый, а позапрошлый дизайн, который вышел еще в 2018 году. Это времена Snapdragon 855. Например, Pixel 4 работал на таком процессоре.

Зачем Google так делает? Ведь в использовании старых ядер нет ни экономической выгоды, ни технических причин. А всё дело вот в этой картинке.

Здесь вы видите сравнение ядер Cortex A76, A77 и A78 по производительности, потребляемой энергии и площади при использовании одинакового техпроцесса 7 нм.

И тут мы видим, что Cortex A76 из этой троицы — это самые компактные и энергоэффективные ядра и разница тут огромная. То есть смотрите, если Google уже влепил два огромных мощных ядра X1, они просто не могут поставить им в пару практически такие же мощные A78. Процессор будет тупо перегреваться. А мы знаем как перегревается Snapdragon 888 с одним ядром X1.

Поэтому Google взяли Cortex-A76 — как самые оптимальные средние ядра. И тем самым у них получилась куда более честная и логичная трёхкластерная компоновка 2+2+4.

Более того, Cortex-A76 в Google Tensor — это не те же самые ядра, что были 3 года назад и стоят в Pixel 4. Ведь тогда процессоры разрабатывалась по техпроцессу 7 нм, а Google перенёс старый дизайн на новый техпроцесс 5 нм, что позволило сделать ядра еще меньше и энергоэффективнее. И скорее всего, так сделать было сложнее, чем просто использовать актуальные A78 изначально заточенные под 5 нм.

Круто! Но зачем нужно было создавать себе сложности, и брать два ядра X1? Так процессор будет работать быстрее? Нет!

По одноядерной производительности мы вполне логично получаем паритет с Qualcomm Snapdragon 888 и Samsung Exynos 2100. А вот в многопотоке Tensor по полной сливает всем актуальным чипам.

Тогда зачем Google пришлось экспериментировать с компоновкой? А ответ кроется в понятии гетерогенные вычисления. Смотрите.

Гетерогенные вычисления

Да, процессор Google в бенчмарках – не чемпион, хотя и не аутсайдер, это тоже стоит признать, но Snapdragon 888 объективно в бенчмарках быстрее. По крайней мере в тестах CPU.

Но дело в том, что бенчмарки не показывают как процессор будет работать в реальной жизни.

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

Тоже самое и с процессорами, очень редко бывает когда нагружается какой-то отдельный вычислительный блок, например, только одно мощное ядро.

Поэтому реальный тест на прочность процессора происходит когда одновременно происходят вычисления совершенно разного типа, и соответственно нагрузка идет на всю систему на кристалле, а не только на CPU или GPU. Это и называется гетерогенными вычислениями.

Яркий пример таких вычислений — это работа приложения “камера”. В этом случае нагрузка на центральный процессор не максимальная, а средняя. Но одновременно с ЦП тут на полную трудится сигнальный сопроцессор ISP, постоянно считая и обрабатывая данные с матрицы. Трудится графический процессор, особенно, если запустить AR. Нейронный движок постоянно распознаёт, сегментирует изображение. И всё это в реальном времени со скоростью 60 кадров в секунду. И вот именно под такие средние гетерогенные нагрузки и спроектирован Google Tensor.

Одни из руководителей команды Google Silicon Фил Кармак описывает это так:

“В задачах с довольно высокой нагрузкой, мы используем два ядра X1 на пониженных частотах, что делает их ультраэффективными. При условиях, в которых вы бы привычно использовали пару Cortex A76, выжатых на максимум, пара Cortex X1 будет едва напрягаться.”

К примеру, если предыдущий Pixel 5 перегревался при записи 4К видео. То в Pixel 6 такой проблемы нет, несмотря на то, что «шестерка» пишет видео в HDR.

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

По крайней мере, именно такая была идея по словам Google. На практике же, судя по тестам авторитетного ресурса Anandtech, именно реализация идей подкачала. Средние ядра А76 и мелкие А55 в реализации Google, тупо отстают от конкурентов как по энергоэффективности, так и по мощности.

Tensor

Но не об этом, на самом деле нам хотелось поговорить, рассказывая про Google Tensor. Давайте уже обратим внимание на слона в комнате, имя этого слона «Искусственный интеллект».

Главная инновация мобильного процессора Google — это собственный нейронный движок TPU. Собственно TPU расшифровывается Tensor Processing Unit. Весь процессор, назван в честь этого компонента и построен вокруг этого компонента.

И вот, по тем же данным Anandtech, нейромодулятор в Google Tensor, просто уничтожает всех. Например, в области обработки естественного языка, превосходство над конкурентами трехкратное. И это разница в несколько поколений.

Да, не во всех тестах нейромодуль Google доминирует, но везде цифры очень хорошие. И это говорит, что нейропроцессор Google – один из самых мощных, а может и самый мощный на рынке.

Но зачем Google понадобилась такая мощность?

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

И вот наконец-то настал их звёздный час, потому, что теперь появилось железо на котором их алгоритмы можно воплотить в жизнь. Давайте посмотрим, что уже реализовали.

HDRnet

В 2017 году ребята научили нейросеть, в реальном времени имитировать работу их фирменного алгоритма HDR+.

Сначала эту наработку стали использовать в Pixel 4 в виде функции Live HDR+. В приложении камера появились HDR превью и слайдеры регулировки тени и света.

А в Pixel 6 этот же алгоритм встроили прямо в ISP-модуль и поэтому смогли масштабировать для записи HDR видео. И теперь этот алгоритм называют HDRnet.

Кстати, обратили внимание как Google прокачал стабилизацию в видео? Еще бы, ведь они использовали алгоритм Deep Online Fused Video Stabilization из публикации этого года.

И видимо алгоритм Steadiface 2019 года для фронталки.

Synthesize Motion Blur

Погнали дальше. В Pixel 6 появился режим, имитирующий длинную выдержку? Так публикация ждала своей реализации с 2019 года!

Face Unblur

Или наоборот, Pixel 6 научился убирать размытие движение с лиц? Скорее всего им помогла вот эта работа 2021 года по исправлению размытия. Кстати, вы знали, что на фотках со сверхширокоугольной камеры Google исправляет геометрию лиц? И так далее…

В камере реализовано огромное количество алгоритмов, а сколько всего стоит на очереди даже сложно представить.

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

Context HUB

А ведь все эти сложные алгоритмы из мира вычислительной фотографии – это только малая часть, того чем занимается Google Research.

В Google Tensor встроен потрясающий движок распознавания речи и перевода, который работает с 52 языками, насколько я помню, и всё это целиком устройстве, без подключения к сети.

Так в системе на кристалле есть отдельный вычислительный блок Context Hub, который по словам Google приносит «машинное обучение в область сверхнизкого энергопотребления».

Это блок, который постоянно трудится и что-то анализирует в фоне. Например, он отвечает за функцию, “Что сейчас играет?” и бог знает чем он еще занимается? Может, предлагает варианты ответа на сообщения в gBoard, может оптимизирует энергопотребление. Мы точно не знаем. Но что мы знаем наверняка: Google Tensor — это первый процессор, в котором настолько обширно используются возможности машинного обучения. И это только начало…

Tensor 2 и выводы

В сеть уже потихоньку начинают утекать данные про Google Tensor 2, который будет в Pixel 7.

Если первый Tensor имел кодовое имя Whitechapel и номер модели GS101, Tensor 2, судя по утечкам, получил крутое кодовое имя Cloudripper и номер GS201.

Данных по характеристикам нового Tensor пока нет, но очевидно что Google в этой игре всерьез и надолго.

Разработка первого Tensor шла на протяжении четырех лет. И хоть у них получился не самый быстрый и энергоэффективный процессор, первый блин вышел точно не комом.

Да, Pixel в общих мировых продажах телефонв занимают ничтожно малою долю. Да, Пиксели всегда в чем-то отстают от конкурентов. Но влияние этих телефонов на всю индустрию огромное!

В свое время Google задал тренд на вычислительную фотографию. Теперь же мы очень надеемся Google задаст новый тренд в мире процессоров.

Ведь Google Tensor — это процессор, созданный не маркетологами, а инженерами. И в наше время это большая редкость.