Серверные процессоры AMD Epyc 7002: серьезная заявка на эпичную победу

Введение

Прошел месяц с момента анонса процессоров AMD Epyc второго поколения. И сейчас — самое время для того, чтобы спокойно и без лишней спешки разобраться во всех нововведениях и рыночных перспективах этих CPU. Еще чуть раньше AMD запустила удачные настольные процессоры Ryzen на основе улучшенной микроархитектуры Zen 2, которые очень хорошо показали себя в тестах, завоевав внимание индустрии, но если компания хочет заработать на процессорах действительно большие деньги, то приходится обращать внимание и на рынок серверов.

В прошлый раз AMD завоевывала рынок серверных процессоров 64-битными процессорами Opteron в уже очень далеком 2004 году. С тех времен доля AMD на этом рынке скатывалась практически до нуля, но уже первое поколение процессоров Epyc на основе микроархитектуры Zen 1, позволило им набрать некоторое количество клиентов, хотя до той же Intel оставалось еще очень далеко. Анонс первого поколения процессоров Epyc в июле 2017 года начал новую страницу компании на этом рынке. Уже первые решения линейки предлагали большее количество вычислительных ядер, повышенную пропускную способность памяти и больше возможностей для подключения периферии, по сравнению с тогдашними конкурентами от Intel.

Но многие индустриальные игроки ждали чего-то еще более конкурентоспособного, и наконец-то дождались — второе поколение Epyc решило многие проблемы первого, перешло на самый совершенный техпроцесс, благодаря хитроумной компоновке обеспечив максимальное количество ядер (для x86-совместимых решений), а также предложило отличные возможности по поддержке оперативной памяти и внешних устройств, подключаемых по шине PCI Express. Второе поколение Epyc, известное под кодовым именем «Rome», и вышедшее совсем недавно, предлагает еще больше производительности вместе с некоторыми новыми возможностями.

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

Неудивительно, что производители вычислительных решений агрессивно выводят на серверный рынок все новые и новые продукты на основе CPU и GPU, и определенное преимущество тут будет у тех, кто имеет продвинутые технические возможности и новые подходы по интеграции. Также очень важна и развитая экосистема, поддерживаемая этими компаниями. Выпуск первых решений Epyc открыл новую страницу для компании AMD, так как эти серверные процессоры предлагали более высокую производительность при меньшей цене, не говоря об ином уровне совокупной стоимости владения, по сравнению с конкурентами.

Новые серверные процессоры были неплохо приняты индустрией при всей ее консервативности и инерционности, было выпущено большое количество аппаратных решений с применением Epyc, они были поддержаны программно, в том числе и самыми популярными облачными платформами: Microsoft Azure, Amazon Web Services, Tencent Cloud, Baidu, Oracle Cloud и другими. Но серверные решения — это не самая стремительно меняющаяся индустрия, и для того, чтобы еще больше усилить продвижение Epyc в массы, было необходимо еще улучшать возможности этих процессоров. Чем AMD и занималась прошедшие два года, работая над вторым поколением семейства серверных процессоров Epyc.

Уже сейчас понятно, что серверные процессоры AMD Epyc второго поколения еще сильнее изменили картину на рынке, по сравнению с первым, и установили новые стандарты решений для современных центров обработки данных по производительности и стоимости эксплуатации. Новые серверные процессоры AMD обеспечивают высочайшую производительность в широком спектре задач, имея до 64 ядер на процессор. Epyc 7002 обеспечивают до двух раз большую производительность по сравнению с предыдущим поколением серверных процессоров компании, и на 25%-50% меньшую совокупную стоимость владения, по сравнению с конкурирующими продуктами.

