Часть 1 → Часть 2 → Часть 3 → Часть 4
Полцарства за высокую производительность. Когда дело доходит до обработки данных, пропускная способность становится ключевым фактором: ведь чем больше пользователь успеет сделать, тем больше проектов будет выполнено, соответственно и число контрактов возрастет. Пользователи рабочей станции часто вычисляют узкие места в системе и любят бросать ресурсы на решение проблемы, будь то ядра, память или ускорение графики. Threadripper второго поколения, известный как Threadripper 2, выходит за старые пределы соотношения ядер и цены: 2990WX предоставляет 32 ядра и 64 потока всего за $ 1799. Существует еще 2950X с 16 ядрами и 32 потоками, он то и задает новый минимум цены в $ 899. Мы проверили оба.
С тех пор, как AMD выпустила свой первый Ryzen первого поколения с восьмью ядрами против четырех ядер Intel, начали вестись долгие обсуждения на тему, какое количество ядер имеет смысл быть. Ответ на этот вопрос полностью зависит от рабочей нагрузки: сколько различных инструментов пользователь предполагает использовать одновременно. Так как рынок workstation охватывает широкий круг «разношерстных» пользователей (и, несмотря на потребность в скорости) предоставить единый, удобный для всех вариант просто нереально.
Первое поколение Threadripper от AMD, выпущенное в 2017 году, принесло в массы 16-ядерные процессоры. Ранее доступные только на серверных платформах, новые компоненты были оценены как ну очень конкурентоспособные против 10-ядерных предложений. AMD использовала свою серверную платформу с небольшими твиками, чтобы атаковать конкурентов и их лидера Halo.
Собственные workstation продукты Intel, ранее именуемые E5-2687W и опирающиеся на двух-сокетные сервера, были, попросту говоря, серверами. После запуска своей новейшей высокопроизводительной десктоп платформы, имеющей до 18 ядер, Intel запустила серию Xeon W, заменив компоненты E5-W от предыдущего поколения. До 18 ядер за ~ 2500 долларов, хотя для их использования требовались специальные чипсеты и материнские платы.
Сегодня AMD официально выпускает в продажу второе поколение Threadripper. Новые процессоры врываются на рынок крайне агрессивно: предлагая улучшенную микроархитектуру Zen +, получаем 3% прироста производительности IPC; используется 12 нм техпроцесс, что в свою очередь увеличивает частоту и уменьшает потребляемую мощность. AMD атакует рынок количеством ядер! Мало того, что 12 и 16-ядерные процессоры заменены новыми моделями Zen + на более высоких частотах, компания предлагает 24 и 32 ядра в процессоре стоимостью до 1799 долларов. 32 ядра за 1799 долларов против 18 ядер за почти 2500 долларов — хороший удар по конкурентам, не так ли?
Чтобы называться 32-х ядерным процессором, серверная процессорная линейка первого поколения от AMD, называемая EPYC, использует четыре кремниевых матрицы по восемь ядер каждая. Эти компоненты имеют восемь каналов памяти и 128 дорожек PCIe 3.0 для различных целей. При выпуске первого поколения Threadripper, AMD отключила две из этих кремниевых матриц, давая только 16 ядер, четыре канала памяти и 60 линий PCIe. Конечный продукт был ориентирован на розничных потребителей.
Чтобы предоставить пользователям 32 ядра, AMD использует тот же 32-ядерный кремний EPYC, но обновляет его до Zen + на 12 нм для более высокой частоты и меньшей мощности. Он слегка обрезан для совместимости с первым поколением: четыре канала памяти и 60 дорожек PCIe. Хотя AMD позиционирует продукт как обновленный процессор первого поколения с большим количеством ядер, а не урезанный серверный вариант. Такой подход легко объясняется сегментированием продукта. Это тактика, которую обе компании уже использовали для вывода на рынок расширенной линейки продуктов.
В результате один из способов восприятия новых 32- и 24-ядерных чипов второго поколения — двухмодульный: половина чипа имеет доступ к полным ресурсам, аналогично продукту первого поколения, в то время как другая половина чипа дублирует те же вычислительные ресурсы, но имеет дополнительную задержку памяти и PCIe по сравнению с первой половиной. Для любого пользователя, который озадачен вычислительной мощностью, а не памятью или PCIe, продукт AMD — лучшее решение.
В нашем обзоре мы увидим, что это бимодальное построение имеет значительное влияние на производительность, как хорошее, так и плохое, все опять-таки зависит от вида рабочей нагрузки.
Официально AMD выходит на рынок с четырьмя процессорами второго поколения Threadripper. Два из них напрямую заменят продукты первого поколения: 16-ядерный 2950X на смену 16-ядерному 1950X, а 12-ядерный 2920X — 12-ядерному 1920X. Два новых процессора не будут двухмодульными, только два из четырех кристаллов кремния на упаковке активны (16-ядерная конфигурация выглядит как 8 + 0 + 8 + 0, 12-ядерная как 6 + 0 + 6 + 0). В нижней части стека будет располагаться первое поколение 8-ядерного (4 + 0 + 4 + 0) 1900X, которое предлагает четырехканальную память и 60 линий PCIe.
Два новых процессора представлены 32-ядерным 2990WX и 24-ядерным 2970WX. Они будут включать четыре ядра на комплекс (8 + 8 + 8 + 8) и три ядра на комплекс (6 + 6 + 6 + 6) соответственно, имеют уже описанную двухмодульную природу памяти и PCIe. Брендирование изменяется, теперь это WX, предположительно для «Workstation eXtreme». Это ставит продукт в одну маркетинговую линию с семейством Radeon Pro WX.
AMD Ryzen Threadripper 2990WX — это новый супер-продукт с 32 ядрами и 64 потоками, с базовой частотой 3,0 ГГц и верхней частотой турбонаддува 4,2 ГГц. Частота простоя этого процессора составляет 2,0 ГГц. При тестировании мы видели 2.0 ГГц на каждом ядре без нагрузки.
Другим продуктом серии WX является 2970WX: отключает одно ядро на один комплекс, и в общей сложности предлагает 24 ядра. С теми же частотами, как и у 2990WX, и с теми же TDP, линиями PCIe и поддержкой памяти, этот процессор будет запущен в октябре по цене $ 1299. При меньшем количестве загружаемых ядер можно ожидать, что этот процессор будет работать в турбо чаще, чем большой 32-ядерный брат.
Что касается серии X, TR 2950X — 16-ядерная замена. Процессор в полной мере использует быстрые частоты, которые может дать новый 12-нм процесс: базовая частота 3,5 ГГц и турбо 4,4 ГГц ставят продукт предыдущего поколения на колени. Фактически, 2950X похож на хорошо разогнанный AMD Ryzen. Немалое преимущество по сниженной цене: вместо $ 999 пользователи теперь могут получить 16-ядерный процессор за $ 899. 2950X выйдет в конце месяца, 31 августа.
И напоследок упомянем 2920X, пришедший на замену 1920X, и предлагающий те же улучшения, что и прочие процессоры линейки. Как и в случае с 2950X, частоты хорошо повышены по сравнению с прошлым годом, базовая частота 3,5 ГГц и турбо 4,3 ГГц. Вся эта красота в пакете с тепловым дизайном 180 Вт. 2920X выйдет в октябре, за розничную цену в $ 649.
Подход AMD к этим крупным процессорам состоит в том, чтобы взять небольшую повторяющуюся единицу, такую как 4-ядерный комплекс или 8-ядерный кристалл кремния (который включает два комплекса), и поместить несколько в один процессор. «На выходе» необходимое количество ядер и потоков. Среди плюсов — получается множество реплицированных блоков, таких как каналы памяти и полосы PCIe. Минусом же является то, каким образом эти ядра и память должны общаться друг с другом.
В стандартной монолитной (одиночной) конструкции кремния каждое ядро находится на внутреннем интерконнекторе с контроллером памяти и может перейти в основную память с низкой задержкой. Скорость обмена между ядрами и контроллером памяти обычно довольно низкая, а механизм маршрутизации (кольцо или сетка) может определять пропускную способность, латентность и масштабируемость. Конечная производительность обычно является компромиссом между перечисленными факторами.
В конструкции с несколькими кристаллами, в которой каждый штамп имеет доступ не только к определенной памяти локально, но и к другой памяти с помощью прыжка, мы сталкиваемся с неравномерной архитектурой памяти. Она известна как дизайн NUMA. В таком случае производительность может быть ограничена этой аномальной задержкой памяти. Потому программное обеспечение должно быть «NUMA-aware», чтобы оптимизировать как задержку, так и пропускную способность. Не нужно забывать, что дополнительные переходы между матрицей и контроллерами памяти забирают определенную вычислительную мощность.
Мы сталкивались с этим ранее в первом поколении Threadripper (наличие двух активных кремниевых матриц в пакете). Если требуемые данные находились в памяти, локальной к другому кремнию, необходим был прыжок. Со вторым поколением Threadripper этот прыжок становится намного сложнее.
Слева находится дизайн 1950X / 2950X с двумя активными кремниевыми матрицами. Каждая матрица имеет прямой доступ к 32 дорожкам PCIe и двум каналам памяти, которые в сумме дают 64/4 полосы PCIe и четыре канала памяти. В свою очередь ядра, которые работают с памятью / PCIe и подключены к своей матрице, работают быстрее, чем при использовании ресурсов, подключенных к другой матрице.
У 2990WX и 2970WX два «неактивных» кремния включены, но не имеют дополнительно прямого доступа к памяти или PCIe. Для этих ядер не существует «локальной» памяти или подключения: каждый доступ к основной памяти требует дополнительного перехода. Кроме того, есть дополнительные интерконнекторы от матрицы к матрице на базе AMD Infinity Fabric (IF), которые потребляют энергию.
Причина, по которой эти дополнительные ядра не имеют прямого доступа, кроется в платформе: платформа TR4 для процессоров Threadripper использует четырехканальную память и 60 слотов PCIe. Если у двух других матриц включить локальные память и PCIe, потребуются новые материнские платы и устройства памяти.
Пользователи могут поинтересоваться, а не можем ли мы изменить дизайн, чтобы каждый кристалл кремния имел один канал памяти и один набор из 16 PCIe-полос? Вполне вероятно. Однако платформа несколько ограниченна тем, как управляются штифты и трассы на сокетах и материнских платах. Микропрограммное обеспечение ожидает два канала памяти на каждый кремний, кроме этого, есть причины, связанные с электропитанием. Нынешние материнские платы на рынке попросту не настроены таким образом. Этот факт окажет серьезное влияние на производительность, поэтому имейте это ввиду, когда доберемся до тестов.
Стоит отметить, что это второе поколение Threadripper и серверной платформы AMD, EPYC, являются братьями. Они оба имеют одинаковую компоновку процессора и сокета, но у EPYC включены все каналы памяти (восемь) и все полосы PCIe (128):
И если Threadripper 2 теряет в производительности из-за наличия нескольких ядер без прямого доступа к памяти, то EPYC имеет доступную прямую память. Процессор требует большей мощности, но предлагает более однородную конфигурацию трафика от ядра к сети.
Возвращаясь к Threadripper 2, важно понять, как будет загружаться чип. AMD подтвердила, что по большей части планировщик сначала загрузит ядра, которые непосредственно привязаны к памяти, прежде чем использовать другие ядра. Выходит, что каждое ядро имеет «вес» приоритета, основанный на производительности, термических показателях и мощности. В приоритете те, которые ближе всего к памяти. Приоритет ядер снижается по мере того, как они заполняются, из-за тепловой неэффективности.
Точные турбо-тайминги для каждого нового процессора теперь будут определяться функционалом масштабирования частоты напряжения AMD с помощью Precision Boost 2. Эта функция, которую мы подробно рассмотрели в обзоре Ryzen 7 2700X, опирается на доступную мощность для определения частоты, вместо дискретной справочной таблицы напряжений и частот, основанной на нагрузке. В зависимости от начальных возможностей системы, частота и напряжение будут динамически сдвигаться, чтобы использовать больше потенциальной мощности, доступной в любой момент нагрузки процессора.
Процессор может использовать больше мощности, чем позволяет фиксированная таблица поиска, которая должна подходить для всех процессоров данной модели.
Precision Boost 2 работает в сочетании с XFR2 (eXtreme Frequency Range), который реагирует на доступный температурный запас. Если есть дополнительный тепловой бюджет, предоставляемый хорошим кулером, процессор может использовать больше мощности до достижения теплового предела, и получать дополнительную частоту. AMD утверждает, что хороший кулер в условиях прохладной окружающей среды может повысить вычислительную мощность более чем на 10% на некоторых тестах, благодаря применению технологии XFR2. Продемонстрировать этот «плюс», запустив Threadripper 2 в середине жаркого периода в Европе, AMD было сложно. Европа известна игнорированием кондиционеров во всем мире, а когда температура окружающей среды превышает 30ºC, увеличение производительности ограничено. Скандинавский обзор может показать лучшие результаты, чем обзор из тропиков.
В конечном итоге это усложняет тестирование Threadripper 2. С таблицей турбо производительность жестко привязана к характеристикам каждого элемента кремния, что делает потребляемую мощность единственной градацией. С PB2 и XF2 никакие два процессора не будут работать одинаково.
К счастью для нас, мы провели большинство наших тестов в кондиционированном отеле, благодаря Intel Data-Centric Innovation Summit, который проходил за неделю до запуска процессоров.
Новые процессоры поддерживают функцию Precision Boost Overdrive, которая охватывает такие ключевые области как «power», «thermal design current» и «electrical design current». Если какая-либо из этих трех областей будет «демонстрировать» неиспользованный потенциал, система попытается повысить как частоту, так и напряжение для повышения производительности. PBO — это сочетание «стандартного» разгона, ускоряющего все ядра одновременно, с возможностью повышения частоты на одном ядре для получения прироста производительности на средних рабочих нагрузках. PBO позволяет экономить электроэнергию при простоях процессора и работе со стандартной производительностью. Precision Boost Overdrive включается с помощью Ryzen Master.
Эти «три ключевых области» определяются AMD следующим образом:
Расширяя эти пределы, PBO расширяет возможности PB2, что в свою очередь позволяет максимально эффективно нагружать систему.
Вместе с новыми процессорами Ryzen Threadripper 2 пользователям открывается доступ к софтварному решению StoreMI. Оно позволяет создать настраиваемое многоуровневое хранилище, соединив DRAM, SSD и HDD в единое стораж пространство. Реализация программного обеспечения динамически размещает данные, используя до 2 ГБ DRAM, до 256 ГБ SSD (NVMe или SATA) и вращающийся жесткий диск. Такой подход обеспечивает наилучшие возможности чтения и записи, при недостатке места на скоростном накопителе.
Первоначально AMD предлагала это программное обеспечение в виде дополнения к платформе Ryzen APU за 20 долларов, а позднее — бесплатно (до 256 ГБ SSD) для пользователей процессоров серии Ryzen 2000. Предложение теперь распространяется и на Threadripper. AMD демонстрирует, как в идеале софт обеспечивает 90% -ное ускорение времени загрузки.
Когда перемещение данных между ядрами и контроллерами памяти изменилось от кольцевой топологии до mesh или chiplet, связь между ядрами стала намного сложнее. С этого момента каждое ядро или его окружение должно действовать как маршрутизатор, и определять наилучший путь для данных, если требуется несколько «прыжков» для достижения намеченной цели. Как мы видели с mesh Intel MoDe-X при запуске Skylake-X, нужно одновременно избежать конкуренции для повышения производительности и уменьшить длину проводников для снижения мощности. Оказывается, что в таких системах технология межъядерной коммуникации начинает потреблять очень много энергии, иногда больше, чем сами ядра.
Для описания мощности чипа все потребительские процессоры имеют номинальную «TDP» или мощность теплового дизайна. Intel и AMD измеряют это значение по-разному, исходя из рабочих нагрузок и температур. Технически TDP — это тепловая энергия, которую должен рассеивать кулер, когда процессор полностью загружен (и обычно определяется на базовой частоте, а не турбо частоте всех ядер). Фактическое потребление энергии может быть выше, в зависимости от потерь при подаче питания или теплового рассеивания через плату, но для большинства ситуаций TDP и потребление энергии в целом принято считать равными.
Это означает, что рейтинги TDP на современных процессорах, таких как 65W, 95W, 105W, 140W, 180W, а теперь и 250W, должны примерно показывать пиковое потребление энергии. Однако не вся эта энергия может пойти на повышение частоты в ядрах. Часть ее будет использоваться в контроллерах памяти, в IO, в интегрированной графике (если таковая есть на чипе). Выходит, что межъядерные соединения становятся полноценным участником потребления мощности. Мы же хотим знать, сколько они потребляют.
Чтобы понять масштабы, давайте начнем с чего-то прямолинейного и известного большинству пользователей. Новые процессоры Intel Coffee Lake, такие как Core i7-8700K, используют так называемый кольцевой дизайн шины. Эти процессоры используют одно кольцо для подключения каждого из ядер и контроллера памяти: если необходимо переместить данные, они попадают в кольцо и перемещаются до тех пор, пока не придут на место назначения. Система межъядерных взаимодействий исторически называется «Uncore» и способна взаимодействовать с ядрами, работающими на разной частоте, и масштабировать мощность по необходимости. Распределение мощности выглядит следующим образом:
Несмотря на 95 Вт TDP, этот процессор на базовых частотах потребляет около 125 Вт при полной нагрузке, что гораздо больше его TDP (определяемого также на базовой частоте). Нас интересует другое: соотношение потребления Uncore к общей мощности. При небольшой нагрузке uncore потребляет всего 4% общей мощности, но при загрузке дополнительных ядер потребляемая мощность увеличивается до 7-9%. Для простоты назовем это «максимум 10%».
Теперь давайте перейдем к чему-то покрупнее: процессоры Intel Skylake-X. В этом дизайне Intel использует свою новую архитектуру «mesh» (сетка), похожую на MoDe-X. В ней каждая подгруппа элементов процессора имеет небольшой маршрутизатор, который может направлять пакет данных к соседним ядрам или самому себе, по мере необходимости.
Эта конструкция позволяет масштабировать процессор, учитывая то, что у кольцевых систем наблюдается дополнительная латентность при достижении размера в 14 ядер. Хотя mesh архитектура работает с меньшей задержкой, чем кольцевые системы, ранее используемые Intel, она потребляет намного больше энергии.
На этом графике мы видим, что мощность uncore в архитектуре mesh составляет уже от 20% общей мощности чипа, и увеличивается до 25-30% при загрузке дополнительных ядер. В результате от одной четверти до одной трети мощности на чипе используется для связи между ядрами и памятью.
Для AMD ситуация выглядит нечто иначе. У одного четырехъядерного комплекса связь между ядрами относительно проста и использует централизованный crossbar. Когда речь идет о нескольких ядрах, способ связи прост и понятен. Однако при использовании хотя бы двух ядерных комплексов на одном кремнии или контроллере памяти вступает в действие интерконнект. Эта топология не совсем «кольцо»», и основана на внутренней версии Infinity Fabric (IF).
IF задуман для масштабирования по ядрам, матрицам и сокетам. Мы можем разобраться, что он делает в пределах единичной матрицы, на примере Ryzen 7 2700X, имеющего TDP 105 Вт.
Продукт AMD обнаружил два очень любопытных момента. Во-первых, когда ядра слабо загружены, потребление IF составляет 43% от общей мощности процессора. И это в сравнении с 4% для i7-8700K и 19% для i9-7980XE. Тем не менее у полностью нагруженного чипа эти 43% снижаются примерно до 25%.
Во-вторых, очень важно, что мощность IF почти не меняется при масштабировании ядер, поднимаясь с ~ 17,6 Вт до ~ 25,7 Вт. Для мощного чипа Intel мы видели, что в некоторых случаях она выросла с ~ 13,8 Вт до более 40 Вт.
Ryzen Threadripper 2950X — это обновленная 16-ядерная версия Threadripper, которая использует единую линию связи между двумя кремниевыми матрицами для обмена данных между ядерными комплексами.
На диаграмме ниже, красная линия представляет собой потребление IF. В этом случае потребляемая мощность Uncore включает внутриядерный интерконнект + межъядерный интерконнект.
В процентах потребление Infinity Fabric составляет 59% от общей потребляемой мощности чипа при загрузке всего двух потоков. Хотя оба потока и расположены в одном и том же ядре (и в одном и том же CCX), CCX должен иметь доступ ко всей памяти системы, потому включена связь die-to-die и внутри-кремниевый интерконнект.
Тем не менее при загрузке дополнительных ядер мощность, потребляемая IF, едва увеличивается от 34 Вт до 43 Вт, постепенно снижая процент потребления примерно до 25% от общей мощности чипа, что аналогично 2700X.
Теперь мы должны рассмотреть 2990WX. Поскольку на чипе включены все четыре кремниевых матрицы, а каждый слой нуждается в межсетевом соединении IF друг с другом, необходимы шесть IF-линий:
На диаграмме ниже рябит от красного. Стоит отметить, что две из четырех кремниевых матриц не имеют локальной DRAM. Теоретически AMD должна иметь возможность отключать эти IF-соединения, когда используется только несколько ядер. Ведь они будут вызывать дополнительную латентность из-за ненужных переходов, если другие IF-соединения перегружены. Но на практике мы наблюдаем что-то странное.
Сначала рассмотрим показатели при низкой загруженности. Здесь Infinity Fabric потребляет 56,1 Вт при общем потребления энергии 76,7 Вт, что составляет 73% мощности процессора. Если одно соединение на 2950 Вт потребляло всего 34 Вт, очевидно, что здесь включаются дополнительные линии IF. Возможно именно здесь кроются дополнительные возможности управления питанием.
Исследуя график, вы заметите, что наш образец 2990WX никогда даже не приблизился к расчетному TDP 250 Вт, едва выходя за отметку 180 Вт на пике. Мы не знаем, почему так произошло. По мере увеличения нагрузки на ядра, доля потребляемой мощности IF падает, постепенно достигая 36%, и колеблется в пределах от 35% до 40% в зависимости от конкретной рабочей нагрузки. Это, конечно, больше, в сравнении с 25% на 2700X и 2950X.
Поэтому, учитывая, что это первый наш обзор с участием EPYC 7601, как насчет того, чтобы поискать вторую подсказку в этом процессоре? Базируясь на уже устаревших ядрах Zen первого поколения, EPYC имеет дополнительные контроллеры памяти и IO, которые тоже нужно питать, все они относятся к категории Uncore энергопотребления.
Рассматривая потребляемую мощность в цифрах, подобно 2990WX, когда мы загружаем все ядра, наблюдаем несколько ломаный график. Пропорции потребления uncore колеблются.
При низкой нагрузке, из общей мощности чипа 74,1 Вт, IF потребляет 66,2 Вт и составляет ошеломляющие 89%! По мере задействования новых ядер, показатель 66,2 Вт растет до 90 Вт в некоторых точках. Ядрам едва достается 90 Вт из 180 Вт TDP!
Вышесказанное приводит к интересному выводу — если мы чисто академически сравниваем достоинства одного ядра с другим, учитывать ли вклад Uncore power? Для реального анализа, несомненно да, но для чисто академического? Позвольте изречь пророчество:
После битвы за количество ядер, следующее сражение будет за интерконнект. Низкое потребление, масштабируемость и высокая производительность: масштабирование процессорного узла ничто, если на Uncore приходится 90% от общей мощности чипа.
Спасибо, что остаетесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
3 месяца бесплатно при оплате новых Dell R630 на срок от полугода — 2 х Intel Deca-Core Xeon E5-2630 v4 / 128GB DDR4 / 4х1TB HDD или 2х240GB SSD / 1Gbps 10 TB — от $99,33 месяц, только до конца августа, заказать можно тут.
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?
Новый стек продуктов AMD
Полцарства за высокую производительность. Когда дело доходит до обработки данных, пропускная способность становится ключевым фактором: ведь чем больше пользователь успеет сделать, тем больше проектов будет выполнено, соответственно и число контрактов возрастет. Пользователи рабочей станции часто вычисляют узкие места в системе и любят бросать ресурсы на решение проблемы, будь то ядра, память или ускорение графики. Threadripper второго поколения, известный как Threadripper 2, выходит за старые пределы соотношения ядер и цены: 2990WX предоставляет 32 ядра и 64 потока всего за $ 1799. Существует еще 2950X с 16 ядрами и 32 потоками, он то и задает новый минимум цены в $ 899. Мы проверили оба.
Обзор AMD Threadripper 2990WX 32-Core и 2950X 16-Core
С тех пор, как AMD выпустила свой первый Ryzen первого поколения с восьмью ядрами против четырех ядер Intel, начали вестись долгие обсуждения на тему, какое количество ядер имеет смысл быть. Ответ на этот вопрос полностью зависит от рабочей нагрузки: сколько различных инструментов пользователь предполагает использовать одновременно. Так как рынок workstation охватывает широкий круг «разношерстных» пользователей (и, несмотря на потребность в скорости) предоставить единый, удобный для всех вариант просто нереально.
Первое поколение Threadripper от AMD, выпущенное в 2017 году, принесло в массы 16-ядерные процессоры. Ранее доступные только на серверных платформах, новые компоненты были оценены как ну очень конкурентоспособные против 10-ядерных предложений. AMD использовала свою серверную платформу с небольшими твиками, чтобы атаковать конкурентов и их лидера Halo.
Собственные workstation продукты Intel, ранее именуемые E5-2687W и опирающиеся на двух-сокетные сервера, были, попросту говоря, серверами. После запуска своей новейшей высокопроизводительной десктоп платформы, имеющей до 18 ядер, Intel запустила серию Xeon W, заменив компоненты E5-W от предыдущего поколения. До 18 ядер за ~ 2500 долларов, хотя для их использования требовались специальные чипсеты и материнские платы.
Сегодня AMD официально выпускает в продажу второе поколение Threadripper. Новые процессоры врываются на рынок крайне агрессивно: предлагая улучшенную микроархитектуру Zen +, получаем 3% прироста производительности IPC; используется 12 нм техпроцесс, что в свою очередь увеличивает частоту и уменьшает потребляемую мощность. AMD атакует рынок количеством ядер! Мало того, что 12 и 16-ядерные процессоры заменены новыми моделями Zen + на более высоких частотах, компания предлагает 24 и 32 ядра в процессоре стоимостью до 1799 долларов. 32 ядра за 1799 долларов против 18 ядер за почти 2500 долларов — хороший удар по конкурентам, не так ли?
Как AMD поддерживает 32 ядра
Чтобы называться 32-х ядерным процессором, серверная процессорная линейка первого поколения от AMD, называемая EPYC, использует четыре кремниевых матрицы по восемь ядер каждая. Эти компоненты имеют восемь каналов памяти и 128 дорожек PCIe 3.0 для различных целей. При выпуске первого поколения Threadripper, AMD отключила две из этих кремниевых матриц, давая только 16 ядер, четыре канала памяти и 60 линий PCIe. Конечный продукт был ориентирован на розничных потребителей.
Чтобы предоставить пользователям 32 ядра, AMD использует тот же 32-ядерный кремний EPYC, но обновляет его до Zen + на 12 нм для более высокой частоты и меньшей мощности. Он слегка обрезан для совместимости с первым поколением: четыре канала памяти и 60 дорожек PCIe. Хотя AMD позиционирует продукт как обновленный процессор первого поколения с большим количеством ядер, а не урезанный серверный вариант. Такой подход легко объясняется сегментированием продукта. Это тактика, которую обе компании уже использовали для вывода на рынок расширенной линейки продуктов.
В результате один из способов восприятия новых 32- и 24-ядерных чипов второго поколения — двухмодульный: половина чипа имеет доступ к полным ресурсам, аналогично продукту первого поколения, в то время как другая половина чипа дублирует те же вычислительные ресурсы, но имеет дополнительную задержку памяти и PCIe по сравнению с первой половиной. Для любого пользователя, который озадачен вычислительной мощностью, а не памятью или PCIe, продукт AMD — лучшее решение.
В нашем обзоре мы увидим, что это бимодальное построение имеет значительное влияние на производительность, как хорошее, так и плохое, все опять-таки зависит от вида рабочей нагрузки.
Новый стек AMD
Официально AMD выходит на рынок с четырьмя процессорами второго поколения Threadripper. Два из них напрямую заменят продукты первого поколения: 16-ядерный 2950X на смену 16-ядерному 1950X, а 12-ядерный 2920X — 12-ядерному 1920X. Два новых процессора не будут двухмодульными, только два из четырех кристаллов кремния на упаковке активны (16-ядерная конфигурация выглядит как 8 + 0 + 8 + 0, 12-ядерная как 6 + 0 + 6 + 0). В нижней части стека будет располагаться первое поколение 8-ядерного (4 + 0 + 4 + 0) 1900X, которое предлагает четырехканальную память и 60 линий PCIe.
Два новых процессора представлены 32-ядерным 2990WX и 24-ядерным 2970WX. Они будут включать четыре ядра на комплекс (8 + 8 + 8 + 8) и три ядра на комплекс (6 + 6 + 6 + 6) соответственно, имеют уже описанную двухмодульную природу памяти и PCIe. Брендирование изменяется, теперь это WX, предположительно для «Workstation eXtreme». Это ставит продукт в одну маркетинговую линию с семейством Radeon Pro WX.
AMD Ryzen Threadripper 2990WX — это новый супер-продукт с 32 ядрами и 64 потоками, с базовой частотой 3,0 ГГц и верхней частотой турбонаддува 4,2 ГГц. Частота простоя этого процессора составляет 2,0 ГГц. При тестировании мы видели 2.0 ГГц на каждом ядре без нагрузки.
Другим продуктом серии WX является 2970WX: отключает одно ядро на один комплекс, и в общей сложности предлагает 24 ядра. С теми же частотами, как и у 2990WX, и с теми же TDP, линиями PCIe и поддержкой памяти, этот процессор будет запущен в октябре по цене $ 1299. При меньшем количестве загружаемых ядер можно ожидать, что этот процессор будет работать в турбо чаще, чем большой 32-ядерный брат.
Что касается серии X, TR 2950X — 16-ядерная замена. Процессор в полной мере использует быстрые частоты, которые может дать новый 12-нм процесс: базовая частота 3,5 ГГц и турбо 4,4 ГГц ставят продукт предыдущего поколения на колени. Фактически, 2950X похож на хорошо разогнанный AMD Ryzen. Немалое преимущество по сниженной цене: вместо $ 999 пользователи теперь могут получить 16-ядерный процессор за $ 899. 2950X выйдет в конце месяца, 31 августа.
И напоследок упомянем 2920X, пришедший на замену 1920X, и предлагающий те же улучшения, что и прочие процессоры линейки. Как и в случае с 2950X, частоты хорошо повышены по сравнению с прошлым годом, базовая частота 3,5 ГГц и турбо 4,3 ГГц. Вся эта красота в пакете с тепловым дизайном 180 Вт. 2920X выйдет в октябре, за розничную цену в $ 649.
Ядрышко к ядрышку, или компромиссы дизайна
Подход AMD к этим крупным процессорам состоит в том, чтобы взять небольшую повторяющуюся единицу, такую как 4-ядерный комплекс или 8-ядерный кристалл кремния (который включает два комплекса), и поместить несколько в один процессор. «На выходе» необходимое количество ядер и потоков. Среди плюсов — получается множество реплицированных блоков, таких как каналы памяти и полосы PCIe. Минусом же является то, каким образом эти ядра и память должны общаться друг с другом.
В стандартной монолитной (одиночной) конструкции кремния каждое ядро находится на внутреннем интерконнекторе с контроллером памяти и может перейти в основную память с низкой задержкой. Скорость обмена между ядрами и контроллером памяти обычно довольно низкая, а механизм маршрутизации (кольцо или сетка) может определять пропускную способность, латентность и масштабируемость. Конечная производительность обычно является компромиссом между перечисленными факторами.
В конструкции с несколькими кристаллами, в которой каждый штамп имеет доступ не только к определенной памяти локально, но и к другой памяти с помощью прыжка, мы сталкиваемся с неравномерной архитектурой памяти. Она известна как дизайн NUMA. В таком случае производительность может быть ограничена этой аномальной задержкой памяти. Потому программное обеспечение должно быть «NUMA-aware», чтобы оптимизировать как задержку, так и пропускную способность. Не нужно забывать, что дополнительные переходы между матрицей и контроллерами памяти забирают определенную вычислительную мощность.
Мы сталкивались с этим ранее в первом поколении Threadripper (наличие двух активных кремниевых матриц в пакете). Если требуемые данные находились в памяти, локальной к другому кремнию, необходим был прыжок. Со вторым поколением Threadripper этот прыжок становится намного сложнее.
Слева находится дизайн 1950X / 2950X с двумя активными кремниевыми матрицами. Каждая матрица имеет прямой доступ к 32 дорожкам PCIe и двум каналам памяти, которые в сумме дают 64/4 полосы PCIe и четыре канала памяти. В свою очередь ядра, которые работают с памятью / PCIe и подключены к своей матрице, работают быстрее, чем при использовании ресурсов, подключенных к другой матрице.
У 2990WX и 2970WX два «неактивных» кремния включены, но не имеют дополнительно прямого доступа к памяти или PCIe. Для этих ядер не существует «локальной» памяти или подключения: каждый доступ к основной памяти требует дополнительного перехода. Кроме того, есть дополнительные интерконнекторы от матрицы к матрице на базе AMD Infinity Fabric (IF), которые потребляют энергию.
Причина, по которой эти дополнительные ядра не имеют прямого доступа, кроется в платформе: платформа TR4 для процессоров Threadripper использует четырехканальную память и 60 слотов PCIe. Если у двух других матриц включить локальные память и PCIe, потребуются новые материнские платы и устройства памяти.
Пользователи могут поинтересоваться, а не можем ли мы изменить дизайн, чтобы каждый кристалл кремния имел один канал памяти и один набор из 16 PCIe-полос? Вполне вероятно. Однако платформа несколько ограниченна тем, как управляются штифты и трассы на сокетах и материнских платах. Микропрограммное обеспечение ожидает два канала памяти на каждый кремний, кроме этого, есть причины, связанные с электропитанием. Нынешние материнские платы на рынке попросту не настроены таким образом. Этот факт окажет серьезное влияние на производительность, поэтому имейте это ввиду, когда доберемся до тестов.
Стоит отметить, что это второе поколение Threadripper и серверной платформы AMD, EPYC, являются братьями. Они оба имеют одинаковую компоновку процессора и сокета, но у EPYC включены все каналы памяти (восемь) и все полосы PCIe (128):
И если Threadripper 2 теряет в производительности из-за наличия нескольких ядер без прямого доступа к памяти, то EPYC имеет доступную прямую память. Процессор требует большей мощности, но предлагает более однородную конфигурацию трафика от ядра к сети.
Возвращаясь к Threadripper 2, важно понять, как будет загружаться чип. AMD подтвердила, что по большей части планировщик сначала загрузит ядра, которые непосредственно привязаны к памяти, прежде чем использовать другие ядра. Выходит, что каждое ядро имеет «вес» приоритета, основанный на производительности, термических показателях и мощности. В приоритете те, которые ближе всего к памяти. Приоритет ядер снижается по мере того, как они заполняются, из-за тепловой неэффективности.
Precision Boost 2
Точные турбо-тайминги для каждого нового процессора теперь будут определяться функционалом масштабирования частоты напряжения AMD с помощью Precision Boost 2. Эта функция, которую мы подробно рассмотрели в обзоре Ryzen 7 2700X, опирается на доступную мощность для определения частоты, вместо дискретной справочной таблицы напряжений и частот, основанной на нагрузке. В зависимости от начальных возможностей системы, частота и напряжение будут динамически сдвигаться, чтобы использовать больше потенциальной мощности, доступной в любой момент нагрузки процессора.
Процессор может использовать больше мощности, чем позволяет фиксированная таблица поиска, которая должна подходить для всех процессоров данной модели.
Precision Boost 2 работает в сочетании с XFR2 (eXtreme Frequency Range), который реагирует на доступный температурный запас. Если есть дополнительный тепловой бюджет, предоставляемый хорошим кулером, процессор может использовать больше мощности до достижения теплового предела, и получать дополнительную частоту. AMD утверждает, что хороший кулер в условиях прохладной окружающей среды может повысить вычислительную мощность более чем на 10% на некоторых тестах, благодаря применению технологии XFR2. Продемонстрировать этот «плюс», запустив Threadripper 2 в середине жаркого периода в Европе, AMD было сложно. Европа известна игнорированием кондиционеров во всем мире, а когда температура окружающей среды превышает 30ºC, увеличение производительности ограничено. Скандинавский обзор может показать лучшие результаты, чем обзор из тропиков.
В конечном итоге это усложняет тестирование Threadripper 2. С таблицей турбо производительность жестко привязана к характеристикам каждого элемента кремния, что делает потребляемую мощность единственной градацией. С PB2 и XF2 никакие два процессора не будут работать одинаково.
К счастью для нас, мы провели большинство наших тестов в кондиционированном отеле, благодаря Intel Data-Centric Innovation Summit, который проходил за неделю до запуска процессоров.
Precision Boost Overdrive
Новые процессоры поддерживают функцию Precision Boost Overdrive, которая охватывает такие ключевые области как «power», «thermal design current» и «electrical design current». Если какая-либо из этих трех областей будет «демонстрировать» неиспользованный потенциал, система попытается повысить как частоту, так и напряжение для повышения производительности. PBO — это сочетание «стандартного» разгона, ускоряющего все ядра одновременно, с возможностью повышения частоты на одном ядре для получения прироста производительности на средних рабочих нагрузках. PBO позволяет экономить электроэнергию при простоях процессора и работе со стандартной производительностью. Precision Boost Overdrive включается с помощью Ryzen Master.
Эти «три ключевых области» определяются AMD следующим образом:
- Package (CPU) Power, или PPT — максимально допустимое энергопотребление сокета, зависит от подачи питания на сокет;
- Thermal Design Current или TDC — максимальный ток, подаваемый регулятором напряжения материнской платы после достижения температуры стабильного состояния;
- Electrical Design Current или EDC — максимальный ток, подаваемый регулятором напряжения материнской платы в пиковом состоянии.
Расширяя эти пределы, PBO расширяет возможности PB2, что в свою очередь позволяет максимально эффективно нагружать систему.
StoreMI
Вместе с новыми процессорами Ryzen Threadripper 2 пользователям открывается доступ к софтварному решению StoreMI. Оно позволяет создать настраиваемое многоуровневое хранилище, соединив DRAM, SSD и HDD в единое стораж пространство. Реализация программного обеспечения динамически размещает данные, используя до 2 ГБ DRAM, до 256 ГБ SSD (NVMe или SATA) и вращающийся жесткий диск. Такой подход обеспечивает наилучшие возможности чтения и записи, при недостатке места на скоростном накопителе.
Первоначально AMD предлагала это программное обеспечение в виде дополнения к платформе Ryzen APU за 20 долларов, а позднее — бесплатно (до 256 ГБ SSD) для пользователей процессоров серии Ryzen 2000. Предложение теперь распространяется и на Threadripper. AMD демонстрирует, как в идеале софт обеспечивает 90% -ное ускорение времени загрузки.
Накорми меня: Infinity Fabric нужно больше мощности
Когда перемещение данных между ядрами и контроллерами памяти изменилось от кольцевой топологии до mesh или chiplet, связь между ядрами стала намного сложнее. С этого момента каждое ядро или его окружение должно действовать как маршрутизатор, и определять наилучший путь для данных, если требуется несколько «прыжков» для достижения намеченной цели. Как мы видели с mesh Intel MoDe-X при запуске Skylake-X, нужно одновременно избежать конкуренции для повышения производительности и уменьшить длину проводников для снижения мощности. Оказывается, что в таких системах технология межъядерной коммуникации начинает потреблять очень много энергии, иногда больше, чем сами ядра.
Для описания мощности чипа все потребительские процессоры имеют номинальную «TDP» или мощность теплового дизайна. Intel и AMD измеряют это значение по-разному, исходя из рабочих нагрузок и температур. Технически TDP — это тепловая энергия, которую должен рассеивать кулер, когда процессор полностью загружен (и обычно определяется на базовой частоте, а не турбо частоте всех ядер). Фактическое потребление энергии может быть выше, в зависимости от потерь при подаче питания или теплового рассеивания через плату, но для большинства ситуаций TDP и потребление энергии в целом принято считать равными.
Это означает, что рейтинги TDP на современных процессорах, таких как 65W, 95W, 105W, 140W, 180W, а теперь и 250W, должны примерно показывать пиковое потребление энергии. Однако не вся эта энергия может пойти на повышение частоты в ядрах. Часть ее будет использоваться в контроллерах памяти, в IO, в интегрированной графике (если таковая есть на чипе). Выходит, что межъядерные соединения становятся полноценным участником потребления мощности. Мы же хотим знать, сколько они потребляют.
Чтобы понять масштабы, давайте начнем с чего-то прямолинейного и известного большинству пользователей. Новые процессоры Intel Coffee Lake, такие как Core i7-8700K, используют так называемый кольцевой дизайн шины. Эти процессоры используют одно кольцо для подключения каждого из ядер и контроллера памяти: если необходимо переместить данные, они попадают в кольцо и перемещаются до тех пор, пока не придут на место назначения. Система межъядерных взаимодействий исторически называется «Uncore» и способна взаимодействовать с ядрами, работающими на разной частоте, и масштабировать мощность по необходимости. Распределение мощности выглядит следующим образом:
Несмотря на 95 Вт TDP, этот процессор на базовых частотах потребляет около 125 Вт при полной нагрузке, что гораздо больше его TDP (определяемого также на базовой частоте). Нас интересует другое: соотношение потребления Uncore к общей мощности. При небольшой нагрузке uncore потребляет всего 4% общей мощности, но при загрузке дополнительных ядер потребляемая мощность увеличивается до 7-9%. Для простоты назовем это «максимум 10%».
Теперь давайте перейдем к чему-то покрупнее: процессоры Intel Skylake-X. В этом дизайне Intel использует свою новую архитектуру «mesh» (сетка), похожую на MoDe-X. В ней каждая подгруппа элементов процессора имеет небольшой маршрутизатор, который может направлять пакет данных к соседним ядрам или самому себе, по мере необходимости.
Эта конструкция позволяет масштабировать процессор, учитывая то, что у кольцевых систем наблюдается дополнительная латентность при достижении размера в 14 ядер. Хотя mesh архитектура работает с меньшей задержкой, чем кольцевые системы, ранее используемые Intel, она потребляет намного больше энергии.
На этом графике мы видим, что мощность uncore в архитектуре mesh составляет уже от 20% общей мощности чипа, и увеличивается до 25-30% при загрузке дополнительных ядер. В результате от одной четверти до одной трети мощности на чипе используется для связи между ядрами и памятью.
Для AMD ситуация выглядит нечто иначе. У одного четырехъядерного комплекса связь между ядрами относительно проста и использует централизованный crossbar. Когда речь идет о нескольких ядрах, способ связи прост и понятен. Однако при использовании хотя бы двух ядерных комплексов на одном кремнии или контроллере памяти вступает в действие интерконнект. Эта топология не совсем «кольцо»», и основана на внутренней версии Infinity Fabric (IF).
IF задуман для масштабирования по ядрам, матрицам и сокетам. Мы можем разобраться, что он делает в пределах единичной матрицы, на примере Ryzen 7 2700X, имеющего TDP 105 Вт.
Продукт AMD обнаружил два очень любопытных момента. Во-первых, когда ядра слабо загружены, потребление IF составляет 43% от общей мощности процессора. И это в сравнении с 4% для i7-8700K и 19% для i9-7980XE. Тем не менее у полностью нагруженного чипа эти 43% снижаются примерно до 25%.
Во-вторых, очень важно, что мощность IF почти не меняется при масштабировании ядер, поднимаясь с ~ 17,6 Вт до ~ 25,7 Вт. Для мощного чипа Intel мы видели, что в некоторых случаях она выросла с ~ 13,8 Вт до более 40 Вт.
Ryzen Threadripper 2950X — это обновленная 16-ядерная версия Threadripper, которая использует единую линию связи между двумя кремниевыми матрицами для обмена данных между ядерными комплексами.
На диаграмме ниже, красная линия представляет собой потребление IF. В этом случае потребляемая мощность Uncore включает внутриядерный интерконнект + межъядерный интерконнект.
В процентах потребление Infinity Fabric составляет 59% от общей потребляемой мощности чипа при загрузке всего двух потоков. Хотя оба потока и расположены в одном и том же ядре (и в одном и том же CCX), CCX должен иметь доступ ко всей памяти системы, потому включена связь die-to-die и внутри-кремниевый интерконнект.
Тем не менее при загрузке дополнительных ядер мощность, потребляемая IF, едва увеличивается от 34 Вт до 43 Вт, постепенно снижая процент потребления примерно до 25% от общей мощности чипа, что аналогично 2700X.
Теперь мы должны рассмотреть 2990WX. Поскольку на чипе включены все четыре кремниевых матрицы, а каждый слой нуждается в межсетевом соединении IF друг с другом, необходимы шесть IF-линий:
На диаграмме ниже рябит от красного. Стоит отметить, что две из четырех кремниевых матриц не имеют локальной DRAM. Теоретически AMD должна иметь возможность отключать эти IF-соединения, когда используется только несколько ядер. Ведь они будут вызывать дополнительную латентность из-за ненужных переходов, если другие IF-соединения перегружены. Но на практике мы наблюдаем что-то странное.
Сначала рассмотрим показатели при низкой загруженности. Здесь Infinity Fabric потребляет 56,1 Вт при общем потребления энергии 76,7 Вт, что составляет 73% мощности процессора. Если одно соединение на 2950 Вт потребляло всего 34 Вт, очевидно, что здесь включаются дополнительные линии IF. Возможно именно здесь кроются дополнительные возможности управления питанием.
Исследуя график, вы заметите, что наш образец 2990WX никогда даже не приблизился к расчетному TDP 250 Вт, едва выходя за отметку 180 Вт на пике. Мы не знаем, почему так произошло. По мере увеличения нагрузки на ядра, доля потребляемой мощности IF падает, постепенно достигая 36%, и колеблется в пределах от 35% до 40% в зависимости от конкретной рабочей нагрузки. Это, конечно, больше, в сравнении с 25% на 2700X и 2950X.
Поэтому, учитывая, что это первый наш обзор с участием EPYC 7601, как насчет того, чтобы поискать вторую подсказку в этом процессоре? Базируясь на уже устаревших ядрах Zen первого поколения, EPYC имеет дополнительные контроллеры памяти и IO, которые тоже нужно питать, все они относятся к категории Uncore энергопотребления.
Рассматривая потребляемую мощность в цифрах, подобно 2990WX, когда мы загружаем все ядра, наблюдаем несколько ломаный график. Пропорции потребления uncore колеблются.
При низкой нагрузке, из общей мощности чипа 74,1 Вт, IF потребляет 66,2 Вт и составляет ошеломляющие 89%! По мере задействования новых ядер, показатель 66,2 Вт растет до 90 Вт в некоторых точках. Ядрам едва достается 90 Вт из 180 Вт TDP!
Вышесказанное приводит к интересному выводу — если мы чисто академически сравниваем достоинства одного ядра с другим, учитывать ли вклад Uncore power? Для реального анализа, несомненно да, но для чисто академического? Позвольте изречь пророчество:
После битвы за количество ядер, следующее сражение будет за интерконнект. Низкое потребление, масштабируемость и высокая производительность: масштабирование процессорного узла ничто, если на Uncore приходится 90% от общей мощности чипа.
Спасибо, что остаетесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
3 месяца бесплатно при оплате новых Dell R630 на срок от полугода — 2 х Intel Deca-Core Xeon E5-2630 v4 / 128GB DDR4 / 4х1TB HDD или 2х240GB SSD / 1Gbps 10 TB — от $99,33 месяц, только до конца августа, заказать можно тут.
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?