Опубликовано 26 февраля 2014, 08:00

Все про AMD Kaveri. Часть 1. Теория

Новое поколение APU Kaveri как минимум весь 2014 год будет отстаивать честь AMD на поприще х86-вычислений. При этом интерес к линейке гибридных процессоров «красных» вызван не столько сменой архитектуры, сколько поддержкой гетерогенных вычислений, а также перспективой комфортного гейминга в Full HD разрешении, приправленной технологиями API Mantle и TrueAudio.
Все про AMD Kaveri. Часть 1. Теория

На протяжении последних нескольких лет мы только и замечаем, как AMD смещает акцент развития своих процессоров в сторону APU (Accelerated Processing Unit). Скажем больше: сейчас это направление — главное и, возможно, уже единственное. Темп развития APU достаточно легко проследить. Начиная с 2011 года, AMD каждый год выпускает новое поколение своих гибридных процессоров. Первым в мире APU стало устройство под названием Llano. Затем появились Trinity, Richland и, наконец, Kaveri.

Новое поколение APU

Новое поколение APU

Как вы уже знаете, APU Kaveri имеет ряд значительных изменений в сравнении с Richland. Если говорить коротко, то произошла смена архитектур как вычислительной составляющей, так и графической части. К тому же гибридные процессоры, презентованные 4 января в Лас-Вегасе, обзавелись встроенным контроллером PCI Express 3.0. Давайте поговорим обо всех архитектурных нововведениях более подробно. Начнем с технических особенностей производства Kaveri, сравнив их с APU прошлых поколений.

Эволюция APU

 LlanoTrinityRichlandKaveri
Техпроцесс, нм32323228
Количество транзисторов, млрд шт1,181,31,32,41
Площадь, мм2228246246245
TDP, Вт10010010095

Легко заметить, что за четыре года эволюции APU была произведена всего одна смена техпроцесса. Как раз у Kaveri. Данный шаг позволил увеличить число транзисторов практически вдвое, что на 85% больше, чем у Richland. Если раньше кристалл производился по технологии High-K Metal Gate (высокая диэлектрическая константа и металлические затворы), то одновременно с переходом на 28-нм техпроцесс стали использовать технологию SHP (Super High Performance), характеризующуюся высокой плотностью кремниевых затворов, но несколько меньшим частотным потенциалом конечного продукта.

Наряду с ростом количества транзисторов также увеличивалась их плотность. Процессоры семейства Llano имеют 5,2 млн транзисторов на один квадратный миллиметр. Trinity — 5,3 млн. Kaveri с своими 9,8 млн транзисторов демонстрируют 85-процентное увеличение плотности.

За четыре года развития APU максимальное расчетное тепловыделение оставалось на одном и том же уровне. Опять же смена техпроцесса (вкупе со снижением частоты) позволили снизить уровень TDP. Правда, всего на 5 Вт.

Вычислительная часть

 LlanoRichlandKaveri
Микроархитектура ЦПStarsPiledriverSteamroller
Количество модулей/ядер, шт-/42/42/4
СокетFM1FM2FM2+
Максимальная тактовая частота, base/boost, МГц3000/-4100/44003700/4000
Кэш L1i, Кбайт4x 642х 642х 96
Кэш L1d, Кбайт4x 644х 164х 16
Кэш L2, Кбайт4x 10242х 20482х 2048
Набор инструкцийMMX, Enhanced 3DNow!, SSE, SSE2, SSE3, SSE4a, AMD64, NX bitMMX, SSE, SSE2, SSE3, SSSE3, SSE4a, SSE4.1, SSE4.2, AVX, XOP, FMA3, FMA4, CVT16, F16C, BMI, ABM, TBM, AMD64, NX bitMMX, SSE, SSE2, SSE3, SSSE3, SSE4a, SSE4.1, SSE4.2, AVX, XOP, FMA3, FMA4, CVT16, F16C, BMI, ABM, TBM, AMD64, NX bit
Тип памяти/частота функционирования, МГцDDR3-1866DDR3-2133DDR3-2133
Ширина шины памяти, бит2х 642х 642х 64
Пропускная способность памяти, Гбайт/с29,834,134,1

Как известно, инженеры AMD уже давно используют модульную архитектуру. Первыми представителями такого подхода к травлению элементов на кристалле были процессоры Bulldozer. Чуть позже архитектура была несколько доработана. На рынке появились решения Piledriver. Вычислительная часть APU Trinity и Richland как раз была основана на базе «копра». Одновременно с выходом APU Kaveri была представлена архитектура-приемник — Steamroller, в которой по-прежнему используется модульная структура.