Наиболее впечатляющим стал прирост количества ядер и многопоточной производительности — новинки более чем вдвое быстрее первого поколения Epyc, что важно в том числе и потому, что с их помощью можно использовать односокетные серверы там, где раньше использовались два процессора. И все это великолепие — в том же самом сокете и с небольшим ростом энергопотребления и тепловыделения. Новые CPU можно устанавливать в платформы первого поколения, хотя для поддержки части функциональности потребуется обновить BIOS системной платы, предназначенной для установки Epyc 7001. Но так как для серверных процессоров такой апгрейд не слишком распространен, то чаще всего будут приобретаться платформы второго поколения, раскрывающие все возможности Epyc 7002, такие как поддержка PCIe 4.0 с вдвое большей пропускной способностью, полезной для скоростных Ethernet-адаптеров и SSD-накопителей, например. Давайте поговорим обо всем поподробнее.

Техпроцесс и микроархитектурные улучшения

Сразу можно сказать, что новые процессоры Epyc 7002 стали первыми по многим показателям. В том числе, это первые 64-ядерные x86-совместимые процессоры, первые x86-совместимые, созданные с применением 7 нм техпроцесса, первые процессоры с поддержкой шины PCI Express 4.0, первые процессоры с поддержкой памяти стандарта DDR4–3200, и т. д. и т. п.

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

Инвестиции в разработку 7 нм решений для AMD оправдались с лихвой, что особенно хорошо заметно на фоне проблем главного конкурента с освоением примерно аналогичного по возможностям техпроцесса. Даже несмотря на то, что у TSMC и Intel очень разные «нанометры», и картинка выше слегка преувеличивает превосходство 7 нм над 10 нм, ранее преимущество всегда было за имеющей собственное производство компанией Intel, но теперь, за счет собственных инвестиций и совместной работы с тайваньской компанией TSMC, а также с учетом проблем конкурента с их полупроводниковым производством, AMD не просто сравнялась с соперником, но и вышла вперед — такого ранее еще не было!

Почему применяемый техпроцесс вообще столь важен? Да хотя бы уже потому, что он позволяет обеспечить более низкую себестоимость, а вместе с ней и снижение цены на продукцию. По мнению индустриальных аналитиков, современные 7-нм процессоры Epyc с многокристальной чиплетной компоновкой достигают уровня выхода годных кристаллов около 90%, в то время как Intel довольствуется более чем вдвое меньшей долей выхода годной продукции. С учетом разницы в техпроцессах (14 нм у Intel и 7 нм у AMD на TSMC), каждый процессор первой обходится раза в полтора дороже даже при том, что второй приходится платить сторонним производителям: TSMC и GlobalFoundries. Эти примерные прикидки недвусмысленно говорят о том, что ставка AMD оправдалась.

Однако новой технологией производства дело не ограничилось, в AMD решили исправить одну из явных проблем первого поколения архитектуры Zen — относительно низкое количество исполняемых инструкций за такт (IPC). Во многом именно за счет этого конкурент имел преимущество над решениями AMD в некоторых задачах из разных сфер применения. И в Zen 2 инженеры смогли добиться прироста в скорости вычислений при той же частоте на 15%, а если говорить о приросте в многопоточных вычислениях, то в типичных серверных задачах новый Epyc быстрее старого при прочих равных уже на 23%, и это — без учета удвоенного количества вычислительных ядер и большей рабочей частоты!

Каким образом этого достигли, что именно улучшили во второй версии Zen? Основные вопросы мы уже рассматривали в статье, посвященной выходу настольных процессоров Ryzen, а отдельные ядра в Epyc ничем от них не отличаются. В Zen 2 сделали массу микроархитектурных улучшений, по сравнению с Zen 1.

Если вкратце, то для увеличения производительности в новой микроархитектуре улучшили предсказание переходов (появился новый предсказатель переходов TAGE), слегка увеличили целочисленную производительность, увеличив буферы и улучшив планировщики, оптимизировали работу кэш-памяти первого уровня, практически удвоив ее пропускную способность, удвоили емкость L3-кэша и т. д. Кроме этого, в Zen 2 были добавлены некоторые новые инструкции.

