> > > > Интервью с Ади Йоаз, старшим архитектором производительных ядер Intel

Интервью с Ади Йоаз, старшим архитектором производительных ядер Intel

Опубликовано:

intel-2020Нам удалось взять интервью у Ади Йоаз, старшего архитектора производительных ядер и почетного сотрудника Intel. Изначально мы планировали посетить Хайфу в Израиле, но из-за ковидных ограничений поездку пришлось отменить. Поэтому мы провели видеоконференцию, во время которой взяли интервью.

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

Некоторые технические термины в интервью могут быть не всем знакомы, поэтому позвольте по ним вкратце пробежаться. Процессоры Alder Lake относятся к гибридному производительному дизайну. То есть у них используются два типа ядер: производительные (которые как раз разрабатывал Ади Йоаз) и эффективные. Эффективные ядра также встречаются в процессорах Atom, а производительные формируют основу процессоров Xeon Sapphire Rapids. Микроархитектура производительных ядер носит название Golden Cove.

Ниже приведены статьи по теме Alder Lake, с которыми мы рекомендуем ознакомиться.

Интервью

Андрей Шиллинг: Возможно, вы захотите представиться и вкратце рассказать о проектах, над которыми работаете в Intel?

Ади Йоаз: Я присоединился к Intel примерно 25 лет назад, и в 2000 году меня направили в Остин (Техас), чтобы собрать команду, которая сегодня работает над эффективными ядрами. В Остине я провел четыре года, которые ушли на формирование команды. В 2003 году я вернулся в Израиль. И с тех пор меня можно назвать ведущим архитектором всех поколений ядер, разрабатывавшихся в Хайфе.

Примечание редакции: Ади показал данный слайд, где зеленым показаны дизайны, разработанные в Хайфе (Израиль). В том числе Yonah, Merom и Penryn. Дизайны Nehalem и Westmere (синие) разрабатывались в Орегоне, а Sandy Bridge и Ivy Bridge - снова в Израиле. Что несколько напоминает известную философию "тик-так", когда "так" означает переход на новую архитектуру, а "тик" - на новый техпроцесс. Но к этому мы вернемся чуть позже.

После Haswell и Broadwell все последующие дизайны разрабатывались в Хайфе. Ади был ведущим архитектором Skylake, Ice Lake, Tiger Lake и теперь Alder Lake и Sapphire Rapids.

Но вернемся к интервью. Почему разработка новых микроархитектур велась в двух местах, Орегоне и Хайфе. Можно ли это назвать своего рода состязанием между командами разработчиков?

Позвольте пояснить, как идет взаимодействие между Израилем и Орегоном. Но здесь я хочу упомянуть и третью команду в Остине, которая занята разработкой эффективных ядер (примечание редакции: Atom). Между израильской командой и коллегами из Портленда был наработан механизм, который мы называем "пинг-понг". Как вы можете видеть, начиная с дизайна Skylake ядра разрабатывались только в Израиле. То есть "пинг-понг" работал на протяжении лишь нескольких поколений. Дело в том, что каждая команда отвечала за свой крупный "так". Затем следовал "тик", соответствующий переходу на новый техпроцесс. Следующая пара шагов была за командой Израиля, затем эстафетная палочка переходила к команде из Орегона.

Идея действительно была в том, чтобы создать своего рода конкуренцию между командами. С одной стороны, конкуренция заставляет команды искать наилучшие технологии и идеи. Но каждая команда знает, что ей придется продолжать работу соперника. Поэтому здесь велика доля сотрудничества и взаимодействия между командами. Например, я знал, что мне придется взять Westmere и выпустить Sandy Bridge, то есть продолжить работу команды из Портленда. Затем мы выпустили Ivy Bridge, а команде из Портленда пришлось продолжать работу уже в виде Haswell. То есть они работали над тем, что было сделано нами в дизайнах Sandy Bridge и Ivy Bridge.

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

Андрей Шиллинг: Конкуренция полезна, но создается впечатление, что сегодня израильская команда справляется лучше?

Ади Йоаз: Действительно сейчас разработкой занимается Израиль, но мы проводим оценку возможностей Орегона, и в будущем планируем вернуться к режиму конкуренции, который мы называем "пинг-понг". Я думаю, что это лучше скажется на работе команды - нужно бороться с собой, выдвигать лучшие идеи, поскольку если ты этого не сделаешь, то с идеями подоспеют конкуренты.

