Все про AMD Kaveri. Часть 1. Теория
На протяжении последних нескольких лет мы только и замечаем, как AMD смещает акцент развития своих процессоров в сторону APU (Accelerated Processing Unit). Скажем больше: сейчас это направление — главное и, возможно, уже единственное. Темп развития APU достаточно легко проследить. Начиная с 2011 года, AMD каждый год выпускает новое поколение своих гибридных процессоров. Первым в мире APU стало устройство под названием Llano. Затем появились Trinity, Richland и, наконец, Kaveri.
Как вы уже знаете, APU Kaveri имеет ряд значительных изменений в сравнении с Richland. Если говорить коротко, то произошла смена архитектур как вычислительной составляющей, так и графической части. К тому же гибридные процессоры, презентованные 4 января в Лас-Вегасе, обзавелись встроенным контроллером PCI Express 3.0. Давайте поговорим обо всех архитектурных нововведениях более подробно. Начнем с технических особенностей производства Kaveri, сравнив их с APU прошлых поколений.
Эволюция APU
Llano | Trinity | Richland | Kaveri | |
Техпроцесс, нм | 32 | 32 | 32 | 28 |
Количество транзисторов, млрд шт | 1,18 | 1,3 | 1,3 | 2,41 |
Площадь, мм2 | 228 | 246 | 246 | 245 |
TDP, Вт | 100 | 100 | 100 | 95 |
Легко заметить, что за четыре года эволюции 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 Вт.
Вычислительная часть
Llano | Richland | Kaveri | |
Микроархитектура ЦП | Stars | Piledriver | Steamroller |
Количество модулей/ядер, шт | -/4 | 2/4 | 2/4 |
Сокет | FM1 | FM2 | FM2+ |
Максимальная тактовая частота, base/boost, МГц | 3000/- | 4100/4400 | 3700/4000 |
Кэш L1i, Кбайт | 4x 64 | 2х 64 | 2х 96 |
Кэш L1d, Кбайт | 4x 64 | 4х 16 | 4х 16 |
Кэш L2, Кбайт | 4x 1024 | 2х 2048 | 2х 2048 |
Набор инструкций | MMX, Enhanced 3DNow!, SSE, SSE2, SSE3, SSE4a, AMD64, NX bit | MMX, SSE, SSE2, SSE3, SSSE3, SSE4a, SSE4.1, SSE4.2, AVX, XOP, FMA3, FMA4, CVT16, F16C, BMI, ABM, TBM, AMD64, NX bit | MMX, SSE, SSE2, SSE3, SSSE3, SSE4a, SSE4.1, SSE4.2, AVX, XOP, FMA3, FMA4, CVT16, F16C, BMI, ABM, TBM, AMD64, NX bit |
Тип памяти/частота функционирования, МГц | DDR3-1866 | DDR3-2133 | DDR3-2133 |
Ширина шины памяти, бит | 2х 64 | 2х 64 | 2х 64 |
Пропускная способность памяти, Гбайт/с | 29,8 | 34,1 | 34,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, — это увеличенный с 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 на обещанные 10-15%. Как показало наше тестирование, так оно и происходит. Однако есть одно «но». С учетом усложнения технологии травления кристалла тактовая частота Kaveri снизилась на 10% по сравнению с Richland. Поэтому надеяться на заметное повышение производительности х86-составляющей не приходится.
Интересно, что 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) — самостоятельный модуль с полным набором функциональных блоков.
Так, CU содержит: персональный планировщик заданий, кэш первого уровня объемом 16 Кбайт, локальное хранилище данных емкостью 64 Кбайт, четыре текстурных блока, скалярный блок с 4-килобайтным массивом регистров, четыре векторных блока с шестнадцатью потоковыми процессорами и четырьмя 64-килобайтными массивами регистров, 16 блоков выборки текстур.
Восемь 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, а также обновленные декодеры/кодеры.
Llano | Richland | Kaveri | |
Архитектура | VLIW5 | VLIW4 | GCN1.1 |
Тех.процесс, нм | 32 | 32 | 28 |
Тактовая частота, МГц | 600 | 844 | 720 |
Количество конвейеров, шт | 400 | 384 | 512 |
TMU | 20 | 24 | 32 |
ROP | 8 | 8 | 8 |
Теоретическая производительность GFLOPs | 480 | 779 | 737 |
Версия DirectX | 11 | 11 | 11.2 |
Поддержка OpenCL | Есть | Есть | Есть |
Несмотря на сокращение количества потоковых процессоров при переходе с Llano на Trinity, производительность графической подсистемы увеличилась.
Интегрированная графика 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 задает центральный процессор. То есть выполняется одна «лишняя» операция.
Таким образом, каждый CU в GPU представляется AMD как самостоятельный вычислительный блок, что дает в сумме 12 вычислительных ядер: четыре процессорных восемь графических.
Безусловно, гетерогенная архитектура потребовала переработки интегрированного контроллера памяти.
Так, в Llano графическое ядро было соединено с контроллером памяти двумя интерфейсами: 128-битной Fusion Control Link (FCL) и шиной с низкой задержкой, а также большей приоритетностью Radeon Memory Bus. Такой подход предоставлял интегрированной графике больший приоритет в доступе к ОЗУ, чем CPU, позволяя вовремя доставлять данные. Процессор же взаимодействовал с кадровым буфером видеокарты через FCL.
У Trinity и Richland была расширена разрядность шины FCL до 256 бит, что позволило повысить эффективность работы контроллера памяти. К тому же был добавлен блок управления памятью для операций ввода/вывода (IOMMU), который также подключался к FCL.
Наконец, в Kaveri было организовано единое адресное пространство. Теперь GPU и IOMMU объединены сразу двумя шинами. Последним нововведением можно считать поддержку операций System-Level Atomics, предназначенных для синхронизации данных в вычислительных ядрах, что весьма актуально при наличии 12 вычислительных блоков.
На данный момент времени поддержку HSA можно с помощью небольшого количества языков программирования: OpenCL 2.0, JAVA, C++ AMP и Python.
При этом поддержка HSA при помощи JAVA возможна лишь через библиотеку OpenCL. Полноценная реализация гетерогенной архитектуры будет активирована лишь в девятой версии.
К сожалению, на сегодняшний день тяжело говорить о перспективах HSA. Драйверы до сих пор находятся на стадии Beta-тестирования. Софта неприлично мало.
Заключение
Новое поколение APU получилось весьма интересным. Но добрая часть преимуществ пока существует только на бумаге. Конечно же, речь идет о HSA, TrueAudio и Mantle.
Безусловно, сам выход 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.