Но все же самое важное изменение в Zen 2 — увеличение ширины блока операций с плавающей запятой с 128 до 256 бит. Благодаря этому улучшению, все процессоры архитектуры Zen 2 исполняют 256-битные AVX2-инструкции вдвое быстрее, по сравнению с первым поколением. То есть, в Zen 2 появилась поддержка выполнения двух AVX-256 инструкций за такт, что позволило AMD заявить о двукратном росте FP-производительности. Причем, в отличие от решений Intel, второе поколение Epyc не снижает частоты при выполнении AVX2 слишком сильно, а просто действует в рамках ограничений по энергопотреблению, установленных платформой.

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

В новых вычислительных ядрах появился третий блок генерации адресов (AGU), улучшающий доступ исполнительным устройствам к данным. Ширина шины кэш-памяти была увеличена вдвое, а объем кэш-памяти третьего уровня удвоен — его объем достиг 32 МБ на каждый чиплет. Это помогает ускорить обращение исполнительных устройств к данным. Были увеличены размеры очередей планировщиков и размер регистрового файла, повышающие эффективность исполнения многопоточного кода.

Дополнительное преимущество второе поколение Epyc получило при оптимизации энергоэффективности в виде улучшенного управления питанием, позволяющим получить максимально возможную турбо-частоту при разном количестве активных вычислительных ядер. То есть, как и в настольных Ryzen, даже фабричные частоты выжимают из CPU практически всю возможную производительность. Если говорить о конкретных цифрах, то при восьми активных ядрах тактовая частота топовой модели Epyc 7742 составляет 3,4 ГГц, при 16 падает до 3,33 ГГц, и плавно снижается до 3,2 ГГц для всех 64 ядер.

Отметим, что средняя однопоточная производительность Epyc 7002 в широком круге задач выросла даже несколько больше, чем на 15%, о которых заявила AMD, судя по тестам наших многочисленных коллег. И очень похоже, что с такими характеристиками и возможностями, решения AMD будут успешно сражаться не только на рынке настольных ПК, но и на рынке высокопроизводительных вычислений, где до сих пор царил Intel Xeon.

Чиплетная компоновка

Но все же самое главное, чем бьет конкурента новый серверный процессор AMD — инновационное компоновочное решение с использованием так называемых чиплетов — отдельных кристаллов, связанных быстрой шиной. Уже в первом поколении Epyc использовался не единый кристалл, а четыре отдельных, включающих в себя вычислительные ядра, контроллеры памяти и системы ввода-вывода, и все они были объединены быстрой шиной. Такой подход позволил обойти ограничения на размер единого кристалла и снизить себестоимость производства многоядерных CPU, ведь выход годных у маленьких кристаллов выше. Заодно повысилась масштабируемость, так как количество отдельных кристаллов, содержащих по несколько ядер, можно было варьировать в более широких пределах.

Но во втором поколении Epyc инженеры компании пошли еще дальше, применив второе поколение архитектуры AMD Infinity, оптимизированной для многоядерных вычислений. В первом поколении Epyc одним из спорных моментов была повышенная сложность решения: 32-ядерные процессоры содержали по четыре кристалла с 8 ядрами, каждый из которых имел по два канала памяти, а в двухпроцессорной конфигурации дела были еще хуже, ведь она приводила к сложностям при доступе к памяти из ядер в разных процессорах. Из-за этих проблем большое количество приложений показывало недостаточно высокую производительность даже при сравнительно большом количестве CPU-ядер.

Во втором поколении Epyc проблему решили при помощи центрального чиплета ввода-вывода, в котором содержатся все необходимые для работы контроллеры. Полная версия чипа состоит из восьми чиплетов Core Complex Die (CCD) и одного ядра ввода-вывода I/O Die (IOD). Все CCD соединены с центральным хабом при помощи высокоскоростных каналов Infinity Fabric (IF), и при их помощи получают данные из памяти и внешних PCIe-устройств, а также от соседних вычислительных ядер.

