Андервольтинг в Windows и Linux центрального процессора (CPU)

Оглавление

1. Что такое андервольтинг

2. Что даёт андервольтинг?

3. Работает ли андервольтинг

4. Андервольтинг в Windows

4.1 Что такое Intel Extreme Tuning Utility (XTU)

4.2 Скачать Extreme Tuning Utility (XTU)

4.3 Интерфейс Extreme Tuning Utility

4.4 Панель Advanced Tuning — Продвинутый тюнинг

4.5 Панель: Stress Test — Стресс-тестирования

4.6 Панель: Benchmarking — Оценка производительности

4.7 Панели: Профили

4.8 Панели: App-Profile Pairing — Создание пар Приложение-Профиль

5. Как делать андервольтинг

5.1 Бенчмарк и замер

5.2 Настройка и тестирование

5.3 Результат андервольтинга

5.4 Создание профилей (Опционально)

5.5 Настройка автоматического переключения профилей (опционально)

6. Автозапуск андервольтинга при перезагрузке компьютера

7. Как проверить, включен ли андервольтинг

8. Возврат в исходное состояние

9. Кэш и интегрированный GPU

10. Изменение TDP (только для продвинутых пользователей)

11. Отключение Turbo Boost Short Power Max Enable

12. Изменение других настроек процессора в командной строке

13. Hashcat и андервольтинг

14. Андервольтинг в Linux

14.1 Андервольтинг с intel-undervolt

14.2 Тесты андервольтинга в Linux

14.3 Запуск службы intel-undervolt

Заключение


Что такое андервольтинг

Андервольтинг – это небольшое понижение напряжения на мобильных процессорах Intel, которое ведёт к уменьшению расхода батареи, понижению шума от вентиляторов и даже к повышению производительности!

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

Троттлинг (сброс частот) процессора, а, следовательно, и понижение производительности происходит по следующим причинам для мобильных процессоров:

  • перегрев (при достижении критической температуры процессор сбрасывает частоту, чтобы не сгореть);
  • TDP (Thermal Design Power) – количество энергии, больше которого не должен потреблять процессор. То есть, если процессор за определённую единицу времени потребил количество электричества, которое в него заложил производитель, то для того, чтобы оставаться в пределах TDP, он будет сбрасывать частоту, даже если других причин для этого нет (то есть, даже если нет перегрева).

Об этом хорошо сказано в этом видео:

Думаю, это понятно, что процессор теряет мощность, если слишком нагрелся или потребляет слишком много электричества.

Центральному процессору необходимо определённое напряжение для включения и поддержания нормальной работы. Но этот уровень немного различается в каждом чипе. То есть какие-то чипы могут работать на чуть более низком напряжении, каким-то нужно чуть более высокое. Поэтому, чтобы каждый чип работал, все они поставляются с завода с чуть завышенным напряжением, на котором нормально работают все чипы, то есть «с запасом». Андервольтинг заключается в том, что мы понемногу понижаем напряжения и находим то значение, на котором он стабильно работает. Точнее говоря, мы находим такое напряжение, на котором он уже не работает и делаем небольшой откат ))))))

Что даёт андервольтинг?

Подчеркну, процессор продолжает работать в своём нормальном режиме, то есть мы не понижаем его частоту. Центральный процессор работает также, но потребляет меньше электроэнергии. А если он потребляет меньше энергии, то значит он выделяет меньше тепла. А это ведёт сразу к двум важным следствиям:

  • процессор меньше греется – это означает, что уменьшается троттлинг из-за перегрева
  • процессор за единицу времени расходует меньше энергии – это означает, то троттлинг из-за превышения TDP также наступает реже

В конечном счёте это ведёт к тому, что процессор способен более длительное время держать свою максимальную частоту.

Ну и в самом конечном счёте, поскольку ЦПУ работает больше времени на максимальной частоте, это означает повышение производительности.

Работает ли андервольтинг

Да, работает, причём результаты заметны как в синтетических тестах, так и в реальных ресурсоёмких приложениях, таких как игры.

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

Андервольтинг MSI GS65 8RF Stealth Thin:

Андервольтинг Acer Swift SF314-52G-89YH

Андервольтинг Acer Spin 5 SP515-51GN

Андервольтинг ASUS ROG SCAR Edition GL703GS

Андервольтинг Lenovo ThinkPad X280

Как видим, результаты в виде снижения температуры и (или) повышения частот есть. Чудес не происходит и ваш компьютер не становится в 2 раза мощнее, но прирост производительности процентов на 10 в пиковой нагрузке – это приятно.

Андервольтинг в Windows

Андерваолтинг в Windows и Linux имеет различия. В первую очередь используемыми для этого программами. Для андервольтинга в Windows используется программа Extreme Tuning Utility (XTU).

Что такое Intel Extreme Tuning Utility (XTU)

Intel XTU — это простое программное обеспечение для начинающих и опытных энтузиастов, предназначенное для разгона, мониторинга и стресс-теста в системе Windows.

Программу Extreme Tuning Utility создала и распространяет компания Intel. В ней в графическом интерфейсе можно изменять настройки, влияющие на работу центрального процессора. Программа создана для разгона процессора Intel путём изменения самых разных параметров, а также оценки результатов с помощью встроенного бенчмарка и оценки стабильности системы с помощью встроенного стресс-теста.

Эта программа имеет много возможностей по изменению очень многих параметров центрального процессора, но мы рассмотрим всего лишь несколько настроек, позволяющих снизить температуру центрального процессора под сильной нагрузкой, что потенциально приводит к более тихой работе вентиляторов и может продлить время работы от батареи и увеличить мощность. Intel XTU не единственная программа в этом роде, к примеру, есть утилита ThrottleStop, у которой много поклонников среди владельцев мобильных компьютеров. Если вы используете ThrottleStop и хотите использовать Intel XTU, тогда вам нужно сбросить сделанные в ней изменения до стандартных значений, удалить ThrottleStop и затем перезапустить компьютер перед установкой Intel XTU. Работа этих двух программ пересекается, и совместное их использование может привести к беспорядку.

Скачать Extreme Tuning Utility (XTU)

Программа Extreme Tuning Utility (XTU) является бесплатной. Скачивайте её только с официального сайта Intel!

Для скачивания XTU, перейдите на официальную страницу программы: https://downloadcenter.intel.com/ru/download/24075/Intel-Extreme-Tuning-Utility-Intel-XTU-

Интерфейс Extreme Tuning Utility

Начальная страница программы в центре содержит информацию о вашем «железе» — аппаратной составляющей компьютера: процессор, графика, оперативная память, материнская плата и так далее. Имеется информация о БИОСе, его версии и дате выхода.