Андрей Шиллинг: Занималась ли ваша команда портированием Cypress Cove на 14 нм?

Ади Йоаз: В Израиле находится крупный центр дизайна чипов, у нас есть дочерние команды в Индии и других странах. Команда архитекторов под моим руководством полностью расположена в Израиле, но команды реализации, которые выполняют перенос архитектуры под конкретный техпроцесс, могут располагаться в других местах. Если ответить конкретно на ваш вопрос, то портирование Cypress Cove выполнялось в Индии.

Андрей Шиллинг: Дизайн производительных ядер Golden Core предназначен для процессоров Core, но также и Sapphire Rapids. Пришлось ли пойти на какие-либо другие компромиссы помимо размеров кэшей при разработке дизайна Core для клиентских и серверных сегментов?

Ади Йоаз: Мы постоянно находимся в поиске инноваций, которые позволили бы лучше справиться с разными вызовами. Например, мы хотели добавить новый движок машинного обучения в серверный дизайн Sapphire Rapids, который необходим для данного рынка, но уже не так актуален для клиентского сегмента. Поэтому мы создали дизайн нового сопроцессора, назовем его так. В случае же клиентских ядер мы убрали сопроцессор. Поэтому серверы получат необходимые преимущества, но клиентам не придется за него платить (примечание редакции: в плане недостатков). Мы постоянно ищем новые пути, чтобы лучше адаптировать наши продукты к конкретным сегментам рынка. Причем без ущерба для других сегментов рынка, убирая технологии или функции, которые на этих сегментах менее актуальны.

Андрей Шиллинг: Я пересмотрел вашу презентацию на Architecture Day, посвященную производительным ядрам. Вы упомянули, что Branch Target Buffer является динамическим, его можно уменьшить для экономии энергии, но также увеличить, если требуется прирост производительности. Что это значит? Может ли буфер быть больше 12k?

Ади Йоаз: Нет, он не может быть больше 12k. Не все пользователи понимают, что даже производительные ядра должны обеспечивать хорошую эффективность. То есть мы не можем позволить производительным ядрам быть очень "прожорливыми". И с каждой функцией мы думаем над тем, как оптимизировать энергопотребление, чтобы оно не вышло за расчетные диапазоны. И оптимизация под эффективность (например, динамический Target Buffer) как раз и показывает, что мы пытаемся всегда держать энергопотребление под контролем.

Андрей Шиллинг: Как вы находите оптимальную иерархию кэшей и их емкость? Есть ли какие-либо симуляции, которые позволяют узнать, что потребуется приложениям через пять лет? Какие размеры кэшей будут у следующих архитектур?

Ади Йоаз: Здесь важно понимать две особенности. Первая: с каждым поколением мы пытаемся создать сбалансированную машину (примечание: дизайн). И с каждым изменением, которое мы будем вносить, машину следует балансировать по микрооперациям, которые будут выполняться на внеочередном конвейере. Баланс подразумевает, что микроопераций не должно быть слишком мало или слишком много. Это первый важный фактор. И с каждым поколением необходимо правильно собирать и перебалансировать машину.

Вторая: эволюция нагрузок. Конечно, мы скрупулезно анализируем нагрузку с каждым поколением, чтобы оценить работу нагрузок с каждым поколением, а также рассматриваем тенденции непосредственно приложений. Например, мы видим, что многие родные приложения переходят в браузер, размер кода увеличивается, как и "отпечаток" кода. Массивы данных тоже становятся больше. И мы тщательно отслеживаем подобную эволюцию нагрузок. Собственно, здесь мы получаем еще один фактор, который влияет на настройку размеров кэшей, TLB, блоки предсказания ветвлений и различные функции микроархитектуры. У нас есть очень точные модели производительности, с которыми мы изучаем предлагаемые микроархитектуры. Мы смотрим, как прогнозируемые нагрузки будут вести себя на новых микроархитектурах, и принимаем те или иные решения.

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

Андрей Шиллинг: Например, вы решили добавить поддержку HBM2E к процессорам Sapphire Rapids, поскольку есть нагрузки, которые работают быстрее, если память расположена так близко?