Каждый из CCD-чиплетов содержит по паре четырехъядерных блоков Core CompleX (CCX), которые также включают и 16 МБ L3-кэша. Получается, что топовый 64-ядерный Epyc состоит из 8 чиплетов CCD и 16 блоков CCX, которые обмениваются данными друг с другом при помощи центрального IOD-чиплета.

При этом разные чиплеты используют оптимальный техпроцесс для их производства: CPU-чиплеты производятся на фабриках TSMC с использованием техпроцесса 7 нм, а чиплет ввода-вывода — на GlobalFoundries с применением технологии 14 нм. Кристалл с вычислительными ядрами и кэш-памятью использует самый совершенный техпроцесс для того, чтобы снизить размер кристалла, максимизировать производительность при минимальном энергопотреблении, а чиплет с контроллерами памяти и PCIe не нуждается в столь радикальных мерах и вполне обходится обкатанным и проверенным техпроцессом. AMD называет такую упаковку гибридной мультиядерной системой-на-чипе (SoC).

Это полезно в том числе и потому, что схемы ввода-вывода сложнее производить на более тонких техпроцессах, и их перенос на давно и хорошо отлаженную технологию производства упрощает и удешевляет производство, ускоряя вывод решений на рынок. В результате такого подхода AMD получила значительно преимущество, производя сравнительно маленькие CCD-кристаллы по 7 нм с хорошим уровнем выхода годных.

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

Во втором поколении серверных процессоров Epyc было снижено количество узлов удаленной памяти NUMA. Если в первом поколении каждое ядро имело три возможных времени доступа к памяти, физически присоединенной к разным кристаллам процессора (к контроллерам памяти рассматриваемого кристалла, контроллеров в соседних кристаллах и контроллеров во втором чипе), то во втором поколении Epyc варианта лишь два: контроллеры памяти в текущем чиплете ввода-вывода и в соседнем.

Соответственно, время доступа в первом поколении Epyc может быть 90, 141 или 234 нс, а во втором — или 104 или 201 нс. И в среднем, задержки доступа к памяти при двухчиповой схеме были снижены на 14%-19%. Это улучшение очень важно, так как производительность в большинстве современных задач очень сильно зависит от работы подсистемы памяти, включая эффективность кэширования данных.

Чиплетная компоновка сработала отлично, этот шаг был фактически обязателен для дальнейшего увеличения количества ядер, и иная схема была бы куда менее выгодной. Конечно, монолитный кристалл обеспечил бы куда меньшие задержки как доступа к памяти, так и между вычислительными ядрами, но тогда вряд ли удалось бы увеличить количество ядер до 64 штук — для примера можно посмотреть на решения конкурента.

Есть один неприятный момент в схеме, принятой AMD. Если требуется доступ к данным в кэше, который принадлежит не к тому же CCX, но находящемся в том же кристалле CCD, то он будет таким же медленным (относительно), как и доступ к данным кэша вообще из другого кристалла. В таком случае, данные всегда будут проходить по шине IF в чиплет ввода-вывода и обратно — уже к нужному ядру.

Это не так страшно в реальности, так как каждое вычислительное ядро в составе CCX имеет по 4 МБ L3-кэша, что заметно больше, чем у конкурирующих процессоров Intel, и блоки предвыборки данных имеют куда больший объем для того, чтобы загрузить все необходимые данные. Хотя некоторые задачи, вроде приложений баз данных, могут пострадать, а относительно медленный обмен данными с центральным чиплетом снижает скорость синхронизации. И в некоторых тестах 28-ядерный Intel Xeon 8280 именно поэтому оказывался быстрее 32-ядерного Epyc 7601 из предыдущего поколения.

Возможно, есть и другие подобные задачи, но в большинстве случаев 16 МБ L3-кэша для каждых четырех ядер в составе CCX должно быть вполне достаточно. Больший объем L3-кэша в Epyc 7742 дает значительно меньшую задержку доступа при объеме данных между 4 и 16 МБ, по сравнению с аналогичным Epyc из предыдущего поколения, а также L3-кэш новых Epyc весьма быстр, по сравнению с решениями конкурента в Intel Xeon Platinum 8280, что подтверждают и синтетические тесты.