В левой части содержится навигационное меню, через которое можно перейти к различным функциям программы. Меню включает следующие элементы:

  • System Information — Информация о системе
  • Advanced Tuning — Продвинутый тюнинг
  • All Controls — Все элементы управления
  • Core — Ядро
  • Cache — Кэш
  • Graphics — Графика
  • Other — Другие
  • Stress Test — Стресс-тестирование
  • Benchmarking — Бенчмарк (оценка производительности)
  • Profiles — Профили
  • App-Profile Pairing — Составление пар «Приложение-Профиль» (нужно для автозапуска профилей

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

По умолчанию представлена следующая информация:

  • CPU Utilization — Использование ЦПУ
  • Memory Utilization — Использование памяти
  • Package Temperature — Температура пакета (ядра, видео ядро)
  • Max Core Frequency — Максимальная частота ядра
  • Processor Cache Frequency — Частота кэша процессора
  • Processor Graphics Frequency — Частота графика процессора
  • Active Core Count — Счётчик активных ядер
  • Thermal Throttling — Троттлинг из-за перегрева
  • Power Limit Throttling — Троттлинг из-за превышения мощности
  • Current Limit Throttling — Троттлинг из-за превышения потребления тока
  • Motherboard VR Thermal Throttling — Троттлинг из-за перегрева материнской платы
  • Package TDP — Рассеиваемое пакетом тепло

Панель Advanced Tuning — Продвинутый тюнинг

При переходе в настройки процессора нам показывают предупреждение:

В нём сказано, что изменение частоты или вольтажа может:

  • повредить процессор или другие компоненты системы
  • может уменьшить стабильность системы и её производительность

Гарантия может не распространяться, если процессор работал за пределами своих характеристик.

В этой инструкции мы сфокусируемся на разделе «Core» (имеются ввиду ядра CPU). Нас интересуют настройки:

  • Core Voltage Offset
  • Turbo Boost Power Max
  • Turbo Boost Short Power Max
  • Turbo Boost Short Power Max Enable

При разгоне настольных систем, в порядке вещей устанавливать постоянный вольтаж для улучшения стабильности, но на мобильных устройствах это может привести к слишком быстрой разрядке батареи. Вместо настройки вольтажа, мы будем регулировать смешение (сдвиг) – то есть изменение от автоматически установленного значения. Для процессоров на ноутбуке система постоянно меняет напряжение – увеличивает его в случае повышенной нагрузки и уменьшает его в случае простоя. Мы будет менять Offset, то есть сдвиг по сравнению с установленным автоматически напряжением.

Именно за это отвечает настройка Core Voltage Offset – если мы установим отрицательное значение, то процессор будет иметь чуть более низкое напряжение чем то, которое устанавливается автоматически.

Настройка Turbo Boost Power Max отвечает за количество мощности, расходуемое при Турбо Бусте (кратковременная работа процессора на максимальной производительности).

Настройка Turbo Boost Short Power Max позволяет установить более высокое значение расхода мощности для турбобуста на короткий период. Не может быть менее Turbo Boost Power Max.

Turbo Boost Short Power Max Enable – Включает или отключает повышенную мощность для турбобуста на короткое время.

Cache Voltage Offset — Сдвиг вольтажа кэша – меняется вместе с Core Voltage Offset:

Processor Graphics Voltage Offset – Сдвиг вольтажа графического процессора:

Именно эти настройки применяются для андервольтинга.

Панель: Stress Test — Стресс-тестирования

Встроенные стресс-тесты уступают в сравнении с Prime95 или AIDA64. Но они подходят для наших базовых проверок. Можно установить разное время выполнения теста. Доступны стрессы для центрального процессора (CPU), памяти, и видео ядра центрального процессора. Каждый тест пытается полностью нагрузить систему без паралича работы, который вызывают ранее упомянутые две программы. Встроенные тесты полезны для оценки стабильности во время процесса андервольтинга (или разгона), в то время как Prime95 или AIDA64 могут использоваться для подтверждения стабильности после того, как вы закончили подстройку ваших настроек «на долгое время».

Панель: Benchmarking — Оценка производительности

Стоит запустить бенчмарк перед изменением настроек, поскольку это можно использовать для оценки достигнутого результата. Тем не менее, нужно упомянуть, что как и стресс-тесты, этот бенчмарк не такой всеобъемлющий, как сторонние альтернативы, такие как Cinebench R15 loop для оценки производительности с течением времени и наблюдением за температурой и экономией энергии от андервольтинга. Этот бенчмарк показывает разницу всего в несколько очков до и после андервольтинга.

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

Хотя с помощью этого бенчмарка можно выявить сильтный троттлинг CPU. В нём наибольший интерес представляет самая высокая температура ЦПУ. Получение одинакового количества очков при более холодном процессоре говорит о том, что мы уже достигли целей андервольтинга.

Панели: Профили

Intel XTU позволяет вам создавать множество профилей с различными настройками, между которыми вы можете быстро переключаться. Это нужно не всем, поскольку обычно большинство находит лучшие стабильные настройки андервольтинга, на которых система может работать, и достаточно одного профиля, который будет применяться всё время. Тем не менее, если ваш CPU поддерживает разгон, то можно создать разные профили: производительный и шумный, который потребляет много энергии и требует постоянной работы вентиляторов – например, когда вы занимаетесь видеомонтажом или играете в требовательные к ресурсам игры; и тихий профиль, когда система большую часть времени находится в простое, что приведёт к экономию энергии и увеличит время жизни батареи.

Панели: App-Profile Pairing — Создание пар Приложение-Профиль

Наконец App-Profile Pairing. Это работает так: вы используете программу или процесс для автоматического переключения между профилями Intel XTU. Можно настроить переключение с повседневного «профиля андерволт» на «профиль с разгоном» когда обнаружено, что запущена выбранная игра или видео редактор. Для создания пар нужно выбрать из списка работающих программ (или напечатать имя .exe процесса или найти в системе желаемый .exe) и затем выбрать, какой профиль использовать при подключении к розетке (AC Power) или при работе от батареи (Battery). Создание пар – это мощная функция и самый полезный способ использования профилей.

Как делать андервольтинг

Бенчмарк и замер

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

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

Посмотрим на выполненный тест, мы можем видеть, что оранжевая линия, которая показывает максимальную частоту процессора, имеет вид пилы, что означает, что процессор не держит максимальную частоту. Набрано 949 очков, максимальная температура процессора 75 °C, максимальная частота процессора 3.76 GHz (для этого процессора максимальная частота при загрузке на все ядра должна быть 3.9 GHz).

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

Настройка и тестирование

И вот здесь мы начинаем. Мы начнём с подстроки Core Voltage Offset. Нам нужно постепенно уменьшать это значение и найти такое, при котором система продолжает оставаться стабильной. На каких-то компьютерах это -0.070 вольта (70 mV), на каких-то это в районе -100 mV и далее. Например, на моём экземпляре ASUS GL703GE с процессором Intel Core i7 8750H система остаётся стабильной при стресс-тестах на -190 mV.

Вы можете поискать примерные значения андервольтинга для вашей модели ЦПУ в Интернете, но в любом случае для вашего экземпляра будут свои индивидуальные настройки.

Изменения не вступают в силу немедленно. Те настройки, которые вы поменяли, но которые вы ещё не утвердили, помечены жёлтым цветом. Рядом с каждой настройкой имеется маленькая буква i, при нажатии на которую вы увидите информацию о данной настройке, в том числе её значении по умолчанию. Также имеется крестик для отмены ещё не утверждённых изменений.

Чтобы изменения вступили в силу, нажмите кнопку Apply:

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

Если после того, как вы нажали Apply, система зависла, то она должна сама перезагрузиться. Если это не происходит, значит нажмите и удерживаете кнопку включения на вашем ноутбуке. Зависание системы означает, что вы установили слишком низкое значение, попробуйте другое.

Если после нажатия Apply система не зависла, это означает, что нужно перейти к дальнейшим тестам. Выполните стресс-тестирование на 10 минут. Если компьютер прошёл этот тест и не перезагрузился, не завис и не вылетел с ошибкой, то это означает, что найденную настройку можно использовать как постоянную – хотя если вы используйте сторонние программы для стресс-тестирования, не будет лишним проверить с помощью них, перед тем, как окончательно закрепить сделанные изменения.

Если во время стресс-теста система отключилась, значит нужно продолжить уменьшать значение ползунка, например, если вы пробовали -150 mV и получили ошибку, то установите -140 mV и так далее.

Повторяйте этот процесс, пока не найдёте подходящее значение.

Результат андервольтинга

Это скриншот бенчмарка после андервольтинга:

Набрано 956 очков (было 949), самая высокая температура процессора составила 69 °C (была 75).

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

Создание профилей (Опционально)

Теперь, когда вы довольны достигнутым андервольтингом, нажмите кнопку Save в правой стороне для сохранения ваших настроек. Кстати, здесь размещается сводная таблица со всеми значениями «до» и «после».

Придумайте имя профиля. Все сохранённые профили будут во вкладке «Profiles».

Чтобы применить значения, сохранные в профиле, перейдите во вкладку профилей, выберите желаемый профиль, нажмите Show Values — то есть показать значения, а затем нажмите кнопку Apply.

Настройка автоматического переключения профилей (опционально)

Вы можете настроить профили для автоматического включения, когда Intel XTU обнаружит определённую запущенную программы/процессы. Чтобы это сделать, перейдите во вкладку App-Profile Pairing, нажмите Add Profile. Выберите одно из запущенных приложений или найдите exe (исполнимый файл) или напечатайте имя процесса. Выберите профили для работы от сети (AC Power) и отдельный профиль для работы от батареи (Battery) – это могут быть одинаковые профили.

Если вы хотите, чтобы андервольтинг всегда был включен, то можно привязать соответствующий профиль к процессу, который постоянно запущен, например, explorer.exe. Но с этим нужно быть очень осторожным, поскольку если вы выбрали нестабильный профиль, то ваш компьютер может отправиться в бесконечный цикл перезагрузки.

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

Автозапуск андервольтинга при перезагрузке компьютера

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

Этот способ заключается в использовании Powershell и консольной версии XTU для изменения установки сдвига напряжения ядра без запуска XTU.

Предупреждение: делайте это только для сравнительно стабильных значений андервольтинга (или добавьте задержку в расписание задачи).

Сравнительно стабильное значение – это то, при котором ваш компьютер не вылетает сразу и у вас есть время изменить или остановить расписание задачи, если это понадобится. Чтобы это проверить, сделайте андервольтинг в XTU и погоняйте стресс-тесты. Или, ещё лучше, используйте андервольтинг, который вы протестировали и интенсивно используете.

Итак, инструкция:

1) Скопируйте этот код в текстовывй файл:

