Способ разгона видеокарты Nvidia в Linux
Предисловие
Я не часто играю в игры, и поэтому производительность видеокарты всегда играла для меня второстепенную роль. Но как бы там ни было время от времени натыкаясь на какой-нибудь интересный релиз игры, не могу удержаться что бы не установить его и не поиграть, да и отвлечься от суеты бывает полезно. Так как я являюсь обладателем далеко не топовой видеокарты на чипе Nvidia, для меня довольно остро встал вопрос разгона видеокарты. Вроде бы никаких проблем, если бы не одно НО. Если для пользователей Windows существует целый зоопарк софта предназначенного для разгона видеокарт, то в Linux такого изобилия как оказалось нет. Даже больше того, всё разнообразие ограничивается всего лишь одной утилитой NVClock — для карт Nvidia, и так же одной утилитой AMDOverdriveCtrl — для AMD/ATI. На сайте NVClock меня ждало ещё одно разочарование — последнее обновление утилиты было в 2009 году, и мою карту она соответственно не поддерживает. Тем не менее решение оказалось гораздо ближе, а именно в самом драйвере. Дело в том что панель управления Nvidia имеет свои средства для управления частотой GPU и шины, но из-за соображений безопасности эти настройки скрыты от шаловливых рук пользователей. Далее о том как добраться до настроек.
К делу
Для того чтобы в панели управления появились необходимые пункты, нам необходимо открыть конфигурационный файл X сервера добавить строку: Option «Coolbits» «1» в блок Section «Device», у меня это выглядит так:
Section «Device»
Identifier «Card0»
Driver «nvidia»
Option «RenderAccel» «True»
Option «AddARGBGLXVisuals» «True»
Option «Coolbits» «1»
BusID «PCI:3:0:0»
Option «NoLogo» «True»
EndSection
Теперь после перезагрузки, в панели управления появятся дополнительные пункты настроек:
Переходим на вкладку Clock Frequencies и устанавливаем чекбокс «Enable Overclocking», после чего станет возможным вручную выставлять частоты для GPU и памяти. После того как подберёте оптимальные параметры, запомните их — так как после перезагрузки все настройки собьются, и будет необходимо всё выставлять заново. Что бы избежать этого, я создал скрипт такого содержания:
#!bin/sh
#Включаем оверклокинг
nvidia-settings —assign «[gpu:0]/GPUOverclockingState=1» &&
#2D повышаем частоту
#nvidia-settings —assign «[gpu:0]/GPU2DClockFreqs=*,*» &&
#3D Повышаем частоту пошагово.
nvidia-settings —assign «[gpu:0]/GPU3DClockFreqs=679,831» &&
nvidia-settings —assign «[gpu:0]/GPU3DClockFreqs=686,922» &&
#Выставляем предпочтительный режим(Prefer Maximum Performance)
nvidia-settings —assign «[gpu:0]/GPUPowerMizerMode=1» &
После чего сохранил файл в домашней директории и сделал его исполняемым. Теперь осталось прописать файл в автозапуск любым удобным вас способом и настройки будут устанавливаться автоматически при загрузке системы.
Спасибо всем кто читал. Надеюсь что эта информация хоть не много будет кому-то полезна.
Разгон и даунвольтинг видеокарт AMD в Linux с помощью OverDrive
При переходе с операционной системы Windows на Linux поначалу довольно сложно установить нужные значения разгона и даунвольтинга видеокарт при майнинге.
В ОС семейства Linux с ядром версии 4.17 и выше есть возможность управления разгоном видеокарт AMD встроенными в драйвер amdgpu средствами (технология OverDrive). К сожалению, эта функция по умолчанию отключена, но, как говорится, «стучите в двери, и Вам откроют…».
Почему стоит обновлять ядро системы и как проверить его версию
Для того, чтобы максимально использовать все возможности ОС, желательно сразу после установки произвести обновление компонентов. Это может добавить ряд полезных функций и устранит возможные баги.
Например, поддержка опций оверклокинга в видеокартах с ядром Hawaii появилась только в ядре 4.20 с драйверами amdgpu. Отсутствие такой возможности в более ранних ядрах с успехом решалось перепрошивкой BIOS, но зачем делать лишние телодвижения, если все уже продумано и встроено в ядро? Кроме того, даже при прошивке всех значений оверклокинга и даунвольтинга в Биос карточки, лучше продублировать управление и контроль за ее состоянием на уровне операционной системы.
Просмотреть информацию о том, какие вообще версии ядра сохранены в системе можно командой:
Примеры отображения информации о версии ядра по команде uname -a:
В ОС xubuntu 16.04 с ядром 4.15.0-72 (OverDrive не поддерживается):
В HiveOS на начало 2020 года используется ядро 5.0.21:
В RaveOS в январе 2020 года используется ядро 5.2.5:
Как включить управление вольтажом, частотами ядра и памяти в ОС типа *Ubuntu?
Для полноценного управления и контроля за состоянием видеокарт АМД Polaris и Vega в операционках на базе дистрибутива Убунту с драйверами amdgpu нужно включить поддержку технологии Radeon OverDrive. Для видеокарт Navi поддержка OverDrive включена в Linux с kernel 5.5 и выше.
Нужно понимать, что бездумное использование функций OverDrive может испортить оборудование, например, сжечь карту или перенагрузить блок питания и тем самым ускорить его прибытие в мир иной.
С точки зрения теории для включения OverDrive изменяют параметры ppfeaturemask в amdgpu драйвере. Благодаря этому появится полный контроль над состоянием видеокарт производства АМД, так как включатся следующие функции:
На практике с этой целью в загрузчике ядра /etc/default/grub в строке GRUB_CMDLINE_LINUX_DEFAULT нужно прописать:
Затем нужно не забыть обновить загрузчик ядра командой:
По умолчанию в драйверах используется значение 0xfffd3fff. Установка значения 0xffffffff изменяет следующие опции:
- включается режим OverDrive;
- включается патч gfxoff для уменьшения потребления энергии (функция power-saving);
- включается режим энергосбережения Stutter при работе на низких p-state.
При установке значения 0xfffd7fff включается только режим OverDrive.
Установка значения 0xffffffff на видеокартах RX 470/570 может привести к появлению артефактов, поэтому для них лучше использовать режим 0xfffd7fff.
Затем нужно найти в системе файл, в котором прописаны частоты и вольтаж видеокарты. Это делается командой (например, для видеокарты 0):
Исходя из информации на картинке, искомый файл находится по пути:
В этой директории имеется файл pp_od_clk_voltage, где содержится информация о состояниях P-state ядра/памяти и соответствующих им вольтажам:
Если в системе включена интегрированная в процессор видеокарта (обычно это нулевая или первая карта), то для нее файла pp_od_clk_voltage создаваться не будет.
В Linux можно менять значения P-state для ядра и VRAM аналогично разгону в Windows с помощью OverdriveNTool.
Для этого используют команду (в данном случае для изменения частоты и напряжения в P-state 7):
Здесь значение «s» изменяет параметры ядра на седьмой P-state, 1140 – частота ядра в MHz, 890 – его вольтаж в mV.
В команде нужно прописать свой путь к файлу pp_od_clk_voltage.
Для изменения частоты и вольтажа видеопамяти используют команду:
Здесь 2 – это второй стейт памяти, 2065 – частота в мегагерцах, 1150 –напряжение на контроллере памяти в мВ.
Для проверки внесения изменений выполняют:
команду и проверяют содержимое файла pp_od_clk_voltage с вольтажом и частотами.
Если изменения не применяются, нужно установить ручное управление производительностью видеокарты командой:
Если все значения сохранены и проверены, то для их применения применяют команду:
Для автоматического применения этих команд после перезагрузки можно использовать скрипт, например, под названием overclock в директории /usr/bin/.
В скрипт вписывают указанные выше команды:
Затем в папке /etc/systemd/system создают файл с расширением .service, например, overclock.service с таким содержимым:
Потом выполняют команду:
которая включает автозагрузку скрипта в виде системной службы.
Работоспособность автозагрузки скрипта можно проверить после перезагрузки командой:
Аналогичные операции можно сделать более простым путем с помощью утилит wolfamdctrl, AMDCOVC, или amdgpu-clocks, но это тема других статей.
Как разогнать видеокарту Nvidia в Ubuntu?
Если вам понадобилось разогнать видеокарту Nvidia в Ubuntu или другом Linux дистрибутиве, то вот как это сделать.
Способ 1 — GreenWithEnvy
Откройте терминал и установите поддержку flatpack для Ubuntu 18.10 и новее:
Для предыдущих версий:
и далее установите репозиторий в котором находиться утилита GreenWithEnvy:
После этого перезагрузите компьютер.
Перейдите по этой ссылке, чтобы установить GreenWithEnvy.
Способ 2 — TuxClocker
Разгонять видеокарта можно с помощью утилиты TuxClocker. Поддерживаются карты с 600 серии. Необходимо также установить проприетарный драйвер nvidia.
Откройте терминал и для начала давайте обновим список пакетов:
После чего установим несколько зависимостей:
sudo apt install git
sudo apt install qt5-default
sudo apt install g++
sudo apt install make
Теперь необходимо скопировать проект с GitHub:
git clone https://github.com/Lurkki14/tuxclocker
Переходим в проект
cd tuxclocker
Устанавливаем программу TuxClocker, для разгона видеокарт Nvidia!
qmake rojekti.pro
make
make install
Утилита устанавливается по пути opt/tuxclocker/bin. Запускаем TuxClocker и разгоняем видеокарту!
У вас остались еще дополнительные вопросы? Пишите их в комментариях, о том что у вас получилось или наоборот!
Вот и все! Больше статей и инструкций читайте в разделе Статьи и Хаки Linux. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!