Сама по себе шина Infinity Fabric в Epyc второго поколения была ускорена, ее ширина выросла вдвое — с 256 до 512 бит. И задержки при пересылке данных между ядрами действительно заметно улучшились. Разные ядра процессора обмениваются данными на 25%-33% быстрее, и скорость обмена между ядрами в пределах одного блока CCX получается даже лучше, чем у конкурента с кольцевой шиной. Ускорение Infinity Fabric проявляется не только при пересылке данных между ядрами. Каждый блок CCX имеет собственную кэш-памятью третьего уровня в 16 МБ, и обращения через Infinity Fabric происходят, когда ядра одного блока CCX нуждаются в данных, находящихся в L3-кэше соседнего блока, не говоря уже о других чиплетах. Так что ускорение Infinity Fabric положительно сказалось на производительности в широком круге задач при активном доступе к данным.

Сама подсистема кэш-памяти в новых процессорах мало изменилась, кэш-память первого и второго уровней сохранила свой объем и организацию, а вот кэш третьего уровня был удвоен (16 МБ на каждые четыре ядра) за счет перехода на 7 нм техпроцесс, который позволил увеличить транзисторный бюджет для чиплетов. Увеличение объема L3-кэша стало в том числе причиной того, что в новых процессорах (и Epyc и Ryzen) контроллеры памяти теперь расположены в не рядом с вычислительными ядрами, а в отдельном чиплете ввода-вывода. Кэширование большого объема данных нужно для того, чтобы снизить задержки, когда вычислительные ядра простаивают в ожидании получения данных из памяти.

Рост объема кэш-памяти традиционно сопровождается некоторым увеличением ее задержек, но рост латентности L3-кэша в случае перехода от Zen 1 к Zen 2 оказался довольно небольшим. А задержки L1- и L2-кэша остались на прежнем уровне из-за отсутствия особых изменений. А вот L1-кэш стал быстрее, так как теперь он способен обслуживать два 256-битных чтения и одну 256-битную запись за такт, что вдвое больше, чем у Epyc первого поколения. И если скорость работы L1- и L2-кэша в новых процессорах архитектуры Zen 2 сопоставимы с параметрами кэш-памяти процессоров конкурента, то L3-кэш обеспечивает даже меньшие задержки по сравнению с кэшем процессоров Intel. Впрочем, не все так просто, и алгоритмы работы L3-кэша в процессорах разных производителей отличаются, как и их практическая эффективность.

А вот показатели задержек доступа к памяти во всех Zen 2 дают некоторый повод для беспокойства — по этим параметрам новинки оказываются даже несколько хуже предшественников, проигрывая по латентности памяти процессорам конкурента. Все дело в той самой чиплетной компоновке, которая разделила вычислительные ядра и контроллеры памяти. Чиплеты с вычислительными ядрами и L3-кэшем отделены от вынесенных в чиплет ввода-вывода контроллера памяти, контроллера шины PCI Express и других элементов. Между памятью и всеми процессорными ядрами появилось еще одно звено в виде шины Infinity Fabric. И хотя AMD утверждает, что она аналогична по характеристикам шине, связывающей пару CCX блоков внутри чиплета, вряд ли это не сказывается на задержках, возникающих при доступе к данным.

Но насколько хуже стала работа с памятью в новых серверных процессорах AMD? Увеличение задержек во всех процессорах Zen 2 по сравнению с процессорами прошлого поколения достигает 10%, да и реальная пропускная способность при записи в память несколько снизилась. Отделение контроллера памяти от вычислительных ядер не могло привести к другому результату, ведь именно для ускорения доступа к ней лет 15 назад переносили контроллер памяти из чипсета в CPU. В итоге, ПСП при чтении у новых Epyc действительно достаточно высока, а вот по скорости записи они уступают конкурентам от Intel. Это тем более неприятно, так как по скорости работы с памятью первые Epyc и так проигрывали решениям конкурента, а теперь ситуация в некоторых задачах может даже усугубиться.