$status = get-service -name "XTU3SERVICE" | Select-Object {$_.status} | format-wide
if ($status -ne "Running") { start-service -name "XTU3SERVICE"}
& 'C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe' -t -id 34 -v -ЗДЕСЬ ВАШЕ ЗНАЧЕНИЕ АНДЕРВОЛЬТИНГА
sleep 4
stop-process -id $PID -force

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

"C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe" -h

Если вы увидите справку, значит путь можно не менять.

Вместо ЗДЕСЬ ВАШЕ ЗНАЧЕНИЕ АНДЕРВОЛЬТИНГА нужно вставить число, на которое вы хотите понизить напряжение. Значение должно быть без точки, например сдвиг на -0.150 записывается так:

$status = get-service -name "XTU3SERVICE" | Select-Object {$_.status} | format-wide
if ($status -ne "Running") { start-service -name "XTU3SERVICE"}
& 'C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe' -t -id 34 -v -150
sleep 4
stop-process -id $PID -force

2) Сохраните файл как «undervolt.ps1» в известное безопасное место (например, я назвал файл undervolt.ps1 и сохранил в папку boot в C:\).

3) Запустите файл, чтобы убедиться, что он работает в PowerShell, то есть установите андерволт на 0 в XTU, затем запустите файл в PowerShell – в этот момент должны сами измениться цифры в XTU.

У меня при первом запуске появилось сообщение:

Изменение политики выполнения
Политика выполнения защищает компьютер от ненадежных сценариев. Изменение политики выполнения может поставить под
угрозу безопасность системы, как описано в разделе справки, вызываемом командой about_Execution_Policies и
расположенном по адресу https:/go.microsoft.com/fwlink/?LinkID=135170 . Вы хотите изменить политику выполнения?
[Y] Да - Y  [A] Да для всех - A  [N] Нет - N  [L] Нет для всех - L  [S] Приостановить - S  [?] Справка
(значением по умолчанию является "N"):

Выберите Y.

После выполнения скрипта появится сообщение, что тюнинг прошёл успешно, а в XTU поменяется значение.

4) Если вы не изменили Политику выполнения, то найдите powershell,

кликните правой кнопкой и запустите от Администратора:

Выполните там:

Set-ExecutionPolicy RemoteSigned

5) Скопируйте этот код в другой текстовый файл:

command = "powershell.exe -nologo -command C:\boot\undervolt.ps1"
set shell = CreateObject("WScript.Shell")
shell.Run command,0

Обратите внимание на C:\boot\undervolt.ps1 — вместо него впишите путь до вашего файла, который мы создали чуть ранее

6) Сохраните файл с именем undervolt.vbs

7) Откройте «Расписание выполнения задач». Дальше «Действие» -> «Создать простую задачу»:

В качестве имени впишите, например, «Андервольтинг» и нажмите Далее.

В качестве триггера выберите «При входе в Windows»:

Оставляем без изменения:

Укажите путь до файла undervolt.vbs:

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

Поставьте галочку «Выполнять с наивысшими правами».

Откройте свойства задачи, перейдите во вкладку «Условия» и снимите галочку «Запускать только при питании от электросети»:

Примечание: Мы использовали скрипт .vbs для того, чтобы разрешить PowerShell запускаться в фоне без выскакивающего на несколько секунд окна PowerShell. Если вам нравится выскакивающее окно PowerShell, то можно было обойтесь без .vbs скрипта, для этого в качестве программы выполнения установите powershell.exe и в качестве аргумента добавьте путь до файла .ps1. Будет открыто окно PowerShell на 2 секунды которое покажет андерволт.

Как проверить, включен ли андервольтинг

Это не такая простая задача, как может показаться на первый взгляд. Как только вы запускаете Extreme Tuning Utility, то в этот момент применяются настройки андервольтинга. Но были ли они включены до запуска Extreme Tuning Utility ответить уже невозможно.

Единственный способ проверить, установлены ли настройки андерволитнга, это выполнить в командной строке:

"C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe" -i tuning

Если после запуска команды ничего не выводится на экран, значит андервольтинг не включен!

Если вы настроили применение настроек с помощью PowerShell вышеописанным методом, то проверять, включен ли андервольтинг нужно не сразу после загрузки компьютера, а подождать где-то около минутки.

Возврат в исходное состояние

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

Для того, чтобы вернуться к настройкам по умолчанию без перезагрузки, в Extreme Tuning Utility перейдите на вкладку с профилями, выберите профиль по умолчанию (Default), нажмите Show Values, а затем Apply:

Кэш и интегрированный GPU

Самый лучший результат андервольтинга можно получить взяв те же принципы, используемые для ядер центрального процессора, и применив этот процесс сдвига вольтажа к кэшу и интегрированному видеочипу. Это будет иметь кумулятивный эффект. Это особенно полезно для ультабуков при одновременной нагрузке на CPU + GPU, при которой они все упираются в TDP и значительно сбрасывают частоты.

Как правило, сдвиг вольтажа кэша будет нормально стабилен на том же уровне, что и CPU ядро, в то время как Intel HD Graphics обычно достигает своего предела при более низком смещении.

Изменение TDP (только для продвинутых пользователей)

TDP (Thermal Design Power) представляет собой показатель рассеиваемого тепла, за пределы которой CPU не должен выходить. Это значение устанавливается производителем и исходя из него организуется система охлаждения.

Некоторые производители блокируют возможность изменения TDP. Если у вас разблокирована эта возможность, то вы можете настроить TDP на странице «Advanced Tuning – Core» изменив её на несколько ватт.

Меняя эту настройку в сторону увеличения очень внимательно следите за троттлингом из-за перегрева. Если он начинает происходить чаще, то нет смысла увеличивать TDP, так как из-за этого производительность может даже упасть. При этом также увеличивается риск повреждения вашего компьютера.

Отключение Turbo Boost Short Power Max Enable

Turbo Boost Short Power Max Enable позволяет процессору на короткий период выходить за пределы TDP. Если система охлаждения справляется, то эта опция увеличивает производительность.

Тесты в условиях, когда часто возникает троттлинг из-за перегрева, показали, что производительность может чуть увеличиться напротив из-за того, что эта опция отключена.

Изменение других настроек процессора в командной строке

Настройки Turbo Boost Power Max и Turbo Boost Short Power Max можно также поменять в командной строке и добавить их в автозагрузку. Более того, это можно сделать с любыми настройками. Это делается командой вида:

"C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe" -t -id ID -v -ЗНАЧЕНИЕ

В ней ID нужно заменить на идентификатор интересующей вас настройки, а ЗНАЧЕНИЕ на то значение, которое вы хотите присвоит.

Для получения текущего значения настройки с идентификатором ID используйте команду вида:

"C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe" -t -id ID

Чтобы узнать идентификаторы для настроек тюнинга процессора, выполните команду:

"C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe" -i tuning

Пример файла undervolt.ps1 для включения тюнинга трёх опций процессора после загрузки компьютера:

$status = get-service -name "XTU3SERVICE" | Select-Object {$_.status} | format-wide
if ($status -ne "Running") { start-service -name "XTU3SERVICE"}
& 'C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe' -t -id 34 -v -190
& 'C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe' -t -id 47 -v 90
& 'C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe' -t -id 48 -v 70
sleep 10
stop-process -id $PID -force

Hashcat и андервольтинг

Выше уже были даны примеры улучшения производительности в играх и синтетических тестах, но, думаю, для некоторых посетителей сайта HackWare.ru интереснее узнать об изменение производительности таких программ как Hashcat и Aircrack-ng.

Я выполнил бенчмарк брут-форса нескольких алгоритмов, в том числе Wi-Fi, до андервольтинга и после в Hashcat. Я запускал с ключём -D 1, чтобы перебор выполнялся только с использованием центрального процессора. Так данные получаются нагляднее, поскольку если запускать перебор и на процессоре, и на видеокарте, то основную роль начинает играть видеокарта и роль процессора становится очень мала – хотя, и в этой ситуации процессор перебирает хеши быстрее.

Результаты Hashcat до андервольтинга

cd C:\Users\Alex\Downloads\hashcat-4.1.0\

C:\Users\Alex\Downloads\hashcat-4.1.0>cd C:\Users\Alex\Downloads\hashcat-4.1.0\

C:\Users\Alex\Downloads\hashcat-4.1.0>.\hashcat64.exe -b -D 1
hashcat (v4.1.0) starting in benchmark mode...

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

OpenCL Platform #1: NVIDIA Corporation
======================================
* Device #1: GeForce GTX 1050 Ti, skipped.

OpenCL Platform #2: Intel(R) Corporation
========================================
* Device #2: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz, 4059/16238 MB allocatable, 12MCU

Benchmark relevant options:
===========================
* --opencl-device-types=1
* --optimized-kernel-enable

Hashmode: 0 - MD5
Speed.Dev.#2.....:   729.2 MH/s (17.14ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 100 - SHA1
Speed.Dev.#2.....:   369.3 MH/s (34.44ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 1400 - SHA-256
Speed.Dev.#2.....:   152.1 MH/s (82.72ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 1700 - SHA-512
Speed.Dev.#2.....: 48224.2 kH/s (64.86ms) @ Accel:1024 Loops:256 Thr:1 Vec:4

Hashmode: 2500 - WPA/WPA2 (Iterations: 4096)
Speed.Dev.#2.....:    16995 H/s (90.03ms) @ Accel:1024 Loops:512 Thr:1 Vec:8

Hashmode: 1000 - NTLM
Speed.Dev.#2.....:  1411.2 MH/s (8.81ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 3000 - LM
Speed.Dev.#2.....:   160.4 MH/s (78.07ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 5500 - NetNTLMv1 / NetNTLMv1+ESS
Speed.Dev.#2.....:   846.8 MH/s (14.65ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 5600 - NetNTLMv2
Speed.Dev.#2.....: 56386.9 kH/s (51.10ms) @ Accel:1024 Loops:256 Thr:1 Vec:8

Результаты Hashcat после андервольтинга:

.\hashcat64.exe -b -D 1
hashcat (v4.1.0) starting in benchmark mode...

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

OpenCL Platform #1: NVIDIA Corporation
======================================
* Device #1: GeForce GTX 1050 Ti, skipped.

OpenCL Platform #2: Intel(R) Corporation
========================================
* Device #2: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz, 4059/16238 MB allocatable, 12MCU

Benchmark relevant options:
===========================
* --opencl-device-types=1
* --optimized-kernel-enable

Hashmode: 0 - MD5
Speed.Dev.#2.....:   850.6 MH/s (14.81ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 100 - SHA1
Speed.Dev.#2.....:   410.4 MH/s (30.62ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 1400 - SHA-256
Speed.Dev.#2.....:   169.3 MH/s (74.16ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 1700 - SHA-512
Speed.Dev.#2.....: 56588.9 kH/s (56.56ms) @ Accel:1024 Loops:256 Thr:1 Vec:4

