Hardware,  Майнинг,  Статьи

Понижение напряжения на процессорах Intel Haswell и новее в Linux

Viam supervadet vadens...

Дорогу осилит идущий...

Снижение вольтажа на процессоре улучшает его тепловой режим работы, а также уменьшает нагрев зоны VRM на материнской плате.

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

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

В Windows для этих целей можно использовать утилиту Intel XTU (для CPU Intel). В операционной системе Linux можно использовать большой ассортимент утилит, среди которых программы intel-undervolt, undervolt, iuvolt, linux-intel-undervolt и другие.

Эти программы управляют напряжением и throttling-режимом на процессорах Intel Haswell/Crystal Well (четвертое поколение и более новых), использующих интегрированный voltage-контроллер (FIVR, Fully Integrated Voltage Regulator):

Как производится управление напряжением в процессорах Intel?

Современные процессоры Intel питаются вольтажом порядка 1.8 V, формирующимся импульсными фазами питания материнской платы из напряжения +12 вольт от блока питания компьютера. Затем FIVR контроллер, находящейся в корпусе процессора, формирует вольтаж, необходимый для ядер (VCCin to VCore), встроенной видеокарты, кэша и других компонентов CPU.

Упрощенное представление обеспечения питания в процессорах Intel с помощью FIVR-технологии:

Управление вольтажом производится с помощью импульсного понижающего преобразователя напряжения (1.8 V) в нужный вольтаж (в пределах от 0.6 до 1.1 V):

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

Блок-схема понижающего преобразователя питания, встроенного в процессоры Intel, использующие технологию FIVR:

Расположение накопительных катушек индуктивности FIVR-фаз питания на LGA-процессорах Intel (например, на CPU в корпусе LGA 1150):

Как использовать утилиту intel-undervolt для снижения вольтажа на процессорах Intel?

Для undervolting-а процессора с помощью утилиты intel-undervolt в Linux-системах нужно произвести ее компиляцию из исходного кода командами:

git clone https://github.com/kitsunyan/intel-undervolt && cd intel-undervolt/

sudo apt install pkg-config

sudo ./configure --enable-systemd --enable-openrc

make && sudo make install

sudo systemctl daemon-reload

По окончанию компиляции в каталоге с исходным кодом должны появиться утилита intel-undervolt и ее конфигурационный файл:

Применять программу intel-undervolt нужно в консольном режиме, используя синтаксис формата (команды прописываются в файле /etc/intel-undervolt.conf):

intel-undervolt РЕЖИМ [ОПЦИИ]...

Основные режимы, использующиеся при работе с программой intel-undervolt:

read - чтение и отображение текущих значений работы процессора;

undervolt - применить значения из конфигурационного файла;

measure - произвести измерение потребления энергии процессором;

  -f, --format <формат> - формат вывода (terminal, csv);

  -s, --sleep <интервал> - интервал сна в секундах;

daemon - запустить программу intel-undervolt как службу.

Пример вывода информации программой intel-undervolt относительно состояния процессора при использовании команды

sudo intel-undervolt read

без применения каких-либо изменений:

после снижения вольтажа и допустимой критической температуры:

Программа intel-undervolt позволяет осуществлять управление напряжением на ядрах CPU, интегрированной видеокарте, кэше, System Agent и Analog I/O. Для понижения температуры/потребления достаточно уменьшить на 50-100 mV напряжения на CPU, GPU и CPU Cache.

Это делается путем прописывания нужных команд в конфигурационный файл intel-undervolt.conf, находящемся в одном каталоге с утилитой intel-undervolt:

undervolt ${index} ${display_name} ${undervolt_value}

где:

undervolt — команда применения настроек;

${display_name} — описание изменяемого параметра;

${index} — номер настройки, которую требуется изменить:
  • 0 — CPU (центральный процессор);
  • 1 — GPU (видео ядро);
  • 2 — CPU Cache (CPU кэш);
  • 3 — System Agent;
  • 4 — Analog I/O;
${undervolt_value} — значение, на которое будет понижено напряжение в мВ.

Фрагмент содержимого конфигурационного файла /etc/intel-undervolt.conf, понижающего напряжение на CPU, интегрированном GPU и кэше CPU на 80 мВ, а также снижающего его максимальную критическую температуру (параметр tjoffset):

undervolt 0 'CPU Voltage' -80

undervolt 1 'Integrated GPU Voltage' -80

undervolt 2 'CPU Cache Voltage' -80

tjoffset -15

Это можно сделать в текстовом редакторе nano командой
sudo nano /etc/intel-undervolt.conf

Примечание: некоторые процессоры не поддерживают снижение параметра tjoffset ниже -15 (появляется ошибка Failed to write temperature offset: Input/output error):

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

sudo intel-undervolt apply

Отработку команд утилиты intel-undervolt.conf можно прописать перед запуском CPU-майнера в начало скрипта его запуска.

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

sudo systemctl enable intel-undervolt

ее отключение выполняется командой

sudo systemctl stop intel-undervolt

запустить вручную службу intel-undervolt.service можно командой

sudo systemctl start intel-undervolt

До использования утилиты температура процессора Intel Core i5-4590 @ 3.30GHz при майнинге на двух потоках равнялась 53-62 градусам по Цельсию. При включении программы intel-undervolt процессор стал работать на этой же температуре уже на трех потоках майнинга, что позволило увеличить хешрейт на 30-40%.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *