VPU против FPU против GPU против ALU

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

Я понимаю, что внутри CPU есть FPU и ALU, но верно ли это и для GPU?

А как насчет VPU против GPU? Разве они не должны быть одинаковыми? Есть ли внутри них ALU/FPU?


person testin3r    schedule 04.03.2018    source источник
comment
VPU (Vector Processing UNIT) — это векторизованная версия ALU и/или FPU. И CPU, и GPU могут содержать VPU.   -  person Margaret Bloom    schedule 04.03.2018
comment
Это вопрос, требующий учебника, а не вопрос программирования. Поиск Google является ответом. Пожалуйста, прочтите тур и Как спросить< /а>   -  person Dave S    schedule 04.03.2018


Ответы (1)


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

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

GPU может быть или не быть VPU, в зависимости от набора инструкций, поддерживаемого GPU. Кроме того, VPU может быть реализован как GPU, но на самом деле это деталь реализации. GPU – это большой набор ядер (каждое из которых обычно содержит ALU и FPU). и некоторые специальные блоки (используемые для обработки графики), которых нет в VPU и ЦП общего назначения. Однако большинство, если не все настоящие GPU, не являются VPU, потому что они не поддерживают такие мощные векторные инструкции. Сопоставление ядер с ядрами графического процессора выполняется компилятором и драйвером устройства графического процессора.

Определение VPU из Википедии указывает, что векторы должны быть одномерными. Исторически так было всегда. С другой стороны, может показаться, что графические процессоры имеют встроенную поддержку многомерных векторов, но на самом деле этим занимается компилятор, а не архитектура. Так что я бы не считал это принципиальной разницей.

FPU и ALU являются компонентами VPU, CPU и GPU.

person Hadi Brais    schedule 05.03.2018