- AMD Radeon Software for Linux
- Другие программы
- Рекомендуем
- Разгон и даунвольтинг видеокарт AMD в Linux с помощью OverDrive
- Как включить управление вольтажом, частотами ядра и памяти в ОС типа *Ubuntu?
- Вам также может понравиться
- О грандиозных падениях биткоина и текущей ситуации
- О легализации виртуальных активов в Украине
- Как устранить ошибку GPU driver error no temps в HIVE OS
- 7 комментариев
- Павел
- cryptoprofi
- Павел
- cryptoprofi
- Павел
- cryptoprofi
- blackwhite
AMD Radeon Software for Linux
AMD Radeon Software for Linux – набор драйверов и библиотек, необходимых для полноценного функционирования видеокарт AMD Radeon в операционных системах семейства Linux.
В состав пакета входят драйвера AMDGPU-Pro, предназначенные для установки на системах с видеокартами линейки Radeon Pro, и драйвера AMDGPU All-Open, предназначенные для других видеокарт AMD.
Также, в состав входят библиотеки Mesa — реализация графических API OpenGL и Vulkan с открытым исходным кодом. Они обеспечивают использование аппаратного ускорения и повышают производительность при работе с 3D-графикой.
Драйвера All-Open включают:
- Базовый драйвер ядра.
- Базовый драйвер ускорителя графики.
- Библиотеки Mesa OpenGL.
- Библиотеки Mesa мультимедиа.
Драйвера Pro включают:
- Базовый драйвер ядра.
- Базовый драйвер ускорителя графики.
- Библиотеки Mesa мультимедиа.
- Pro OpenGL
- Pro OpenCL
- Стек PAL OpenCL (поддерживает продукты Vega 10 и новее)
- Устаревший стек OpenCL (поддерживает устаревшие продукты старее Vega 10)
Другие программы
AMD Radeon Software Adrenalin
Драйверы графических карт AMD Radeon для WindowsAstra Linux
Российская операционная система на базе DebianРекомендуем
БЕСПЛАТНО
БЕСПЛАТНО
ПРОБНАЯ
БЕСПЛАТНО
АКЦИЯ
Разгон и даунвольтинг видеокарт AMD в Linux с помощью OverDrive
При переходе с операционной системы Windows на Linux поначалу довольно сложно установить нужные значения разгона и даунвольтинга видеокарт при майнинге.
В ОС семейства Linux с ядром версии 4.17 и выше есть возможность управления разгоном видеокарт AMD встроенными в драйвер amdgpu средствами (технология OverDrive). К сожалению, эта функция по умолчанию отключена, но, как говорится, «стучите в двери, и Вам откроют…». Большим плюсом технологии OverDrive является поддержка видеокарт с ядром Navi (RX5xxx). Пока это единственная возможность полноценно работать с параметрами разгона и даунвольтинга с такими картами в Linux.
Почему стоит обновлять ядро системы и как проверить его версию
Для того, чтобы максимально использовать все возможности ОС, желательно сразу после установки произвести обновление компонентов. Это может добавить ряд полезных функций и устранит возможные баги.
Например, поддержка опций оверклокинга в видеокартах с ядром Hawaii появилась только в ядре 4.20 с драйверами amdgpu. Отсутствие такой возможности в более ранних ядрах с успехом решалось перепрошивкой BIOS, но зачем делать лишние телодвижения, если все уже продумано и встроено в ядро? Кроме того, даже при прошивке всех значений оверклокинга и даунвольтинга в Биос карточки, лучше продублировать управление и контроль за ее состоянием на уровне операционной системы.
Проверить версию установленного в системе ядра можно командой:
uname -aПросмотреть информацию о том, какие вообще версии ядра сохранены в системе можно командой:
Примеры отображения информации о версии ядра по команде 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 нужно прописать:
amdgpu.ppfeaturemask=0xfffd7fff
amdgpu.ppfeaturemask=0xffffffff
Затем нужно не забыть обновить загрузчик ядра командой:
По умолчанию в драйверах используется значение 0xfffd3fff. Установка значения 0xffffffff изменяет следующие опции:
- включается режим OverDrive;
- включается патч gfxoff для уменьшения потребления энергии (функция power-saving);
- включается режим энергосбережения Stutter при работе на низких p-state.
При установке значения 0xfffd7fff включается только режим OverDrive.
Установка значения 0xffffffff на видеокартах RX 470/570 может привести к появлению артефактов, поэтому для них лучше использовать режим 0xfffd7fff.
Затем нужно найти в системе файл, в котором прописаны частоты и вольтаж видеокарты. Это делается командой (например, для видеокарты 0):
readlink -f /sys/class/drm/card0/device
Исходя из информации на картинке, искомый файл находится по пути:
В этой директории имеется файл pp_od_clk_voltage, где содержится информация о состояниях P-state ядра/памяти и соответствующих им вольтажам:
OD_SCLK:
0: 300MHz 750mV
1: 600MHz 769mV
2: 900MHz 887mV
3: 1145MHz 1100mV
4: 1215MHz 1181mV
5: 1257MHz 1150mV
6: 1300MHz 1150mV
7: 1411MHz 1150mV
OD_MCLK:
0: 300MHz 750mV
1: 1000MHz 800mV
2: 1750MHz 950mV
OD_RANGE:
SCLK: 300MHz 2000MHz
MCLK: 300MHz 2250MHz
VDDC: 750mV 1200mVЕсли в системе включена интегрированная в процессор видеокарта (обычно это нулевая или первая карта), то для нее файла pp_od_clk_voltage создаваться не будет.
В Linux можно менять значения P-state для ядра и VRAM аналогично разгону в Windows с помощью OverdriveNTool. Для ручного изменения параметров разгона нужно сначала выполнить команду:
sudo echo "manual" > /sys/class/drm/card0/device/power_dpm_force_performance_level
Для изменения P-state для ядра и VRAM используют команду вида (в данном случае для изменения частоты и напряжения в P-state 7):
sudo sh -c "echo 's 7 1140 890' > /sys/devices/pci0000:00/0000:00:02.0/pp_od_clk_voltage"
Здесь значение “s” изменяет параметры ядра на седьмой P-state, 1140 – частота ядра в MHz, 890 – его вольтаж в mV.
В команде нужно прописать свой путь к файлу pp_od_clk_voltage.
Для изменения частоты и вольтажа видеопамяти используют команду:
sudo sh -c "echo 'm 2 2065 950' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage"
Здесь 2 – это второй стейт памяти, 2065 – частота в мегагерцах, 1150 –напряжение на контроллере памяти в мВ.
Для проверки внесения изменений выполняют:
cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage
команду и проверяют содержимое файла pp_od_clk_voltage с вольтажом и частотами.
Если изменения не применяются, нужно проверить установку ручного управления производительностью видеокарты командой:
echo "manual" > /sys/class/drm/card0/device/power_dpm_force_performance_level
Если все значения сохранены и проверены, то для их применения применяют команду:
sudo sh -c "echo 'c' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage"
Для автоматического применения этих команд после перезагрузки можно использовать скрипт, например, под названием overclock в директории /usr/bin/ или прописывать эти команды в начало скрипта майнера.
В скрипт вписывают команды с нужными параметрами, например:
#!/bin/sh
sudo sh -c "echo 's 7 1450 1150' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage"
sudo sh -c "echo 'm 2 2065 950' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage"
sudo sh -c "echo 'c' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage"Затем в папке /etc/systemd/system создают файл с расширением .service, например, overclock.service с таким содержимым:
[Unit]
Description=Change GPU core and memory clocks
[Service]
Type=oneshot
ExecStart=/usr/bin/overclock
RemainAfterExit=yes
[Install]
WantedBy=multi-user.targetsudo systemctl enable overclock.service
которая включает автозагрузку скрипта в виде системной службы.
Работоспособность автозагрузки скрипта можно проверить после перезагрузки командой:
cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage
Аналогичные операции можно сделать более простым путем с помощью утилит wolfamdctrl, AMDCOVC, или amdgpu-clocks, но это тема других статей.
Вам также может понравиться
О грандиозных падениях биткоина и текущей ситуации
О легализации виртуальных активов в Украине
Как устранить ошибку GPU driver error no temps в HIVE OS
7 комментариев
Павел
Скажите, на xubuntu 18.04 с каким ядром и версией драйверов будет нормально работать регулировка частоты и вольтажа в майнере и 6 видеокарт?
cryptoprofi
Как правило, наилучшие результаты показывает последняя официальная версия ядра. На практике результаты могут отличаться из-за различий в используемом железе, настройках системы. Видеокарты AMD ведут себя довольно капризно, поэтому иногда приходиться долго искать для них приемлемую конфигурацию. Из-за этого я сейчас использую Linux только для старых АМД R9 290 с пониженным напряжением, прописанным в BIOS, четверки RX у меня сейчас работают на Windows 8.1 Embedded с драйверами от Robinhood, пока проблем с Ethereum нет, хотя скоро придется и их переводить на Linux. Тогда поделюсь своим опытом их настройки для получения стабильного даунвольтинга и разгона, сравнимого с восьмеркой.
Павел
cryptoprofi
Павел, спасибо за комментарий. Если не затруднит, был был бы рад прочесть Ваш способ разгона и даунвольтинга. Было бы интересно сравнить достигнутое потребление по измерителю мощности на Винде и Лине. Заранее спасибо.
Павел
Дайте телегу туда все изложу.
Две недели отмучался, с начала выяснил как прошивать Поларисы, чтобы дайнвольт работал при правке биоса (если нет параметра оффсета), потом этот метод был признан черезчур узкоспециализированным под ethash и было решено даунволтить на уровне Ос. Если бы я тогда знал сколько это мучений наверно не связывался бы.cryptoprofi
Согласен с вами, я потому и отказался от Linux для RX-ов, потому что на Windows 8.1 все летает, настройки минимальны, жор карт тоже.
blackwhite
Сначала в примере приводится “sudo sh -c “echo ‘s 7 1140 890′”,
а затем в скрипте “sudo sh -c “echo ‘s 7 1450 1150′”