Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 [ править ]

Пример ПВХ с 4 жилами

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) [ править ]

Представление двумерного массива PE. Белые - это полноценные ПЭ (16х16), серые - часть «ореола» (144). Для наглядности указаны не все подключения.

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]

Ссылки [ править ]

  1. ^ a b c Катресс, Ян. «Горячие фишки 2018: живой блог Google Pixel Visual Core (10:00 по тихоокеанскому времени, 17:00 по всемирному координированному времени)» . www.anandtech.com . Проверено 2 февраля 2019 .
  2. ^ Б с д е е г ч я J Хеннесси, Джон; Паттерсон, Дэвид (2017). Компьютерная архитектура: количественный подход (шестое изд.). Морган Кауфманн. С. 579–606. ISBN 978-0-12-811905-1.
  3. ^ "Разборка Google Pixel 2 XL" . iFixit . 2017-10-19 . Проверено 2 февраля 2019 .
  4. ^ "Разборка Google Pixel 3 XL" . iFixit . 2018-10-16 . Проверено 2 февраля 2019 .
  5. ^ «Pixel 2 DxOMark» .
  6. ^ «Pixel 3 DxOMark» .
  7. ^ «iPhone XR DxOMark» .
  8. ^ a b c d "Pixel Visual Core: полностью программируемый процессор изображений, машинного зрения и искусственного интеллекта Google для мобильных устройств. HotChips2018" (PDF) .
  9. ^ "Pixel Visual Core (PVC) - Google - WikiChip" . en.wikichip.org . Проверено 2 февраля 2019 .
  10. ^ "Google в партнерстве с Intel для Pixel Visual Core Chip в Pixel 2" . xda-developers . 2017-10-25 . Проверено 2 февраля 2019 .
  11. ^ a b «Pixel Visual Core: обработка изображений и машинное обучение на Pixel 2» . Google . 2017-10-17 . Проверено 2 февраля 2019 .