Hashmode: 2500 - WPA/WPA2 (Iterations: 4096)
Speed.Dev.#2.....:    19850 H/s (77.10ms) @ Accel:1024 Loops:512 Thr:1 Vec:8

Hashmode: 1000 - NTLM
Speed.Dev.#2.....:  1614.6 MH/s (7.67ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 3000 - LM
Speed.Dev.#2.....:   185.6 MH/s (67.39ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 5500 - NetNTLMv1 / NetNTLMv1+ESS
Speed.Dev.#2.....:   982.6 MH/s (12.68ms) @ Accel:1024 Loops:1024 Thr:1 Vec:8

Hashmode: 5600 - NetNTLMv2
Speed.Dev.#2.....: 73017.1 kH/s (86.02ms) @ Accel:1024 Loops:512 Thr:1 Vec:8

Как можно увидеть, прирост значительный, например для Wi-Fi это увеличение с 16995 H/s до 19850 H/s. Хотя, на самом деле, на фоне брут-форса на видеокарте это малосущественно и достигнутый прирост теряется в погрешностях.

Андервольтинг в Linux

Для Linux отсутствует официальная программа для андервольтинга, поэтому энтузиасты методами обратной инженерии нашли способы менять напряжение на процессоре и создали свои собственные утилиты.

Информация об андервольтинге в Linux (на английском языке): https://github.com/mihic/linux-intel-undervolt

Утилиты для андервольтинга в Linux:

Я покажу как сделать андервольтинг в Linux на примере intel-undervolt, эта утилита написана на C (две другие это скрипты Python и Bash).

Андервольтинг с intel-undervolt

Установим программу:

git clone https://github.com/kitsunyan/intel-undervolt
cd intel-undervolt/
make
sudo make install
sudo systemctl daemon-reload

Использование программы:

intel-undervolt КОМАНДА

В качестве КОМАНДЫ может быть

  read      Прочитать и отобразить текущие значения
  apply     Применить значения из конфигурационного файла
  daemon    Запустить в режиме службы

Прочитаем текущие значения:

sudo intel-undervolt read

В данный момент у меня настройки по умолчанию:

CPU (0): -0.00 mV
GPU (1): -0.00 mV
CPU Cache (2): -0.00 mV
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

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

Запущу его на 5 минут, с нагрузкой на все 12 ядер (по ссылке в статье описание опций):

sysbench cpu --threads=12 --time=300 run

Мой текущий результат без андервольтинга:

Настройка андервольтинга в intel-undervolt

Для настройки intel-undervolt нужно изменить значения в конфигурационном файле /etc/intel-undervolt.conf:

sudo gedit /etc/intel-undervolt.conf

По умолчанию там содержится следующее:

# CPU Undervolting
# Usage: apply ${index} ${display_name} ${undervolt_value}
# Example: apply 2 'CPU Cache' -25.84

apply 0 'CPU' 0
apply 1 'GPU' 0
apply 2 'CPU Cache' 0
apply 3 'System Agent' 0
apply 4 'Analog I/O' 0

# TDP Alteration
# Usage: tdp ${short_term} ${long_term}
# Usage: tdp ${short_term}/${time_window} ${long_term}/${time_window}
# Example: tdp 45/0.002 35/28

# Critical Temperature Offset Alteration
# Usage: tjoffset ${temperature_offset}
# Example: tjoffset -20

# Daemon Update Inverval
# Usage: interval ${interval_in_milliseconds}

interval 5000

Для применения настроек андервольтинга используется синтаксис: apply ${index} ${display_name} ${undervolt_value}.

Здесь: apply — команда для применения настроек, ${index} — номер настройки, которую мы применяем, ${undervolt_value} — значение андервольтинга.

В качестве ${index} может быть:

  • 0 — CPU (то есть центральный процессор)
  • 1 — GPU (то есть видео ядро центрального процессора)
  • 2 — CPU Cache (то есть кэш центрального процессора)
  • 3 — System Agent
  • 4 — Analog I/O

Например:

apply 2 'CPU Cache' -25.84

означает андервольтинг кэша CPU на 25.84 mV.

Ограничение мощности

Здесь можно указать свои значения для TDP.

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

Поддерживается два варианта синтаксиса:

tdp ${short_term} ${long_term}
tdp ${short_term}/${time_window} ${long_term}/${time_window}

Здесь:

  • ${short_term} — предельная мощность на тот период ТурбоБуста, когда ему разрешено выходить за границы обычного ТрубоБуста
  • ${long_term} — предельная мощность «обычного» ТурбоБуста
  • ${time_window} — продолжительность данного отрезка обычного ТурбоБуста или короткого «супер» ТурбоБуста

