Ускоряем Ryzen в windows 7 через план электропитания: "Не можем ходить - будем бегать"

Ускоряем Ryzen в windows 7 через план электропитания: "Не можем ходить - будем бегать" Любительский
7 мин
3
Товары в статье

В своё время покупатели свежевышедших процессоров Ryzen при сборке нового компьютера могли испытать ступор, обнаружив при попытке установить Windows 7 неработающие мышь и клавиатуру из-за отсутствия врождённой поддержки USB 3.0. К счастью, производители материнских плат не только предусмотрительно разместили разъёмы PS/2 на своих изделиях, но и оперативно выпустили патчеры, добавляющие в инсталлятор этой операционной системы необходимые драйвера, в том числе для устройств NVME и Thunderbolt. Это позволило обладателям новеньких процессоров поколений Zen и Zen+ использовать современное железо в отлаженной операционной системе, а с помощью пакетов обновлений от Symplix обходить встроенную Microsoft защиту от установки апдейтов на новые платформы.

Однако с момента появления WIndows 7 SP1 до выпуска первых Ryzen прошло довольно много времени, что вместе с отсутствием оптимизаций данной ОС под новые платформы порой приводит к не совсем ожидаемому от них поведению и как следствие - к негативным впечатлениям от использования достаточно производительного железа. Как оказалось, причиной этого может являться взаимодействие данных процессоров со встроенными планами электропитания, сконфигурированных в Microsoft гораздо раньше. Преимущественно это касается вариантов, отличных от "Высокая производительность" и применяемых совместно с автобустом процессоров или при разгоне через P-states. И если в случае с Zen 2 на Windows 10 решение аналогичной проблемы объединило широкий круг заинтересованных лиц от непосредственно разработчика процессоров до компьютерных энтузиастов, предложивших свои планы электропитания, то пользователи "семёрки" и процессоров Zen/Zen+ остались с этой проблемой наедине, тем более что в данной ОС возможность импорта сторонних планов электропитания отсутствует.

Выявленные ньюансы, поиск причин и их устранение

Меня заинтересовали "загадочные" кратные падения FPS в игре "Pathfinder: Kingmaker" на конфигурации с Ryzen 2700 через некоторое время в процессе игры, при этом непосредственно после запуска всё было в норме. Мониторинг в GPU-Z отрапортовал об отсутствии причин для тротлинга GPU, но выявил возникновение "ям" в загрузке видеочипа, приводивших к сбросу его частот до базовых для 3D. "Чистая" переустановка свежжей версии видеодрайвера  и форсирование работы PCIE в его настройках в безальтернативный режим 3.0 ничего не дали.

Подключение к исследованию статистических возможностей MSI Afterburner указало на сопутствующее этому снижение загрузки ЦП. Расширив список показателей в мониторинге утилиты до максимума, я обнаружил что падение загрузки сопровождалось перемещением вычислений между ядрами на Ryzen 2700. Это происходит из-за используемого Microsoft в Windows 7 чередования используемых ядер, однако в данном случае перенос исполняемых потоков на новое ядро не приводил к повышению его частоты относительно минимально возможной.

Решение проблемы напрашивалось само собой - отключить поочерёдное использование имеющихся ядер центрального процессора, закрепив процессы на тех, где они были запущены изначально. Такое возможно через скрытую настройку плана электропитания, именуемую в русскоязычном интерфейсе Windows 7  "Переопределение ядра приостановки ядра производительности процессора", отображение которой включается через реестр. Вообще, качество локализации области интерфейса, относящегося к скрытым настройкам плана электропитания в Windows 7, просто отвратительное, ввиду чего пришлось ориентироваться на оригинальные англоязычные формулировки из строк Description для этих настроек в реестре.

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

Для облегчения настройки плана электропитания со включенной функцией парковки было решено отказаться от использования распаркованными ядрами процессора состояния P2 (при котором его частота составляет около 1500МГц), оставив для активных ядер лишь P1 (частота 2600МГц) и P0 (для моего разогнанного Ryzen 2700 составляет 3900МГц) - это достигается использованием для настройки "Минимальное состояние процессора" значения не менее 40%. Кроме этого были понижены минимальные значения загруженности ядра, требуемые для его перевода в повышенное энергетическое состояние. Проведя черновую настройку плана электропитания, удалось избавится от просадок FPS в "Pathfinder: Kingmaker" и паралельно с этим даже получить некоторую прибавку в WinRAR.