В один такой модуль входят два целочисленных ядра с общим блоком вычислений с плавающей точкой. То есть у AMD есть полное право называть его двухъядерным. Это логично с точки зрения арифметики. С учетом того, что на кристалле Kaveri расположено два таких модуля, то новые процессоры A10 и A8 можно смело называть четырехъядерными, хотя и здесь существует своя специфика, о которой мы расскажем далее.

Процессорные ядра Llano, по сути, являются модифицированными К10, используемыми в процессорах Phenom II. Тем не менее, каждое ядро имеет собственный FPU, чего не скажешь про модульные архитектуры более поздних решений AMD. В Piledriver не только FPU стал общим на каждые два ядра, но и кэш инструкций первого уровня, суммарный объем которого сократился вдвое. Кэш данных первого уровня сократился на 75%! Что касается кэша второго уровня, то его объем остался неизменным, но изменилась концепция. Если раньше каждое ядро обладало персональным L2-кэшем объемом 1 Мбайт, то последующие модульные процессоры получили общий L2-кэш емкостью 2 Мбайт. Легко заметить, что модульная архитектура принесла одни «убытки». Ее спасает только значительно возросшая тактовая частота, а также рост пропускной способности памяти.

Модуль Steamroller

Модуль Steamroller

Первое, на что обращаешь внимание в Steamroller, — это увеличенный с 64 Кбайт до 96 Кбайт кэш инструкций первого уровня. 50-процентная прибавка SRAM-памяти, в теории, должна повысить производительность процессора и сократить количество кэш-промахов. В AMD заявляют 30-процентном снижении. Безусловно, увеличение кэша не могло пройти незаметно. Если раньше он был двухпутным, то теперь его ассоциативность увеличилась, и он стал трехпутным. Увеличение ассоциативности также способствует снижению количества промахов.

Увеличенный кэш

Увеличенный кэш

Первой ступенью модуля являются блоки предсказания ветвлений и выборки инструкций, которые являются общими для обоих ядер. Выборка инструкций происходит из общего кэша инструкций первого уровня. Далее происходит распараллеливание на персональные для каждого ядра декодеры. Обработанные инструкции поступают на три планировщика: по планировщику для целочисленной арифметики на ядро и общий планировщик для арифметики с плавающей точкой. К каждому планировщику для целочисленной арифметики присоединено по два арифметико-логических устройства и два блока, отвечающих за выгрузку/загрузку данных из кэша первого уровня.

Планировщик FP-арифметики распределяет инструкции по трем исполнительным устройствам (ИУ): одно персонально предназначено для MMX-команд, два других — для FP-арифметики и прочих SIMD-инструкций (SSE, AVX). Они имеют ширину 128 бит. Так как инструкции AVX имеют разрядность 256 бит, то для их обработки 128-битные ИУ объединяются для совместной работы. Таким образом, модуль может обрабатывать лишь одну 256-битную AVX-инструкцию за раз.

Вторым существенным изменением в микроархитектуре является изменение компоновки декодеров. Если в Bulldozer был общий декодер для каждого ядра, то теперь на каждое ядро приходится по одному декодеру.

Был произведены и другие оптимизации архитектуры:

  • Инженеры увеличили буфер адресов перехода (BTB) с 5К до 10К, а также количество банков — с 8 до 16. По заявлениям AMD им удалось достичь снижения ошибок предсказания ветвлений на 20%;
  • Было произведено увеличение буферов загрузки/выгрузки с 44 до 48 и с 24 до 32 записей соответственно;
  • Был реализован виртуализированный контроллер прерываний, а также добавлен набор инструкций XSAVEOPT;
  • Блок MMX получил незначительные изменения. Теперь он может выполнять некоторые другие операции.

Отдельно стоит рассказать про разделяемый кэш второго уровня. Оптимизации заключаются в разделении 2 Мбайт на четыре равные части, каждая из которых имеет собственное питание. Следовательно, когда кэш не используется, он может быть отключен. Технология «темного» кремния в действии!

Архитектурные улучшения Steamroller

Архитектурные улучшения Steamroller

Безусловно, все эти оптимизации должны поднять уровень производительности модулей Steamroller на обещанные 10-15%. Как показало наше тестирование, так оно и происходит. Однако есть одно «но». С учетом усложнения технологии травления кристалла тактовая частота Kaveri снизилась на 10% по сравнению с Richland. Поэтому надеяться на заметное повышение производительности х86-составляющей не приходится.

Сравнение уровня производительности Steamroller и Piledriver

Сравнение уровня производительности Steamroller и Piledriver

Интересно, что Llano, самый первый APU, в вычислениях с плавающей точкой одинарной/двойной точности будет опережать Kaveri, так как он может обрабатывать до 32 чисел одинарной точности за такт с использованием SSE, а также 16 чисел двойной точности. Kaveri может обрабатывать только 16 и 8 чисел за такт соответственно.