Ади Йоаз: На самом деле все несколько сложнее. В случае машинного обучения приходится работать с очень большими массивами данных. Чтобы все их обработать, требуется высокая пропускная способность и быстрый доступ к памяти. С теми же Sapphire Rapids мы добавили приличные вычислительные ресурсы для матричных умножений. Собственно, это первый CPU, где возможность матричных умножений реализована напрямую в ядрах CPU. Можно выполнять эти вычисления как обычный код x86, пользоваться всеми инструментами. Все это можно назвать дружественным подходом к программистам, которые планируют работать с алгоритмами машинного обучения. Данные алгоритмы подразумевают обработку большого количества данных, поэтому необходим достаточно хороший интерфейс памяти, и HBM обеспечивает необходимую пропускную способность. То есть причина, по которой память HBM вновь стала актуальной, заключается в нагрузках, которым требуются большие объемы данных. И чтобы поддержать эти нагрузки, нам понадобились возможности HBM.

Андрей Шиллинг: Я думаю, что AMX - одна из наиболее важных черт Sapphire Rapids. В презентации вы упомянули, что движок TMULL подключен к ядрам P как к хосту. Возможно ли добавить еще один сопроцессор для ускорения вычислений? Является ли сопроцессор внешним компонентом, как GPU-ускоритель? Или что именно понималось под еще одним сопроцессором?

Ади Йоаз: Они действительно весьма тесно связаны. Идея была в том, чтобы добавить возможность умножения матриц как обычные сложения или умножения. Сегодня ядра CPU без проблем справляются с обычными арифметическими операциями. И мы добавили возможность выполнения матричного умножения в рамках основного потока вычислений. То есть не нужно выходить за пределы ядра для выполнения матричного умножения. Поэтому здесь речь идет о тесной интеграции. Представьте себе, что в процессоре появился еще один блок АЛУ, который может выполнять операцию ADD, но вместо нее используется матричное умножение.

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

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

Андрей Шиллинг: Задача ведущего архитектора заключается в поиске правильного баланса между производительностью и эффективностью, а также проработке дизайна в целом. Но многое может зависеть, например, от доступных техпроцессов. В какой степени финальный продукт зависит от того, что сегодня доступно?

Ади Йоаз: Конечно, мы хотим выжать из продукта максимум, поэтому архитектура связана с улучшениями техпроцессов. Но прямой зависимости здесь нет. Каждый раз мы хотим использовать лучший техпроцесс из доступных. Но, как можно видеть по модели "тик-так" ранее, архитектура нового поколения сначала реализуется на старом техпроцессе. Если выбрать сразу и новую архитектуру, и новый техпроцесс, то можно выжать максимум. Но все же здесь две параллельные линии развития, и когда принимается решение о том, какой техпроцесс использовать с архитектурой, они пересекаются. Конечно, нам всегда хочется выжать максимум, и перейти на новую важную архитектуру вместе с новым техпроцессом. Но прямой зависимости нет.

Андрей Шиллинг: Наверное, у вас камень с плеч спал, когда Intel вернулась к прежнему темпу развития техпроцессов? Технология 10 нанометров уже успешно запущена, а планы будущих техпроцессов выглядят обещающе.

Ади Йоаз: Суть не в том, что мне стало легче. Тут вопрос больше в том, что мы можем максимизировать все векторы в нашем распоряжении - архитектуру, техпроцесс, все остальное. Хорошо, когда находишься на переднем крае технологий.

Андрей Шиллинг: Довольны ли вы тем, как Golden Cove показывает себя в процессорах Alder Lake и Sapphire Rapids? Можно ли было сделать лучше? И если да, то когда начали появляться такие мысли?

Ади Йоаз: Сразу же сказу, что я очень доволен, поскольку мы видим хорошую обратную связь и отзывы технической прессы и сайтов, в том числе по результатам тестов. Для нас все это подтверждение того, что мы сделали большой шаг в правильном направлении с Alder Lake и скоро с Sapphire Rapids. Мы добавили прорывные технологии как в клиентском, так и серверном сегментах. Мы видим, что рынок положительно реагирует на новые технологии, мы получаем хорошую обратную связь от многих пользователей, что побуждает нас двигаться дальше. В будущем мы планируем подняться на новую ступеньку по функциям и новым технологиям. Да, меня все это очень вдохновляет. Большое количество положительных отзывов дает мне отличный стимул дальнейшей работы, я надеюсь продолжить успех Alder Lake и Sapphire Rapids с новым поколением, которое мы разрабатываем здесь же в Хайфе.

Андрей Шиллинг: Спасибо, Ади!

Ади Йоаз: Вам спасибо!

Подписывайтесь на группы Hardwareluxx ВКонтакте и Facebook, а также на наш канал в Telegram (@hardwareluxxrussia).