Ещё большего в тесте производительности архиватора удалось добиться комбинацией взаимосвязанных настроек "Журнал счётчика производительности процессора" и "Интервал проверки производительности процессора", при перемножении дающих около 90, например 30 миллисекунд /3 интервала или 20 миллисекунд/5 интервалов. К сожалению, при реальном применении архиватора даже совместно с NVME SSD замеры показали разницу гораздо скромнее результатов встроенного бенчмарка, приближаясь к погрешности. Такое повышение производительности сопровождалось увеличением загрузки процессора с 80 до 90 процентов, поэтому квалифицировать это как результат какого-то жульничества я не могу.

Однако если "Pathfinder: Kingmaker" на движке Unity с обновлённым планом электропитания стал работать вполне прилично, то неоптимизированная "Mount & Blade II Bannerlord" напротив огорчила лагами, при этом простая замена плана электропитания на "Высокая производительность" полностью устраняла проблему. Я открыл окно мониторинга частот на ядрах процессора и увидел огромное количество вертикальных линий, свидетельствующих о резких изменениях потребности в вычислительной мощности.

Решив, что при резких кратковременных скачках загрузки ЦП в этой игре алгоритм плана электропитания не успевает своевременно повышать частоту и преждевременно потом её сбрасывает, я усилил скорость реагирования ЦП на увеличение нагрузки и сильно замедлил на её уменьшение. Результат оправдал мои ожидания, и ни в "Mount & Blade II Bannerlord", ни в других играх проблем я больше не встречал.

Действия для доработки плана электропитания 

В качестве итогового варианта ниже выкладываю конфигурацию моего текущего плана электропитания.  Для получения доступа к скрытым параметрам открываем редактор реестра через "Пуск" -> "Выполнить" -> regedit, ищем в нём HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> Power -> PowerSettings -> 54533251-82be-4824-96c1-47b60b740d00. В каждом из внушительного списка подразделов указанного выше раздела в строке для значения "Attributes" ставим 0 (ноль), это включает отображение соответствующих строчек в опциях плана электропитания. После этого открываем панель управления Windows , щелкаем по значку "Электропитание", заходим в настройки текущего плана или создаём новый и применяем его,  затем "Изменить дополнительные параметры питания", в новом окошке проматываем ползунок справа вниз и щелкаем на крестик слева от "Управление питанием процессора", где указываем нижеследующие значения:

Порог увеличения производительности процессора - 41%
Минимальное число ядер в состоянии простоя - 10%
Коэффициент уменьшения использования ядра - 1
Порог уменьшения производительности процессора - 10%
Время увеличения занятости ядер производительности процессора - 1 интервал проверки
Разрешить состояния снижения питания - Вкл
Политика уменьшения производительности процессора - Единый
Приостановленное состояние производительности приостановки... - Без предпочтений
Политика усиления производительности процессора - 100%
Политика увеличения производительности процессора - Реактивное
Пороговое значение понижения состояния простоя процессора - 45%
Интервал проверки производительности процессора - 20 милисекунд
Порог соответствия ядра производительности процессора - 120
Отключение простоя процессора - Включить простой
Порог уменьшения занятости ядер производительности процессора - 45%
Масштабирование порогового значения простоя процессора - Включить масштабирование
Политика уменьшения занятости ядер производительности... - Оптимальное число ядер
Пороговое значение повышения состояния простоя процессора - 50%
Журнал счетчика производительности процессора - 5 интервалов проверки
Взвешивание использования ядра производительности процессора - 85
Минимальное состояние процессора - 40
Коэффициент уменьшения соответствия ядра - 1
Порог использования функции парковки ядер процессора - 60%
Время увеличения производительности процессора - 1 интервал проверки
Порог использования ядра производительности процессора - 30
Переопределение ядра приостановки ядра производительности процессора - Отключено
Максимальное состояние процессора - 100%
Проверка времени простоя процессора - 10000 микросекунд
Политика увеличения занятости ядер производительности... - Оптимальное число ядер
Время уменьшения производительности процессора - 20 интервалов проверки
Порог увеличения занятости ядер производительности процессора - 60%
Время уменьшения занятости ядер производительности ... - 100 интервалов проверки
Анализ соответствия приостановки ядра производительности процессора - 90
Максимальное число ядер в состоянии простоя - 100%

Вместо заключения