С одной стороны, стратегия AMD понятна. Зачем наращивать производительность процессорной части, когда можно переложить значительную часть вычислений с плавающей точкой на GPU? Но подобный подход, во-первых, требует повсеместного внедрения OpenCL. Во-вторых, в тех приложениях, где необходима «чистая» x86-производительность производительность, Kaveri не сможет продемонстрировать приемлемой производительности.

Графическая часть

Архитектура GCN1.1

Вот уже два поколения дискретных ускорителей Radeon основаны на базе прогрессивной Graphics Core Next (GCN), оптимизированной, как это не странно, в том числе и под «неграфические» вычисления GPGPU. Пришло время и гибридных процессоров.

В основе любого GCN-ядра лежат блоки Compute Unit (CU) — самостоятельный модуль с полным набором функциональных блоков.

Compute Unit

Compute Unit

Так, CU содержит: персональный планировщик заданий, кэш первого уровня объемом 16 Кбайт, локальное хранилище данных емкостью 64 Кбайт, четыре текстурных блока, скалярный блок с 4-килобайтным массивом регистров, четыре векторных блока с шестнадцатью потоковыми процессорами и четырьмя 64-килобайтными массивами регистров, 16 блоков выборки текстур.

GCN1.1

GCN1.1

Восемь CU подключены к общему кэшу второго уровня объемом 512 Кбайт.

Как можно заметить, в состав GPU входит также новоиспеченный DSP TrueAudio, о котором мы достаточно подробно писали, декодер/кодер UVD/VCE, интерфейс PCI Express 3.0, мост CrossFire, а также блоки планировщика заданий.

Командные процессоры

Командные процессоры

Помимо графического планировщика, для обеспечения быстрой работы «неграфических» вычислений используется восемь планировщиков заданий, каждый из которых имеет восемь очередей и может параллельно работать с графическим командными процессором. Для обеспечения своевременной доставки данных они подключены к общему кэшу второго уровня. Всё это позволяет оптимально распределять задачи между CU, получая максимальную производительность в гетерогенных вычислениях.

Геометрический движок

Геометрический движок

Рендер-движок и геометрический процессор также получили ряд улучшений, направленных на увеличение производительности. В Kaveri присутствует всего 8 блоков растеризации, распределенных по двум рендер-движкам. Есть 32 блока Z/Stencil ROP.

GCN1.1 в сравнении с VLIW4

Графическая составляющая Kaveri переняла все «фишки» Hi-End-видеокарт Radeon R9. Здесь есть и поддержка Direct 11.2, и TrueAudio, и Mantle, а также обновленные декодеры/кодеры.

 LlanoRichlandKaveri
АрхитектураVLIW5VLIW4GCN1.1
Тех.процесс, нм323228
Тактовая частота, МГц600844720
Количество конвейеров, шт400384512
TMU202432
ROP888
Теоретическая производительность GFLOPs480779737
Версия DirectX111111.2
Поддержка OpenCLЕстьЕстьЕсть

Несмотря на сокращение количества потоковых процессоров при переходе с Llano на Trinity, производительность графической подсистемы увеличилась.

VLIW4

VLIW4

Интегрированная графика Kaveri имеет на 33% больше потоковых процессоров и текстурных блоков в сравнении с Richland. Однако количество блоков ROP осталось прежним.

Декодер и кодер

В процессорах Intel последних поколений содержится мощный движок QSync, позволяющий с большой скоростью обрабатывать видео. AMD, дабы не отставать от конкурента, также развивает аппаратные ускорители видео в своих решениях. С появлением Kaveri изменения интегрированного кодера/декодера коснулись лишь функциональности в рамках старых форматов. Так, появилась поддержка I- и B-кадров H.264, а также повысилась устойчивость к ошибкам при декодировании.

Работа с памятью

Давно известно, что производительность графической подсистемы APU зависит от пропускной способности памяти. Kaveri еще больше зависит ОЗУ.

Анализируя представленные AMD слайды, видим, что переход с DDR3-1600 на DDR3-2400 обеспечивает 30-процентный прирост производительности графической составляющей.

Конкурентные решения (читай — процессоры Intel) имеют поддержку лишь DDR3-1600, но при этом их реальная пропускная способность оказывается даже выше, чем у Kaveri с DDR3-2133. Где эффективная утилизация такой полосы? Зачем повышать частоту, если реальный показатель эффективности памяти остается невысоким? Это означает, что графический кластер новых гибридных процессоров еще больше будет ограничен со стороны ОЗУ.

Гетерогенная часть

