Высокопроизводительные вычисления на архитектуре x86 для эпохи технологий с эффектом присутствия

Поиск, машинное обучение, анализ данных, создание и доставка контента, дополненная и виртуальная реальность, компьютерные игры − список ресурсоемких задач для компьютерных систем с каждым днем только расширяется. Когда же мы говорим про технологическую сторону вопроса, то обсуждаем две темы.

146de43290304c34b36da1c7d046d23e.jpg
Первое − это постоянно растущая потребность в увеличении производительности вычислений. Что бы ни предложила полупроводниковая промышленность, конечные пользователи быстро адаптируются к новинкам и снова запрашивают больше.

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

Четыре года назад компания AMD приступила к реновации своей высокопроизводительной архитектуры ядер x86, чтобы удовлетворить эти растущие потребности. Наше предыдущее семейство процессоров показало значительные успехи в сфере энергоэффективности, но эти чипы не были готовы обеспечить необходимый уровень для поддержки требовательных к производительности приложений. Исходя из этой задачи, мы создали дизайн ядра под кодовым названием «Zen» буквально с чистого листа.

fb47a7553e2548b0b534453bd897df97.jpg

Проектируя Zen, мы хотели разработать новое и современное во всех отношениях ядро. Архитектура была оптимизирована для достижения более высоких показателей производительности, пропускной способности и энергоэффективности, чтобы процессоры могли справляться с самыми требовательными приложениями. В результате Zen получился куда более производительным решением, ознаменовав собой возвращение компании AMD на рынок высокопроизводительных систем, показывая выполнение на 40% больше инструкций за такт без увеличения энергопотребления1. Эта амбициозная цель была достигнута нами за счет целенаправленного акцента на производительности и энергопотреблении. Заново разработанная микроархитектура включает в себя значительные изменения в области обработки инструкций, схемы работы исполнительных модулей и подсистемы кэш-памяти для ускорения выполнения задач и их параллельной работы. Как мы показали на прошедшей в Стэнфордском университете конференции Hot Chips 2016, Zen отличается улучшенным прогнозированием ветвлений, выбирая нужные инструкции, и работает с кэшем micro-op, для лучшего выполнения этих инструкций. Так же новая архитектура поддерживает на 75% большую глубину планирования, увеличивая количество инструкций, а также выполняет больше инструкций в параллельном режиме, благодаря увеличению ширины инструкций на 50% по сравнению с предыдущим поколением ядер. Эта комбинация обеспечивает огромный прирост вычислительной мощности за каждый такт.

Но если у вас есть мощный двигатель, вам нужно заправлять его топливом. Мы условно называем этот процесс «кормить зверя». И в нашем случае топливо — это данные и инструкции, получаемые из памяти. Мы переработали иерархию кэш-памяти, обеспечив чипу 8 Мб кэша L3, общую кэш-память L2 для инструкций и данных, а также отдельные объемы кэша с низким уровнем задержек для команд и данных. Отдельно взятое ядро теперь может работать с кэшем в пять раз быстрее, чем в предыдущей архитектуре.

b15bc044c6f543a48ad515683d460241.jpg

Блок Pre-fetcher ядра Zen играет критически важную роль для пропускной способности и воплощает в себе один из самых сложных алгоритмов работы, созданных для процессоров. Pre-fetcher предполагает и определяет, какая инструкция будет нужна в следующем такте, основываясь на данных о текущей задаче. То, насколько хорошо вы реализуете задуманное, и насколько быстро вы можете исправлять ошибки — вопрос не только науки, но также искусства, и в случае с Zen мы добились в этом аспекте впечатляющих результатов.

Значительное повышение пропускной способности в Zen по сравнению с предыдущим поколением процессоров объясняется переходом к архитектуре параллельной многопоточности (SMT). Такой подход позволяет ядру отслеживать задачи в рамках программы, и когда задача ставится на паузу, дожидаясь выполнения другой команды или поступления данных, на обработку берется другая задача, которая не находится в режиме ожидания. Таким образом, с точки зрения ПО, мы получаем дополнительные процессорные ресурсы при включенном режиме SMT.

Наконец, о повышении энергоэффективности. ЦП Zen был разработан для использования в разных устройствах — от ноутбуков с пассивным охлаждением до суперкомпьютеров — и во всех из них необходима высокая энергоэффективность. В мире, где прирост производительности в 10% считается значительным, наша цель в 40% увеличения производительности без дополнительного увеличения питания на первый взгляд казалась невозможной. Однако инженеры AMD сфокусировались на задаче и нашли новые способы снижения энергопотребления и оптимизации микроархитектуры, а также применили более прогрессивную схему управления тактовой частотой.

Стремление к повышению энергоэффективности было заложено в продукт с самого начала: при создании нового дизайна инженеры старались сэкономить каждый микроватт, и каждая цепь была оптимизирована с точки зрения мощности. В результате если даже малая часть процессора не вовлечена в активную работу, она полностью отключается, чтобы не допустить лишнего потребления энергии, но когда вы разгоняете тактовую частоту и увеличиваете нагрузки, процессор демонстрирует очень высокую производительность в расчете на один Ватт. Кроме этого Zen произведен с использованием нового техпроцесса 14нм FinFET. Транзисторы FinFET меньше, экономичнее и производительнее, чем аналоги предыдущего поколения. Эта выигрышное решение от нашего промышленного партнера позволило нам достичь максимального эффекта при реализации новой микроархитектуры вычислительных ядер. А возможности модификаций транзисторов FinFET позволяют создать широкий спектр решений: от маломощных с низким потреблением, до чипов для больших нагрузок с более высокой частотой и производительностью.

Какие результаты принесут все эти инновации в итоге, станет ясно уже в следующем году, когда первая продукция с процессорами на базе ядер Zen появится на рынке, однако уже сегодня можно сказать, что лабораторные тесты нас впечатляют. Недавно мы продемонстрировали 8-ядерный / 16-поточный процессор для настольных ПК «Summit Ridge» и 32-ядерный / 64-поточный процессор «Naples» для серверов. Оба эти процессора с ядрами Zen позволяют нам с большим оптимизмом смотреть в будущее. Важно также понимать, что Zen — это лишь промежуточный этап на пути к будущему высокопроизводительных вычислений AMD с архитектурой x86. Наш план разработок включает в себя последующие поколения чипов с дополнительными улучшениями, а наши команды уже сегодня работают над новыми проектами, потому что постоянные изменения и тенденция к росту производительности продолжают задавать темп развития отрасли.

Марк Пейпермастер, старший вице-президент и технический директор в AMD
f6d76e64ee0a487ab2d034264eaaa597.jpg

На основе внутренних оценок производительности ядер Zen архитектуры x86 по сравнению с ядрами «Excavator» x86.

© Geektimes