Разгон Matisse или в поисках предела. Обзор архитектуры Zen 2

Энергоэффективность

Оценка энергоэффективности всегда была важной характеристикой для любого кремневого продукта. Методика тестирования довольно простая и заключалась в следующем: замер минимального напряжения и потребления для каждой частоты в тестовом пакете Linx 0.7.0. Гранулярность шага 50 МГц в диапазоне 3600–4400 МГц. Нагрузку в данном тесте создавал всем известный LinX 0.7.0. Частота оперативной памяти при этом была зафиксирована на частотах 3600 и 3733 МГц для Ryzen 7 2700X и для Ryzen 7 3700Х соответственно.

Разгон Matisse или в поисках предела

Как и в случае с Pinnacle Ridge, запас для разгона высокопроизводительных Matisse чрезвычайно мал. Критические точки для Pinnacle Ridge присутствуют на частотах 3850 и 4050 МГц, для Mattise на 3900 и 4100 МГц.

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

Максимально энергоэффективной частотой для Zen+ является диапазон 3600–3800 МГц в зависимости от экземпляра. Для Zen 2 это 3700–3800 МГц. Разумные переделы масштабируемости присутствуют до 4050 МГц в случае Zen+ и до 4150 МГц в случае Zen 2.

Что касается результата CPU Package Power (SMU) тут все довольно просто — все ограничивается вашей системой охлаждения. Самым главным фактором является качество теплообменника, поскольку мы имеем возросшее тепловыделение относительно площади кристалла. Не стоит забывать и про возможности VRM вашей материнской платы.

Разгон Matisse или в поисках предела

Глядя на эти результаты можно сказать, что мы имеет прекрасное энергоэффективное решение, которое в значительной мере обходит свое старого собрата. Также хочу обратить ваше внимание на математическую производительность относительно энергопотребления для частоты 4200 МГц (к примеру). Для Ryzen 7 2700Х результат в Linx составляет 240 GFlops, а для Ryzen 7 3700Х все 480 GFlops.

Разгон Matisse или в поисках предела

Что касается разгона в виде фиксирования частоты множителем, то я вам посоветую забыть о нем в принципе, поскольку разгон в большинстве случаев приведет к снижению производительности в однопоточном режиме. И что же делать?

У меня для вас предложение — модификация уже существующего буста с помощью настройки питания процессора через оффсет-режим, плюс изменение BCLK в случае Ryzen 7 3700Х. Для процессоров поколения Zen+ — модификация уже существующего буста с помощью настройки питания процессора через оффсет-режим с изменением BCLK и Scalar, плюс отключение лимитов PBO. Методичка как это все делать будет позже, а сейчас нам нужно понять, имеют ли ядра запас прочности.

Начнем с архитектуры и теории. Каждый CCX состоит из четырех процессорных ядер, в каждом чиплете находится два CCX.

Чиплетов же может быть один, а может быть и несколько (Threadripper). Каждое ядро при этом имеет собственные вольт-частотные характеристики. Компания AMD даже отметила удачные ядра звездочками и кружечками в собственном ПО RyzenMaster для наглядности и упрощения понимания пользователями кривой PBO.

Разгон Matisse или в поисках предела

На данном моменте, я думаю, стоит напомнить вам, как работает Precision Boost.

Разгон Matisse или в поисках предела

На слайде от AMD представлена эта функция: смысл ее заключается в динамическом изменении частот и количества активных ядер в зависимости от сценария нагрузки, не выходя за рамки ограничивающих факторов, таких как PPT, TDC и EDC.

На просто языке эти факторы могут выглядеть вот так:

  • Общая пиковая мощность чипа.
  • Индивидуальное напряжение / частотный отклик.
  • Тепловые взаимодействия между соседними ядрами.
  • Ограничения мощности для отдельных ядер / групп ядер.
  • Общие тепловые характеристики.

Возвращаясь к теме о качестве ядер в CCX и для дальнейшей демонстрации вышеизложенной теории, я провел исследование. Поочередно проверил каждое ядро для Ryzen 7 2700Х и трех частот, и аналогично для Ryzen 7 3700Х, при этом остальные ядра отключались полностью (не через диспетчер задач и не через маскировку).

Разгон Matisse или в поисках предела

В случае с Ryzen 7 2700Х была найдена зарытая собака. Статус ядер отмеченными звездочками и кружками не соответствовали действительности. В случае моего экземпляра Ryzen 7 2700Х ядро 5 было самым неудачным, притом, что было промаркировано как удачное. Именно из-за него и ряда других кремневых соседей «неудачников» ручной разгон с помощью фиксации множителя требовало значительное повышение напряжения, что в свою очередь приводило к чрезмерному росту TDP. Ошибка маркировки не коснулась заявленной производительности с коробки, но маневр с использованием потенциала перестал иметь место быть. При правильной же маркировке 4500 МГц не были б проблемой для среднестатистического серийного образца. Так же отсутствие ручного перераспределения маркировки ядер делает нецелесообразным дальнейший тюнинг BCLK для моего экземпляра.

Для 3700Х ситуация выглядит немного иначе.

Разгон Matisse или в поисках предела

Ядра до 4300 МГц включительно имеют очень схожие вольт-частотные характеристики, что безусловно является маркером совершенства 7-нм техпроцесса и делает возможным ручной разгон через множитель. Между 4300 и 4400 МГц существует небольшая пропасть, которая говорит о том, что для этого экземпляра значение 4400 МГц являются предельными, и как такового запаса для дальнейшего адекватного разгона нет. Протестировать 4500 МГц мне не удалось, так как система отказывалась стартовать при любом напряжении, скорее всего это связано с сыростью прошивки материнской платы. Маркировка ядер частично совпадает. Безусловно, использование правильной маркировки позволило б при тех же напряжениях достигать процессору больших частот в нагрузке 1–4 ядер. Аналогично картинке с результатами анализов Ryzen 7 2700Х можно заметить, что в обоих случаях CCX2 требует немного большее напряжение для всех своих ядер. Мне сложно дать объяснение данному феномену ибо запитка ядер довольно дифференцированная и производится с обоих концов CCD.

