Pixel Визуальная Ядро ( ПВХ ) представляет собой серия ARM на базе системы в пакете (SiP) обработке изображений , разработанный Google . [1] PVC - это полностью программируемая многоядерная доменно-ориентированная архитектура (DSA) для изображений , визуализации и искусственного интеллекта для мобильных устройств и в будущем для IoT . [2] Впервые он появился в Google Pixel 2 и 2 XL, которые были представлены 19 октября 2017 года. Он также появился в Google Pixel 3 и 3 XL . Начиная с Pixel 4, этот чип был заменен на Pixel Neural Core .
История [ править ]
Google ранее использовали Qualcomm Snapdragon «s CPU , GPU , IPU и DSP для обработки ее обработки изображений для их Google Nexus и Google пиксельных устройств. С ростом важности методов компьютерной фотографии Google разработал Pixel Visual Core (PVC). Google утверждает, что PVC потребляет меньше энергии, чем CPU и GPU, но при этом остается полностью программируемым, в отличие от интегральной схемы (ASIC) на базе тензорного процессора (TPU ). Действительно, классические мобильные устройстваоборудовать процессор сигналов изображения (ISP), который представляет собой конвейер обработки изображений с фиксированной функциональностью . В отличие от этого, PVC имеет гибкие программируемые функции, не ограничиваясь только обработкой изображений.
PVC в Google Pixel 2 и 2 XL имеет маркировку SR3HX X726C502. [3]
PVC в Google Pixel 3 и 3 XL имеет маркировку SR3HX X739F030. [4]
Благодаря PVC, Pixel 2 и Pixel 3 получили мобильный DxOMark 98 [5] и 101. [6] Последний является лучшим в рейтинге мобильных DxOMark с одним объективом, равным iPhone XR. [7]
Программное обеспечение Pixel Visual Core [ править ]
Типичная программа обработки изображений PVC написана на Halide . В настоящее время он поддерживает только подмножество языка программирования Halide без операций с плавающей запятой и с ограниченными шаблонами доступа к памяти. [8] Halide - это язык , специфичный для предметной области, который позволяет пользователю разделить алгоритм и планирование его выполнения. Таким образом, разработчик может написать программу, оптимизированную для целевой аппаратной архитектуры. [2]
Pixel Visual Core ISA [ править ]
PVC имеет два типа архитектуры набора команд (ISA) : виртуальный и физический. Во-первых, программа на языке высокого уровня компилируется в виртуальную ISA (vISA) , вдохновленную RISC-V ISA [2], которая полностью абстрагируется от поколения целевого оборудования. Затем программа vISA компилируется в так называемый физический ISA (pISA) , то есть VLIW ISA. На этом этапе компиляции учитываются параметры целевого оборудования (например, размер массива PE, размер STP и т. Д.) И явно указываются перемещения памяти. Разъединение VISA и Pisa позволяет первый быть кросс-архитектура и поколение-независимым, в то время как Pisaможет быть скомпилирован в автономном режиме или посредством JIT-компиляции . [8]
Архитектура Pixel Visual Core [ править ]
Pixel Visual Core представляет собой масштабируемую многоядерную энергоэффективную архитектуру с четными числами от 2 до 16 ядер. [2] Ядром PVC является блок обработки изображений (IPU), программируемый блок, предназначенный для обработки изображений. Архитектура Pixel Visual Core также была разработана либо как отдельный чип, как SR3HX, либо как IP-блок для системы на кристалле (SOC) . [2]
Блок обработки изображений (IPU) [ править ]
Ядро IPU имеет процессор шаблонов (STP), пул буферов строк (LBP) и NoC . STP в основном предоставляет 2-D SIMD- массив обрабатывающих элементов (PE), способных выполнять вычисления трафарета , небольшую окрестность пикселей. Хотя это кажется похожим на вычисления систолического массива и волнового фронта, STP имеет явное программное управление перемещением данных. Каждый PE имеет 2 16-разрядных арифметико-логических устройств (ALU) , 1 16-разрядный блок умножения-накопителя (MAC) , 10 16-разрядных регистров и 10 1-разрядных регистров предиката. [2]
Пул линейных буферов (LBP) [ править ]
Учитывая, что одной из наиболее энергоемких операций является доступ к DRAM, каждый STP имеет временные буферы для увеличения локальности данных , а именно LBP. Используемый LBP - это двумерный буфер FIFO, который поддерживает различные размеры чтения и записи. LBP использует поведенческую модель одного производителя и нескольких потребителей. Каждый LBP может иметь восемь логических блоков памяти LB и одну для операций ввода-вывода DMA . [8] Из-за действительно высокой сложности системы памяти разработчики PVC заявляют, что LBP-контроллер является одним из самых сложных компонентов. [2] Используемый NoC представляет собой кольцевую сеть на кристалле, используемую для связи только с соседними ядрами для экономии энергии и сохранения конвейерной вычислительной схемы. [2]
Stencil Processor (STP) [ править ]
STP имеет двумерный массив PE: например, массив 16x16 полных PE и четыре полосы упрощенных PE, называемых «гало» . STP имеет скалярный процессор, называемый скалярной полосой (SCL), который добавляет управляющие инструкции с небольшой памятью команд. Последним компонентом STP является блок хранения загрузки, называемый генератором листов (SHG), где лист является блоком доступа к памяти PVC. [2]
Краткое описание конструкции SR3HX [ править ]
SR3HX PVC оснащен 64-битным процессором ARMv8a ARM Cortex-A53 , 8 ядрами блока обработки изображений (IPU), 512 МБ LPDDR4 , MIPI, PCIe. Каждое из ядер IPU имеет 512 арифметико-логических блоков (ALU), состоящих из 256 обрабатывающих элементов (PE), организованных в виде двумерного массива 16 x 16. Эти ядра выполняют пользовательский VLIW ISA. На каждый элемент обработки приходится два 16-битных ALU, и они могут работать тремя разными способами: независимыми, объединенными и объединенными. [9] SR3HX ПВХ изготавливаются в виде SiP пути TSMC с использованием их 28HPM HKMG процесса. [1] Он разрабатывался более 4 лет в партнерстве с Intel . (Кодовое имя: Монетт Хилл)[10] Google утверждает, что SR3HX PVC в 7-16 раз более энергоэффективен, чем Snapdragon 835 . [1] И что SR3HX PVC может выполнять 3 триллиона операций в секунду, HDR + может работать в 5 раз быстрее и потреблять менее одной десятой энергии, чем Snapdragon 835 . [11] Он поддерживает Halide для обработки изображений и TensorFlow для машинного обучения. [11] Текущий чип работает на частоте 426 МГц, а один IPU может выполнять более 1 тераоператива в секунду. [2] [8]
Ссылки [ править ]
- ^ a b c Катресс, Ян. «Горячие фишки 2018: живой блог Google Pixel Visual Core (10:00 по тихоокеанскому времени, 17:00 по всемирному координированному времени)» . www.anandtech.com . Проверено 2 февраля 2019 .
- ^ Б с д е е г ч я J Хеннесси, Джон; Паттерсон, Дэвид (2017). Компьютерная архитектура: количественный подход (шестое изд.). Морган Кауфманн. С. 579–606. ISBN 978-0-12-811905-1.
- ^ "Разборка Google Pixel 2 XL" . iFixit . 2017-10-19 . Проверено 2 февраля 2019 .
- ^ "Разборка Google Pixel 3 XL" . iFixit . 2018-10-16 . Проверено 2 февраля 2019 .
- ^ «Pixel 2 DxOMark» .
- ^ «Pixel 3 DxOMark» .
- ^ «iPhone XR DxOMark» .
- ^ a b c d "Pixel Visual Core: полностью программируемый процессор изображений, машинного зрения и искусственного интеллекта Google для мобильных устройств. HotChips2018" (PDF) .
- ^ "Pixel Visual Core (PVC) - Google - WikiChip" . en.wikichip.org . Проверено 2 февраля 2019 .
- ^ "Google в партнерстве с Intel для Pixel Visual Core Chip в Pixel 2" . xda-developers . 2017-10-25 . Проверено 2 февраля 2019 .
- ^ a b «Pixel Visual Core: обработка изображений и машинное обучение на Pixel 2» . Google . 2017-10-17 . Проверено 2 февраля 2019 .