APU Kaveri считаются первыми в мире вычислительными решениями, поддерживающими архитектуру Heterogeneos System Architecture (HSA). Основные постулаты данной концепции:

  • Адресное пространство оперативной памяти должно быть единым как для CPU, так и GPU. В целом такой подход не только уменьшит расходы, связанные с постоянным копированием данных, но и снизит потребление памяти, так как не будет необходимости в дублировании данных;
  • Как вычислительна часть, так и графическая составляющая могут независимо друг от друга порождать и выполнять операции. Как известно, в «классической» схеме задачи GPU задает центральный процессор. То есть выполняется одна «лишняя» операция.
Особенности HSA

Особенности HSA

Таким образом, каждый CU в GPU представляется AMD как самостоятельный вычислительный блок, что дает в сумме 12 вычислительных ядер: четыре процессорных восемь графических.

Универсальные вычислительные ядра

Универсальные вычислительные ядра

Безусловно, гетерогенная архитектура потребовала переработки интегрированного контроллера памяти.

Интегрированный контроллер памяти в APU Llano

Интегрированный контроллер памяти в APU Llano

Так, в Llano графическое ядро было соединено с контроллером памяти двумя интерфейсами: 128-битной Fusion Control Link (FCL) и шиной с низкой задержкой, а также большей приоритетностью Radeon Memory Bus. Такой подход предоставлял интегрированной графике больший приоритет в доступе к ОЗУ, чем CPU, позволяя вовремя доставлять данные. Процессор же взаимодействовал с кадровым буфером видеокарты через FCL.

Интегрированный контроллер памяти в APU Trinity

Интегрированный контроллер памяти в APU Trinity

У Trinity и Richland была расширена разрядность шины FCL до 256 бит, что позволило повысить эффективность работы контроллера памяти. К тому же был добавлен блок управления памятью для операций ввода/вывода (IOMMU), который также подключался к FCL.

Интегрированный контроллер памяти в APU Kaveri

Интегрированный контроллер памяти в APU Kaveri

Наконец, в Kaveri было организовано единое адресное пространство. Теперь GPU и IOMMU объединены сразу двумя шинами. Последним нововведением можно считать поддержку операций System-Level Atomics, предназначенных для синхронизации данных в вычислительных ядрах, что весьма актуально при наличии 12 вычислительных блоков.

Программная поддержка HSA

Программная поддержка HSA

На данный момент времени поддержку HSA можно с помощью небольшого количества языков программирования: OpenCL 2.0, JAVA, C++ AMP и Python.

План развития языка JAVA

План развития языка JAVA

При этом поддержка HSA при помощи JAVA возможна лишь через библиотеку OpenCL. Полноценная реализация гетерогенной архитектуры будет активирована лишь в девятой версии.

К сожалению, на сегодняшний день тяжело говорить о перспективах HSA. Драйверы до сих пор находятся на стадии Beta-тестирования. Софта неприлично мало.

Заключение

Новое поколение APU получилось весьма интересным. Но добрая часть преимуществ пока существует только на бумаге. Конечно же, речь идет о HSA, TrueAudio и Mantle.

Нововведения в Kaveri

Нововведения в Kaveri

Безусловно, сам выход Kaveri носит позитивный характер. Так, в условиях жесткой конкуренции AMD каждый год выпускает новые, более совершенные, продукты, а также предлагает IT-сообществу новые идеи. Да, архитектура Steamroller оказалась на 10-15% эффективнее Piledriver. Но при этом тактовая частота самих процессоров стала ниже.

В AMD правильно делают, дополнительно расшифровывая понятие «12-ядерный APU». Калифорнийцы уже «обожглись» со своими 8-ядерными центральными процессорами FX, которые на деле не могут противостоять даже 4-ядерным решениям Intel. Право без каких-либо оговорок называть Kaveri 12-ядерным возникнет лишь тогда, когда появится большое количество софта с поддержкой гетерогенных вычислений. У «красных» уже есть большое число партнеров, вошедших в HSA Foundation, и среди них — такие крупные корпорации, как ARM, Imagination Technologies, MediaTek, Texas Instruments, Qualcomm и Samsung. Надо ждать.

Графическая часть, наоборот, демонстрирует отличный прирост производительности. Уже сейчас можно утверждать, что Kaveri — это первый центральный процессор с по-настоящему мощным интегрированным видео, позволяющим комфортно играть в Full HD.

Обобщая всё вышесказанное, можно заявить, что AMD выпустила решения, которые предсказуемо оказались быстрее своих предшественников. Любое движение вперед — это всегда хорошо. Однако по-настоящему весь потенциал APU Kaveri может быть (ключевое слово!) раскрыт только в будущем. Как известно, дорогу осилит идущий.

Во второй части статьи мы перейдем от теории к практике и познакомимся с возможностями флагмана AMD A10-7850K.