Разгон Matisse или в поисках предела

Буст в однопотоке примерно выглядит следующим образом: 4367 МГц с максимальным временем на четвертое ядро, далее идет второе ядро. То есть ядра, которые были промаркерованы заводом.

Разгон Matisse или в поисках предела

Принудительное включение CPPC в биосе не изменило ситуацию и система все так же продолжала выбирать неоптимальные ядра для максимального буста.

Максимально-безопасные напряжения

Максимальное безопасное напряжение вечная загадка для пользователей, поскольку ни один из двух производителей не публикует эту информацию для общественного обозрения. Кто-то просто указывает смешные 95Вт для процессора, работающего на частоте 5 ГГц, или забывает установить ограничение пакетной мощности. В документах, которые находятся не под NDA, обычно указывается неопределенный предел, который в большинстве случаев относится к точке, в которой катастрофические сбои становятся более распространенными. Указания напряжений, которые безопасно использовать 24/7, не причиняя никакого вреда процессору, остаются за ширмой.

Такой предел довольно сложно определить, поскольку этот предел будет варьироваться между различными образцами ЦП (кремниевая дисперсия, SIDD), ядрами в CCX и рабочими сценариями (пиковый ток для определенного кол-ва ядер, температура и так далее).

Чтобы получить наиболее точный ответ на вопрос о пределе, мне пришлось самому замерять его у процессоров, основанных на архитектуре Zen+ и Zen 2.

Начнем с терминов, которые будут встречаться в этой статье чаще всего.

PPT — отслеживание мощности пакета.

TDC — расчетный электрический ток.

EDC — тепловая защита.

FIT — это функция для мониторинга/отслеживания работоспособности кремния и корректировки рабочих параметров для поддержания заданной и ожидаемой надежности. Многие производители полупроводников используют эту функцию, чтобы добиться максимальной производительности в ряде задач.

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

Чтобы увидеть, какое значение фактического максимального напряжения FIT позволяет ЦП использовать в различных сценариях, достаточно отключить все ограничения, а если быть точным, перейти в режим Precision Boost Override = Manual и ввести значения 1000 1000 1000 для PPT, TDC и EDC. При отключении любого ограничителя FIT становится единственным ограничением, который спасает процессор от смерти. Команда напряжения, которую процессор посылает в регулятор VRM через интерфейс SVI2, является фактически тем самым эффективным значением напряжения, которое получает процессор.

В дефолте мой Ryzen 7 2700Х продемонстрировал максимальное эффективное напряжение во время нагрузки, разрешенное FIT, 1,330 В. В одноядерной нагрузке устойчивый максимум составлял 1,425 В.

Когда параметр FIT был изменен с помощью настройки Scalar со значения по умолчанию 1x до максимально допустимого значения 10x, максимальное напряжение для всех ядер составило 1,380 В, а максимальное напряжение для одного ядра возросло до 1,480 В.

Данные результаты говорят о том, что полноценная надежность для Ryzen 7 2700Х и 12-нм тепроцесса находится на уровне 1,33 В с максимальным током и 1,425 В с минимальным током в нагрузках на одно ядро.

Что касается более высоких напряжений, то FIT допускает вариант 1,380/1,480 В, но это возможно приводит к сокращению срока службы процессора или деградации.

Это позволяет подвести черту и сделать вывод о топовых настольных процессорах семейства Zen+. На этом бы я эксперимент закончил, если б не моя привычка проверять результаты. Поясню. Данные результаты были получены на инженерной прошивке, в которой не было ничего заблокировано и не было пределов. И не блокируется это для воспроизведения экстремальных ситуаций и дальнейшего интерполирования результатов чтоб создать симуляции поведения того или иного продукта в будущем. В итоге была проверена линейка UEFI за весь 2018 год, которые получают конечные пользователи. Как оказалось, в них настройка Scalar превратилась в пустышку, и она всегда находилась в режиме 2x. То есть, результаты поздних симуляций вынудили AMD изменить пределы для лучшей безопасности ваших «камней». Пределом для Ryzen 7 2700Х является 1,367/1,45 В.

Для процессоров Matisse с одним CCD это выглядело таким образом: для нагрузки на все ядра с максимальным током 1,325 В, а для одного ядра – 1,419 В. Имейте ввиду что эти цифры безусловно будут отличаться между различными образцами процессоров (из-за SIDD и биннинга), в частности между серией с двумя чиплетами и одним.

Также хочу обратить ваше внимание на то, что приведенные здесь цифры относятся к фактическому эффективному напряжению, а не к напряжению, запрашиваемому ЦП (VID). Процессор знает только о фактическом эффективном напряжении, поэтому такие вещи, как LLC, соответственно изменят запрос напряжения процессора от контроллера VRM. Наиболее точный метод измерения эффективного напряжения на платформе AM4 — это мониторинг напряжения «CPU SVI2 TFN», которое доступно всем в HWInfo. Данное значение является наиболее точным из всех доступных для конечных пользователей, но, безусловно, будет иметь отличия от хардварного мониторинга. В качестве примечания, хочу отметить один момент — никогда не следует слепо доверять показаниям тока и мощности, которые мониторятся, поскольку каждая модель материнской платы нуждается в отдельной калибровке.

Как же магична в своей красоте тишина...