Но все же новая организация доступа к памяти — это правильное решение. Ведь основное преимущество второго поколения Epyc перед первым состоит в том, что под него гораздо проще оптимизировать программное обеспечение. Каждый процессор (в двухпроцессорной конфигурации) имеет лишь одно возможное значение задержки доступа к памяти, так как каждое ядро имеет одинаковый путь ко всем каналам памяти. А в первом поколении Epyc было две области NUMA на каждый CPU, так как память в них присоединена к разным кристаллам. Так что в двухпроцессорной системе Epyc 7002 будет работать в традиционной NUMA-конфигурации, которую много лет знают программисты. И хотя в некоторых случаях доступ к памяти у Epyc 7001 и получается быстрее, топология первого поколения излишне сложна, и во многих других случаях задержки памяти возрастают, что сложно предсказать и оптимизировать в ПО. Конфигурация памяти Epyc 7002 с точки зрения ПО выглядит гораздо проще, что сократит время, требующееся для его оптимизации.

Основными задачами при разработке микроархитектуры Zen 2 было увеличение пропускной способности внутричиповых соединений, улучшенные возможности по присоединению внешних устройств (большое количество каналов PCIe 4.0), а также улучшенное масштабирование (возможность выпуска продуктов с разным количеством вычислительных ядер и каналов памяти). Процессоры Epyc 7002 совместимы с существующими платформами при межсокетном соединении на скорости в 10,7 ГТ/с, но на втором поколении платформ эта скорость вырастет до 18 ГТ/с, и таких соединений между процессорными разъемами может быть до четырех, что в результате дает пропускную способность до 202 ГБ/с.

Вообще, о внутреннем содержании чиплета ввода-вывода AMD рассказывает довольно мало. Во всех моделях Epyc он идентичен, поддерживая 128 линий PCIe 4.0 и 8 каналов памяти DDR4–3200 с коррекцией ошибок. Поддерживаются модули емкостью до 256 ГБ и рекомендуется равномерно заполнять все каналы одинаковым объемом и типом модулей, хотя в теории можно использовать даже один модуль памяти на всю систему, хотя смысла в этом нет никакого. Средняя задержка доступа к памяти для восьми каналов в рамках одного CPU составляет чуть больше 100 нс, а конкретные значения времени доступа зависят от частоты памяти и типа модулей. При использовании двух модулей на канал, максимальная скорость снижается с 3200 до 2933 или даже до 2666 МГц при наборе модулями большого объема.

Но при всех своих ограничениях и оговорках, улучшенная архитектура AMD Infinity обеспечила довольно высокие показатели по пиковой пропускной способности и объему памяти, а также характеристикам подсистемы ввода-вывода. Так, второе поколение Epyc поддерживает до 4 ТБ памяти стандарта DDR4–3200 при 8 каналах на каждый разъем, с пиковой ПСП до 204 ГБ/с на процессор. То есть, максимальная ПСП на двухпроцессорный сервер для Epyc 7002 получается 410 ГБ/с, тогда как у Epyc 7001 она была 340 ГБ/с, а у конкурирующих процессоров от Intel (Xeon Cascade Lake SP) — лишь 282 ГБ/с.

Другие технологии и новинки

С поддержкой шины PCI Express изменилось немногое, кроме поддерживаемой версии. Для ввода-вывода новым процессорам доступны 128 линий PCIe 4.0 на каждый разъем, с максимальной пропускной способностью в 512 ГБ/с. Модели Epyc 7002 стали первыми x86-совместимыми процессорами с такой поддержкой, когда все восемь x16 каналов на каждый CPU поддерживают удвоенную скорость передачи данных. 16-канальные соединения PCIe 4.0 можно разделить на несколько устройств, требующих меньшую пропускную способность.