Пример:

tdp 35/5 25/60

В нём устанавливается значение TDP на 35 когда турбобусту разрешено выйти за пределы обычного турбобуста, при этом продолжительность этого отрезка 5 секунд. Значение «обычного» турбобуста установлено на 25, причём его продолжительность 60 секунд.

Необязательно указывать время короткого и долгого турбобуста, можно использовать следующий синтаксис, только со значениями TDP:

tdp 35 25

В этом случае будут использоваться дефолтные интервалы времени.

Лимит температуры

Вы можете установить предел температуры, после которого начинается термальный троттлинг. Температура указывается в виде значения смещения от максимального температурного уровня. Допустим установлено:

tjoffset -20

Если максимальный температурный уровень установлен на 100, то результирующий лимит будет 100 — 20 = 80°C. Помните, что сдвиг более чем 15°C разрешён только в Skylake и более новых.

Применение настроек

После того, как вы изменили файл /etc/intel-undervolt.conf, чтобы настройки вступили в силу, нужно выполнить

sudo intel-undervolt apply

Программе нужны права рут. Вы можете применять ваши настройки автоматически, включив службу intel-undervolt.service.

Режим службы

Иногда лимиты мощности и температуры могут быть сброшены EC, BIOS или чем-то ещё. Это поведение можно подавить, периодично применяя настройки лимитов. intel-undervolt-loop.service позволяет вам запустить эту программу в режиме службы, которая с определённым интервалом будет применять настройки. Интервал можно изменить поменяв значение interval:

interval 5000

Это значение в миллисекундах, по умолчанию установлено на 5 секунд.

Тесты андервольтинга в Linux

После применения андервольтинга вновь запускаю бенчмарк:

sysbench cpu --threads=12 --time=300 run

Новое значение:

В первый раз я получил:

  • CPU скорость: событий в секунду: 9065.31
  • Общая статистика: общее количество событий: 2719621

Событием в этой программе бенчмаркинга называют количество проделанных операций.

Во второй раз я получил:

  • CPU скорость: событий в секунду: 12486.27
  • Общая статистика: общее количество событий: 3745908

Прирост производительности 12486.27 / 9065.31 * 100% = 137,73%, то есть на 37 процентов.

В Windows у меня в Hashcat увеличилась производительность при переборе паролей Wi-Fi на центральном процессоре с 16995 H/s до 19850 H/s.

19850 / 16995 * 100% = 116,8%, то есть на 16 процентов.

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

Примечание: я также сильно увеличил TDP, не делайте так, если не уверены. В моём случае после снижения напряжения троттлинг из-за превышения TDP практически не наступает (процессору хватает дефолтного TDP), поэтому эта настройка вообще мало на что влияет + справляется охлаждение. Вы этой настройкой можете довести свой процессор до крайней температуры — без стресс-тестов с контролем температуры не меняйте это значение. Если у вас имеет место термальный троттлинг (из-за перегрева) — вообще не меняйте эту настройку в сторону увеличения! В этом случае вы сделаете сильно хуже и появляются реальные перспективы «спалить» процессор.

Запуск службы intel-undervolt

Для запуска службы intel-undervolt применяется команда:

sudo systemctl start intel-undervolt

Для остановки:

sudo systemctl stop intel-undervolt

Для проверки статуса:

systemctl status intel-undervolt

После перезагрузки служба не будет запущена. Для этого её нужно добавить в автозагрузку командой:

sudo systemctl enable intel-undervolt

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

Заключение

Итак, андервольтинг в самом деле позволяет добиться прироста мощности и(или) более холодного процессора без дополнительного расхода электричества.

В этой статье я не рассматривал андервольтинг видео ядра центрального процессора (Intel HD GPU). Это особенно должно дать положительные результаты для нетбуков, в которых нет дискретной (отдельной) видеокарты. В моём случае интегрированный видео чип не используется (и даже не установлен его драйвер), поэтому мне затруднительно делать его тестирование.

Меры безопасности Intel XTU должны защищать вас, но не изменяйте ничего, что вы не понимаете, и сохраняйте любые изменения на разумных уровнях, потому что некоторые настройки могут нанести реальный ущерб. Особенно контролируйте термальный троттлинг — перегрев процессора.

Андервольтинг это не магия, поэтому не ожидайте резких изменений.

В intel-undervolt меньше настроек и труднее что-то действительно сломать. Но помните, что в автозагрузку можно добавлять только настройки, при которых система стабильна. Все тесты нужно делать с отключением автозагрузки intel-undervolt (или аналогичных программ) — это является лучшей гарантией, что вы сможете загрузиться в систему если выбрали неверные значения андервольтинга.

Рекомендуемые статьи:

Добавить комментарий

Ваш e-mail не будет опубликован.