Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Блок Compute Unit




Основой графического процессора на базе архитектуры Graphics Cores Next (GCN) является Compute Unit, который представляет собой своеобразный «строительный кирпичик» и является аналогом SIMD Engine в графических процессорах предыдущего поколения.

Как уже отмечалось, в процессоре Cayman (Radeon HD 6950/6970/6990) c архитектурой VLIW4 блок SIMD Engine составляют 16 суперскалярных SPU, в каждом из которых содержится четыре ALU. То есть всего в SIMD Engine имеется 64 ALU.

Блок Compute Unit (рис. 5) устроен совершенно по-иному. В нем тоже 64 ALU, но они разделены на четыре отдельных векторных SIMD-модуля (Vector Unit, VU) по 16 ALU в каждом (рис. 6). Казалось бы, какая разница: 16 блоков (SPU) по четыре ALU в каждом (организация 16x4) или четыре блока VU по 16 ALU в каждом (организация 4x16)?

 

Рис. 5. Структура блока Compute Unit
в архитектуре Graphics Cores Next

Рис. 6. Структура векторного SIMD-модуля
в архитектуре Graphics Cores Next

Если в процессоре Cayman все 16 SPU образовывали один блок SIMD Engine, который мог исполнять только одну программную инструкцию, но с разными операндами, то в блоке Compute Unit имеются четыре отдельных векторных SIMD-модуля. Как несложно догадаться, эти четыре SIMD-модуля могут одновременно выполнять четыре различные программные операции.

Собственно, ключевая разница заключается в том, что эти архитектуры обеспечивают разный тип параллелизма. Организация 16x4 позволяет реализовать параллелизм на уровне инструкций (Instruction Level Parallelism, ILP), а организация 4x16 — на уровне потоков (Thread Level Parallelism, TLP). Дело в том, что в блоке CU может динамически распределяться нагрузка между векторными SIMD-модулями, для чего в каждом CU имеется аппаратный планировщик (Sheduler). То есть если в процессорах предыдущего поколения с архитектурой VLIW выполнялось статическое планирование, то в архитектуре Compute Unit — динамическое.

Нагрузка для параллельного исполнения поступает в каждый векторный SIMD-модуль в виде wavefront (массива из 64 инструкций), который выполняется за четыре цикла. И хотя одновременно в работе могут быть только четыре wavefront, еще несколько находятся у Compute Unit в прямом доступе, за счет чего планировщик получает возможность маневра. В ситуации, когда зависимость в коде мешает векторному SIMD-модулю работать на полную мощность, этот модуль переключается на выполнение другого wavefront. Каждый векторный SIMD-модуль может выполнять один из десяти wavefront и динамически переключаться между ними. Всего же CU может распределять по векторным SIMD-модулям сорок wavefront.

Отметим, что, несмотря на наличие аппаратного планировщика в каждом CU и возможность динамического изменения загрузки векторных SIMD-модулей, архитектура Graphics Cores Next не является архитектурой внеочередного выполнения команд (Out-Of-Order). В рамках одного wavefront все команды исполняются последовательно, однако имеется возможность переключаться между отдельными wavefront.

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

При рассмотрении архитектуры VLIW4 мы разбирали упрощенный пример выполнения серии из 15 wavefront (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O), которые имели зависимости. Напомним, что wavefront С зависел от В, wavefront F — от wavefront E; wavefront G — от F, wavefront L — от K. Для выполнения такой последовательности на SIMD Engine процессора с архитектурой VLIW4 потребовалось шесть тактов.

Теперь давайте посмотрим, сколько тактов нужно для выполнения той же последовательности wavefront на CU процессора с архитектурой Graphics Cores Next (рис. 7).

 

Рис. 7. Выполнение последовательности 15 wavefront
с зависимостями на CU

В первом такте в каждый из четырех VU загружаются и выполняются wavefront A, B, D и E. Однако поскольку wavefront С зависит от wavefront B, он не может выполняться одновременно с ним и планировщик CU динамически переключает VU на выполнение следующих wavefront (D и E).

На втором такте выполняется отложенный wavefront С и независящие друг от друга wavefront F, H и I. А вот исполнение wavefront G откладывается, поскольку он зависит от wavefront F.

В третьем такте выполняется отложенный wavefront G, а также wavefront J, K и M, а исполнение wavefront L, который зависит от К, откладывается.

В последнем, четвертом такте происходит выполнение отложенного wavefront L и следующих по порядку, не зависящих друг от друга wavefront N и O.

Как видите, в нашем примере для выполнения всей последовательности из 15 wavefront потребовалось всего четыре такта, а не шесть, как в случае с SIMD Engine. Таким образом, при выполнении последовательности wavefront с зависимостями преимущество архитектуры Graphics Cores Next налицо.

Итак, Compute Unit в архитектуре Graphics Cores Next является своеобразным мини-процессором графического процессора.

Кроме четырех векторных SIMD-модулей по 16 ALU в каждом, CU содержит, как уже отмечалось, отдельный скалярный модуль, а также отдельный кэш данных L1 объемом 16 Кбайт, разделяемый между несколькими CU кэш L1 инструкций размером 16 Кбайт и разделяемый между несколькими CU кэш данных размером 32 Кбайт.




Поделиться с друзьями:


Дата добавления: 2015-07-13; Просмотров: 448; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.