Но хотя на каждый CPU есть по 128 линий PCIe 4.0, для двухсокетной системы это количество не увеличится, так как по 64 линии от каждого из CPU забирает связующая их Infinity Fabric (есть возможность получить и 192 линии, забрав часть у шины, связывающей процессоры — с соответствующими последствиями). Линии процессора разбиты на восемь групп по 16 штук, и каждая из них поддерживают разделение до x1, но с общим числом слотов на группу не выше восьми. Половина групп поддерживает переключение восьми линий PCIe в режим SATA3, и в общем получается поддержка до 32 штук SATA- или NVMe-накопителей.

Внедрение шины PCIe 4.0 не нужно недооценивать, ведь она дает удвоенную пропускную способность, важную для NVMe-накопителей и высокоскоростных соединений Infiniband. По данным AMD, обеспечивается вплоть до линейного масштабирования для производительности чтения и записи данных при помощи этих технологий, а для серверов это очень важно. 128 линий PCIe 4.0 с удвоенной пропускной способностью можно использовать для увеличения скорости передачи данных по сети при связи серверных кластеров друг с другом, а для других задач может быть полезной увеличение пропускной способности для связи с GPU- и TPU-ускорителями, предназначенными для ускорения обслуживания нейросетей. То же самое касается и быстрых NVMe-накопителей — с новыми процессорами можно получить довольно высокую плотность таких устройств.

На серверном рынке весьма важно обеспечение безопасности для всех клиентов, и тут AMD имеет явное преимущество перед конкурентом, в том числе если говорить о нашумевших угрозах Spectre, Meltdown, Foreshadow и прочих. Если первое поколение Epyc требовало обновления прошивки и поддержки защиты со стороны ОС, то второе поколение уже имеет в том числе и аппаратные элементы защиты от всех версий Spectre.

Важное обновление касается расширения возможностей шифрования оперативной памяти по алгоритму AES-128, которое практически не сказывается на производительности. Epyc 7002 имеет поддержку второго поколения технологии безопасной виртуализации Secure Encrypted Virtualization 2 (SEV2) и технологии шифрования памяти Secure Memory Encryption (SME). Для этого в чипы Epyc внедрен выделенный 32-битный микроконтроллер «AMD Secure Processor» в виде ARM Cortex-A5, который управляется собственной прошивкой и ОС и обеспечивает криптографическую функциональность.

Это выделенное ARM-ядро управляет криптографическими ключами и является невидимым для x86-ядер. При работе SME, позволяющей обезопаситься от атак неавторизованного доступа к памяти, вся память шифруется при помощи единого ключа прозрачно для пользовательских приложений, а технология SEV2 позволяет выбирать активный криптографический ключ для каждой виртуальной машины. Это используется для защиты виртуальных машин друг от друга, для чего используется отдельный криптографический ключ для главного гипервизора и по ключу для каждой виртуальной машины или их групп, изолируя гипервизор от гостевых виртуальных машин.

Поддержка этих технологий уже имеется в большом количестве серверных ОС, и отличие Epyc 7002 от первого поколения в значительно большем количестве поддерживаемых гостевых виртуальных машин (и одновременно используемых криптографических ключей, соответственно) — технология SEV2 обеспечивает шифрование для 509 уникальных виртуальных машин и совместима с существующей технологией виртуализации AMD-V. Особенностью реализации является прозрачность для аппаратных средств, обращающихся к памяти — все шифрование и дешифрование происходит на лету.

Интересно, что на возможностях серверных процессоров, связанных с обеспечением безопасности, сказалась активная работа AMD над заказными продуктами, включая решения для игровых консолей. Компания применяет опыт, полученный при разработке систем-на-чипе для игровых консолей, в том числе и при создании серверных процессоров. В частности, второе поколение Epyc стало более защищенными благодаря разработке чипов для игровых консолей Microsoft Xbox One и Sony PlayStation 4. Эти компании настояли, чтобы игры запускались в изолированном программном окружении, которое защищалось бы от пиратов при помощи аппаратного шифрования.

Линейка процессоров Epyc второго поколения

