Энергоэффективность
Оценка энергоэффективности всегда была важной характеристикой для любого кремневого продукта. Методика тестирования довольно простая и заключалась в следующем: замер минимального напряжения и потребления для каждой частоты в тестовом пакете Linx 0.7.0. Гранулярность шага 50 МГц в диапазоне 3600–4400 МГц. Нагрузку в данном тесте создавал всем известный LinX 0.7.0. Частота оперативной памяти при этом была зафиксирована на частотах 3600 и 3733 МГц для Ryzen 7 2700X и для Ryzen 7 3700Х соответственно.
Как и в случае с 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 вашей материнской платы.
Глядя на эти результаты можно сказать, что мы имеет прекрасное энергоэффективное решение, которое в значительной мере обходит свое старого собрата. Также хочу обратить ваше внимание на математическую производительность относительно энергопотребления для частоты 4200 МГц (к примеру). Для Ryzen 7 2700Х результат в Linx составляет 240 GFlops, а для Ryzen 7 3700Х все 480 GFlops.
Что касается разгона в виде фиксирования частоты множителем, то я вам посоветую забыть о нем в принципе, поскольку разгон в большинстве случаев приведет к снижению производительности в однопоточном режиме. И что же делать?
У меня для вас предложение — модификация уже существующего буста с помощью настройки питания процессора через оффсет-режим, плюс изменение BCLK в случае Ryzen 7 3700Х. Для процессоров поколения Zen+ — модификация уже существующего буста с помощью настройки питания процессора через оффсет-режим с изменением BCLK и Scalar, плюс отключение лимитов PBO. Методичка как это все делать будет позже, а сейчас нам нужно понять, имеют ли ядра запас прочности.
Начнем с архитектуры и теории. Каждый CCX состоит из четырех процессорных ядер, в каждом чиплете находится два CCX.
Чиплетов же может быть один, а может быть и несколько (Threadripper). Каждое ядро при этом имеет собственные вольт-частотные характеристики. Компания AMD даже отметила удачные ядра звездочками и кружечками в собственном ПО RyzenMaster для наглядности и упрощения понимания пользователями кривой PBO.
На данном моменте, я думаю, стоит напомнить вам, как работает Precision Boost.
На слайде от AMD представлена эта функция: смысл ее заключается в динамическом изменении частот и количества активных ядер в зависимости от сценария нагрузки, не выходя за рамки ограничивающих факторов, таких как PPT, TDC и EDC.
На просто языке эти факторы могут выглядеть вот так:
- Общая пиковая мощность чипа.
- Индивидуальное напряжение / частотный отклик.
- Тепловые взаимодействия между соседними ядрами.
- Ограничения мощности для отдельных ядер / групп ядер.
- Общие тепловые характеристики.
Возвращаясь к теме о качестве ядер в CCX и для дальнейшей демонстрации вышеизложенной теории, я провел исследование. Поочередно проверил каждое ядро для Ryzen 7 2700Х и трех частот, и аналогично для Ryzen 7 3700Х, при этом остальные ядра отключались полностью (не через диспетчер задач и не через маскировку).
В случае с Ryzen 7 2700Х была найдена зарытая собака. Статус ядер отмеченными звездочками и кружками не соответствовали действительности. В случае моего экземпляра Ryzen 7 2700Х ядро 5 было самым неудачным, притом, что было промаркировано как удачное. Именно из-за него и ряда других кремневых соседей «неудачников» ручной разгон с помощью фиксации множителя требовало значительное повышение напряжения, что в свою очередь приводило к чрезмерному росту TDP. Ошибка маркировки не коснулась заявленной производительности с коробки, но маневр с использованием потенциала перестал иметь место быть. При правильной же маркировке 4500 МГц не были б проблемой для среднестатистического серийного образца. Так же отсутствие ручного перераспределения маркировки ядер делает нецелесообразным дальнейший тюнинг BCLK для моего экземпляра.
Для 3700Х ситуация выглядит немного иначе.
Ядра до 4300 МГц включительно имеют очень схожие вольт-частотные характеристики, что безусловно является маркером совершенства 7-нм техпроцесса и делает возможным ручной разгон через множитель. Между 4300 и 4400 МГц существует небольшая пропасть, которая говорит о том, что для этого экземпляра значение 4400 МГц являются предельными, и как такового запаса для дальнейшего адекватного разгона нет. Протестировать 4500 МГц мне не удалось, так как система отказывалась стартовать при любом напряжении, скорее всего это связано с сыростью прошивки материнской платы. Маркировка ядер частично совпадает. Безусловно, использование правильной маркировки позволило б при тех же напряжениях достигать процессору больших частот в нагрузке 1–4 ядер. Аналогично картинке с результатами анализов Ryzen 7 2700Х можно заметить, что в обоих случаях CCX2 требует немного большее напряжение для всех своих ядер. Мне сложно дать объяснение данному феномену ибо запитка ядер довольно дифференцированная и производится с обоих концов CCD.
Буст в однопотоке примерно выглядит следующим образом: 4367 МГц с максимальным временем на четвертое ядро, далее идет второе ядро. То есть ядра, которые были промаркерованы заводом.
Принудительное включение 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. Данное значение является наиболее точным из всех доступных для конечных пользователей, но, безусловно, будет иметь отличия от хардварного мониторинга. В качестве примечания, хочу отметить один момент — никогда не следует слепо доверять показаниям тока и мощности, которые мониторятся, поскольку каждая модель материнской платы нуждается в отдельной калибровке.