Данные настройки позволяют получить бесшумный ПК при вэб-браузенге и просмотре фильмов за счёт использования меньшего количества активных ядер с управлением их частотой в зависимости от уровня загрузки, а так же увеличить отзывчивость и получить стабильно высокую производительность благодаря отсутствию ротации процессов между ядрами и высокому приоритету выделения вычислительной мощности при её необходимости. Буду рад, если мои изыскания по совершенствованию плана электропитания для Zen/Zen+ в Windows 7 кому-либо пригодятся!

3
Как вам материал?

    Комментарии 89

    Наслаждайтесь общением. Критикуйте сообщения, а не авторов. Меньше токсичности, больше любви ❤️

    Аватар пользователя
    2 года назад

    Попробовал на 10-ке. В ней много другого, раза в 2 больше, чем в 7-ке, но где мог догадаться, менял значение, где не мог - оставлял. Эффект таки получил - в стрессе от аиды - 69С при максимуме 68С у 2920Х. Это только в ней. В сайнбенчах 20(23) - 63-65С. В играх меньше, до 60С. Еще и в биосе сделан авто-тюнинг вентиляторов. Я доволен, еще раз спасибо за статью, сильно помогла.

    1
    Аватар пользователя
    2 года назад

    Спасибо! Помогло на 7-ке с тредриппером 1900х. Теперь температура даже в тяжелых тестах выше допустимой 68С не поднимается. В играх до 67С. Конечно, можно было бы отъюстировать РВО, если бы знал, где оно на матери ASRock X399 Phantom Gaming 6 находится...

    1
    Аватар пользователя
    3 года назад

    Спасибо, пригодится. Плюсую+ и в матчасть. Подобное уже наблюдалось и раньше, в частности с Phenom II X6 1100T (ссылка). А на 7-ке ещё можно обитать до 01.2023, обновлясь через UpdatePack7R2.😊 До сих пор пользую 7-ку одной из систем. 

    1
    Аватар пользователя
    3 года назад
    Изменено автором

    Я в своё время наткнулся на статью про парковку ядер, но тут это использовано непосредственно при решения возникшей проблемы. А когда добавились правки под увеличение утилизации процессора в WinRAR и под "настройку подвески" в виде быстрого перехода к состоянию P0 и замедленного возвращения в энергосберегающие режимы - решил поделиться с аудиторией через клуб ДНС

    Касаемо "обитания" - у меня стоит пак обнов от Simplix-а от 2018 года и никаких проблем нет, хотя уже вроде бы новее сборки были. Основные трудности для нового железа - в наличии драйверов, под те же zen2 нужно ini-файлы под USB3.0 править чтоб с Win7 заработали...

    0

    Согласен. Сейчас 7-ка на новом железе только через костыли, или уже готовая сборка под NVMe со всем фаршем. Что до Simplix-а, то вчера вышел новый UpdatePack7R2-21.1.15. Может и пригодится.

    0
    Аватар пользователя
    3 года назад

    Проделанная работа вызывает уважение 👍 Но это задача для энтузиастов, имеющих свободное время, на мой взгляд. Я как перешёл на Win 10 LTSC, так и сижу там -  производительность на уровне Win7 и лишнего мусора не сильно много и нет этого гемора с драйверами ( меню Старт под Win7 возвращаю через StartIsBack++, кстати) 

    1
    Аватар пользователя
    3 года назад
    Изменено автором

    Под "геморроем с драйверами" вы имеете ввиду необходимость после каждого обновления версии windows 10 ставить новые? Я на WinXP x64 сидел до последнего, пока дрова были на железо, а на 7ку для моей сборки на ZEN+ дрова все в наличии, так что я пока о миграции не помышляю...

    Некоторые отдельные вещи о настройках плана электропитания я знал раньше, но в процессе адаптирования  к Ryzen изучил и открыл для себя много нового. Сложнее всего было понять что скрывается под похожими формулировками на разных переменных плана электропитания - для этого пришлось вытаскивать англоязычные пояснения, спрятанные в реестре и систематизировать информацию, на что потребовалось некоторое время. Зато после появления представления о влиянии различных настроек на динамику поведения ЦП стало возможным направлять эту динамику в требуемое русло, и например с лагами в "Банерлорде" я разделался буквально минут за 15. Но я потому и опубликовал статью, чтобы любой владелец ZEN+ без необходимых знаний мог воспользоваться готовым решением (хотя лень не позволила сделать это на несколько месяцев раньше)

    0
    Аватар пользователя
    3 года назад

    Я работал на Win10 LTSB с 2017 по 2020. Ни разу драйвера не переставлял - на то она и версия с длительной поддержкой. На прошлой неделе перешел на последнюю версию с длительной поддержкой LTSC 2019. Всё само подхватилось - кроме настроек Firewall и меню семерошное заново поставил - все устраивает, думаю еще год поработаю, а может уже и нет - пора ноутбук менять...

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

    3
    Аватар пользователя
    3 года назад

    Не можем ходить - будем бегать

    Как говорится: либо строевым, либо бегом)

    1
    Аватар пользователя
    11 месяцев назад

    интересно а, msconfig во вкладке задействовать все 12 типо ядер\потоков, даёт какой нибудь профит в произ-ти играх и работы пк и простоя?)
    или это так. для галочки.

    0
    Аватар пользователя
    11 месяцев назад

    Не пробовал и в общем-то сомневаюсь в целесообразности.

    На сегодняшний день, если сравнивать поведение прошлого менее производительного камня Ryzen 2700 поколения Zen+ с поделённым надвое кешем L3 и нынешнего болеее быстрого Ryzen 5700X поколения Zen3 с единым кешем L3, то у последнего и без выключения "Переопределение ядра приостановки ядра производительности процессора" уже всё хорошо. Впрочем, возможно это связано и с обновлёнными алгоритмами управления процессором в более свежих версиях Agesa.

    1
    Аватар пользователя
    11 месяцев назад
    Изменено автором

    вот я тоже разницы не увидел на своём 3600Х после вкл 12ти типо ядер) вернул в сток по умолчанию, также разницы не увидел)
    в электропитании поставил амд райзен баланс и хватает в играх и в простоя 35гр проц.
    а этот мсконфиг видимо нужен для тестов майкросовт, как пишет гугл, больше он ничего не несёт, как некоторые форумы пишут мол включите все ядра в конфиге и у вас прирост 200% будет😭
    в спу зет, и так пишет что активны 6 на 12 ядра и потоки, а все эти танцы шляпа тянущаяся ещё с 00х))

    1
    Аватар пользователя
    2 года назад
    Изменено автором

    работает ли это с другими процессорами? intel к примеру? и не на виндовс 7,а на виндовс 10?

    0
    Аватар пользователя
    2 года назад
    Изменено автором

    Под win7 на core i7-2860qm я проблем не замечал, видимо встроенные механизмы распределения нагрузок умеют правильно работать с этими процессорами. С другой стороны, под win10 у Райзенов тоже выходили специально оптимизированные планы электропитания. Смею предположить, что под десятку обладателям процессоров Intel никаких манипуляций не требуется 

    0
    Аватар пользователя
    3 года назад

    Хм.. windows 7 для игрового пк в 2021 ? Зачем? Лет 10 назад было актуально.

    0
    Аватар пользователя
    3 года назад
    Изменено автором

    К сожалению, актуальность процессоров семейства zen/zen+ в качестве игровых со временем будет лишь падать, и например проведённые мною опыты с Ryzen 2700 на частотах 2,0ГГц (для симуляции "процессорного голодания") и 3,9ГГц (неэкстримальный разгон, для плат уровня Gigabyte b450m s2h) в процессорозависимой игре "Kingdom Come Deliverance" совместно с GeForce GTX1660S свидетельствуют о том, что даже разогнанного по всем ядрам ZEN+ для этой видеокарты иногда недостаточно при изменении качества теней со "средних" на "высокие".

    Так, при включении вертикальной синхронизации при 60Гц на частоте процессора 2,0ГГц на локации "Площадь в Ратае" частота кадров в статике при изменении данной настройки падает с 48fps до 32fps, и даже при разгоне процессора до 3,9ГГц высокие настройки качества теней приводят к падению в этом же месте до 58fps. В движении же с "высокими" тенями возможны падения вплоть до 50fps...

    0
    Аватар пользователя
    3 года назад

    Да, кстати, https://club.dns-shop.ru/about/for-authors/ в общих правилах, пункт "1.4. Не публикуйте статьи об устаревшем, снятом с производства товаре." Но здесь статья "Ускоряем Ryzen в windows 7 через план электропитания" - видимо все же о "не снятых с производства" Ryzen , а не об устаревшей, снятой с производства Windows 7.

    -4