Самое время перейти к конкретным моделям новых процессоров. Главное, что их отличает друг от друга — разное количество вычислительных ядер. Так как в каждом из процессорных чиплетов содержится по восемь физических ядер, а CPU-чиплетов на чипе может быть до восьми, то в сумме на процессор приходится до 64 ядер. А в системе на основе двух сокетов их получится еще вдвое больше — до 128 ядер и до 256 потоков.

Подобная чиплетная компоновка позволяет гибко изменять число ядер на CPU, ведь всегда можно сделать конфигурацию с меньшим количеством чиплетов и меньшим количеством активных ядер в каждом чиплете. Компанией AMD было выпущено сразу несколько вариантов Epyc на основе 2, 4, 6 и 8 чиплетов по 8 ядер в каждом. Другие связанные с этим параметры меняются аналогично — объем кэш-памяти третьего уровня составляет по 32 МБ на чиплет, так как каждым четырем ядрам принадлежит блок объемом в 16 МБ, и даже если часть из этих ядер отключена, то объем L3-кэша остается полным.

Система наименований серверных процессоров AMD осталась неизменной с предыдущего поколения. Первая цифра 7 означает серию 7000, следующие две показывают относительное место по позиционированию и производительности (но напрямую не говорят об этом и не масштабируются в зависимости от производительности, например), а последняя означает поколение: 1 или 2. Также есть и дополнительный суффикс P, означающий принадлежность CPU к однопроцессорным — такие модели не работают в двухпроцессорных конфигурациях.

Итак, в целом AMD представила 19 новых серверных CPU, 13 из которых предназначены для двухпроцессорных конфигураций. Все эти процессоры отличаются лишь количеством вычислительных ядер, они имеют одинаковые характеристики по поддержке оперативной памяти (до 4 ТБ памяти стандарта DDR4–3200), а также по 128 полноскоростных линий PCIe 4.0, доступных для подключения внешних устройств.

  Ядер / Потоков Частота, ГГц L3-кэш, МБ TDP, Вт Цена, $
Базовая Турбо
Epyc 7742 64/128 2,25 3,40 256 225 6950
Epyc 7702 64/128 2,00 3,35 256 200 6450
Epyc 7642 48/96 2,30 3,30 256 225 4775
Epyc 7552 48/96 2,20 3,30 192 200 4025
Epyc 7542 32/64 2,90 3,40 128 225 3400
Epyc 7502 32/64 2,50 3,35 128 180 2600
Epyc 7452 32/64 2,35 3,35 128 155 2025
Epyc 7402 24/48 2,80 3,35 128 180 1783
Epyc 7352 24/48 2,30 3,20 128 155 1350
Epyc 7302 16/32 3,00 3,30 128 155 978
Epyc 7282 16/32 2,80 3,20 64 120 650
Epyc 7272 12/24 2,90 3,20 64 120 625
Epyc 7262 8/16 3,20 3,40 128 155 575
Epyc 7252 8/16 3,10 3,20 64 120 475

Хотя топовая модель Epyc 7742 является самым дорогим решением компании AMD за все время, в целом можно сказать, что цены выставлены привлекательные — компания продолжает тренд выпуска продуктов, весьма выгодных по соотношению цены и производительности. И одним из самых удачных процессоров нам видится Epyc 7502, предлагающий 32 ядра, работающих на частоте 2,50—3,35 ГГц — всего лишь за $2600. По сравнению с Epyc 7601 за $4200 из первого поколения, новый процессор имеет столько же ядер, но он лучше во всем остальном: у него выше частота, более производительные ядра, больше кэш-памяти, лучше поддержка памяти и шины PCIe. При всем этом, новинка обойдется значительно дешевле.

То же самое можно увидеть и в других сегментах, а иногда преимущество даже заметнее: Epyc 7552 предлагает вдвое больше ядер при более высокой рабочей частоте, чем у Xeon Platinum 8260, а Epyc 7452 стоит дешевле, чем Xeon Gold 6242. Очень важно та

Полный текст статьи читайте на iXBT