Перейти к содержанию

Управление частотами и напряжением RX470/480 в Linux


Komonec

Рекомендуемые сообщения

Добрый день.

 

Подскажите, есть ли возможность управлять частотами и напряжением RX470/480 в Linux (Ubuntu, Debian)?

 

Знаю, что можно менять значения в /sys/class/drm/card*/device/

 

Например, чтобы изменить частоту чипа, нужно сделать echo 7 > /sys/class/drm/card0/device/pp_dpm_sclk

0: 300Mhz

1: 466Mhz
2: 644Mhz
3: 950Mhz
4: 1130Mhz
5: 1150Mhz
6: 1175Mhz
7: 1200Mhz*

 

Что не очень удобно. Как управлять напряжением - я не нашел.

Пробовал управлять частотами в майнер от Клаймора, но значения не менялись.

Изменено пользователем Komonec
Ссылка на комментарий
Поделиться на другие сайты

Рискую быть заминусованным, но отвечу.

Возможность есть (парсите pp_table и будет вам счастье), публично доступного, халявного тулза для этого нет.

Ссылка на комментарий
Поделиться на другие сайты

Добрый день.

 

Подскажите, есть ли возможность управлять частотами и напряжением RX470/480 в Linux (Ubuntu, Debian)?

 

Знаю, что можно менять значения в /sys/class/drm/card*/device/

 

Например, чтобы изменить частоту чипа, нужно сделать echo 7 > /sys/class/drm/card0/device/pp_dpm_sclk

0: 300Mhz

1: 466Mhz

2: 644Mhz

3: 950Mhz

4: 1130Mhz

5: 1150Mhz

6: 1175Mhz

7: 1200Mhz*

 

Что не очень удобно. Как управлять напряжением - я не нашел.

Пробовал управлять частотами в майнер от Клаймора, но значения не менялись.

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

даунвольт на новых драйверах к сожалению пока не возможен, единственное решение шить в биос

лично остановился на следующей схеме:

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

Ссылка на комментарий
Поделиться на другие сайты

даунвольт на новых драйверах к сожалению пока не возможен, единственное решение шить в биос

Весь функионал в дровах уже есть, через pp_table все прекрасно даунвольтится.

Единственное для чего в линуксе нужно шить биос это тайминги.

Ссылка на комментарий
Поделиться на другие сайты

Вот из EthOS wolfamdctrl (бинарное что-то) для управления частотами.

# ./wolfamdctrl -h
wolfamdctrl v0.1.0
Usage: ./wolfamdctrl [-i GPUIdx] [-m Mode] [--core-state State index] [--mem-state State index] [Modification options]
Mode is either 'r' for reading, or 'w' for writing.
Modification options are only valid when using write mode:
	--mem-clock Memory Mhz
	--core-clock Core Mhz
When reading, the state index parameter is optional - omitting it will show all states.
Obviously, when using write mode, the core or memory (or both) state indices and a modification option are required.


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

У меня некоторое время назад даже при прошивке в биос напряжения в линуксе выставлялось свое, автоматическое. Вы замеры делали ваттметром?


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

А можно поделиться скриптом для вентиляторов?

wolfamdctrl.zip

Ссылка на комментарий
Поделиться на другие сайты

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

Это да. Некоторое время назад (незнаю как сейчас ибо пофиг) линукс категорически игнорил значения напряжений в биосе.

Но он никогда не игнорил уровень dpm и напряжение на контроллере памяти забитое через pp_table.

Он вероятно не игнорит напряжения и на ядре, но мне в настоящий момент пофиг (ибо и через dpm все работает).

Вы замеры делали ваттметром?

Розеткой EDIMAX SP2101W. Имхо ваттметры отстой ибо ими статистику нормально не собрать.

 

PS: Заранее прошу меня извинить относительно орфографических и других ошибок. У меня день рождения и я сижу пьянствую.

Ссылка на комментарий
Поделиться на другие сайты

Это да. Некоторое время назад (незнаю как сейчас ибо пофиг) линукс категорически игнорил значения напряжений в биосе.

Но он никогда не игнорил уровень dpm и напряжение на контроллере памяти забитое через pp_table.

Можно пример скрипта, которым вы выставляете значения?

Ссылка на комментарий
Поделиться на другие сайты

Можно пример скрипта, которым вы выставляете значения?

Нельзя (в прошлый раз за это заминусили).
Ссылка на комментарий
Поделиться на другие сайты

А можно поделиться скриптом для вентиляторов?

http://pastebin.com/Npw6zD5x

 

запускать нужно из под рута, или юзера с разрешением писать в sysfs

 

максимальную/минимальную температуру и задержку можно прописать в начале скрипта, на максимальной температуре вентили на 100% на минимальной 0%, средние значения подбираются пропорционально, дефолтные значения 70/50 °С, 5 sec

 

один нюанс, заметил позже, не было времени переписывать:

 

скрипт пишет значение от 0 до 255 в файл /sys/class/drm/cardX/device/hwmon/hwmoX/pwm1

 

как бы логично предположить что  255 это вентили на 100%, а 0 - вентили отключены

 

но по факту вентили запускаются при значении ~60, если вам надо чтоб вентили включались скажем при 50 градусах, то минимальную температуру нужно указать чуть ниже

 

скрипт откатан на десятке ферм, за 5 месяцев "не было ни единого разрыва" )

 

 

Ссылка на комментарий
Поделиться на другие сайты

Весь функионал в дровах уже есть, через pp_table все прекрасно даунвольтится.

Единственное для чего в линуксе нужно шить биос это тайминги.

Игралься с pp_table 5 месяцев назад, у меня тогда не получилось (

Да и сейчас вот так сходу мануалов нагуглить не удалось. Может вы подскажите где искать?

 

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

 

Ссылка на комментарий
Поделиться на другие сайты

Игралься с pp_table 5 месяцев назад, у меня тогда не получилось (

Да и сейчас вот так сходу мануалов нагуглить не удалось. Может вы подскажите где искать?

А их и нет и никогда не было.

Структуру powerplaytable можно посмотреть в исходниках polaris bios editor (она такая же).

Повторюсь.

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

Это работает на всех разумных версиях ядра linux в ubuntu 16.04.

Изменено пользователем Roiltoj8
Ссылка на комментарий
Поделиться на другие сайты

А их и нет и никогда не было.

Структуру powerplaytable можно посмотреть в исходниках polaris bios editor (она такая же).

Повторюсь.

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

Это работает на всех разумных версиях ядра linux в ubuntu 16.04.

 

Вообще наш разговор начался с вашей фразы:

 

 

Весь функионал в дровах уже есть, через pp_table все прекрасно даунвольтится.

 

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

Изменено пользователем r9380
Ссылка на комментарий
Поделиться на другие сайты

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

Для меня слово "прекрасно" означает "прекрасно работает для меня".

Правкой pp_table работает все, но это "гемор и изврат" и не везде.

Частично правкой pp_table и dpm тоже "гемор и изврат", но менее точно, существенно проще в реализации и везде.

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

(за подобное утверждение меня тоже в прошлый раз заминусили).

Кому надо тот себе тул сделал (знаю пару человек кроме Wolf0).

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

http://pastebin.com/Npw6zD5x

 

запускать нужно из под рута, или юзера с разрешением писать в sysfs

 

максимальную/минимальную температуру и задержку можно прописать в начале скрипта, на максимальной температуре вентили на 100% на минимальной 0%, средние значения подбираются пропорционально, дефолтные значения 70/50 °С, 5 sec

 

один нюанс, заметил позже, не было времени переписывать:

 

скрипт пишет значение от 0 до 255 в файл /sys/class/drm/cardX/device/hwmon/hwmoX/pwm1

 

как бы логично предположить что  255 это вентили на 100%, а 0 - вентили отключены

 

но по факту вентили запускаются при значении ~60, если вам надо чтоб вентили включались скажем при 50 градусах, то минимальную температуру нужно указать чуть ниже

 

скрипт откатан на десятке ферм, за 5 месяцев "не было ни единого разрыва" )

 

 

Спасибо за код. То что доктор прописал. Вот только не вник пока что в логику cpu_coef. Открылы cpuinfo и нашли там интел. Переписали дефолтное значение с нуля на единицу. В результате при попытке установить обороты скрипт лезет в каталог которого нет, а именно:

/sys/class/drm/card0/device/hwmon/hwmon1

Подозреваю что это особенность моей системы.

 

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping        : 9
cpu MHz         : 350.000
cache size      : 1024 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl eagerfpu pni dtes64 monitor ds_cpl cid cx16 xtpr
bugs            :
bogomips        : 5599.89
clflush size    : 64
cache_alignment : 128
address sizes   : 36 bits physical, 48 bits virtual
power management:
2017-03-05 01:00:47
Traceback (most recent call last):
  File "./amd_gpu_fan_ctrl.py.py", line 70, in <module>
    gpu_temp = temp(num)
  File "./amd_gpu_fan_ctrl.py.py", line 31, in temp
    with open('/sys/class/drm/card{0}/device/hwmon/hwmon{1}/temp1_input'.format(card_num, card_num + cpu_coef)) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/sys/class/drm/card0/device/hwmon/hwmon1/temp1_input'
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "./amd_gpu_fan_ctrl.py.py", line 75, in <module>
    pwm1_enable(num)
  File "./amd_gpu_fan_ctrl.py.py", line 60, in pwm1_enable
    with open('/sys/class/drm/card{0}/device/hwmon/hwmon{1}/pwm1_enable'.format(card_num, card_num + cpu_coef), 'w') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/sys/class/drm/card0/device/hwmon/hwmon1/pwm1_enable'
 
Покажите cpuinfo и ls /sys/class/drm/card0/device/hwmon/ на системе где скрипт работает из коробки. Я закомментил строки 13-16 пока.
 
UPD: да и вот ещё, наткнулся на башевскую реализацию для amdgpu-pro: https://github.com/DominiLux/amdgpu-pro-fans/blob/master/amdgpu-pro-fans.sh
Изменено пользователем kan5300
Ссылка на комментарий
Поделиться на другие сайты

Спасибо за код. То что доктор прописал. Вот только не вник пока что в логику cpu_coef. Открылы cpuinfo и нашли там интел. Переписали дефолтное значение с нуля на единицу. В результате при попытке установить обороты скрипт лезет в каталог которого нет, а именно:

/sys/class/drm/card0/device/hwmon/hwmon1

Подозреваю что это особенность моей системы.

И не только вашей (хотя у меня свой контроллер для вентилей). Это например с Asrock B85 с установленным G1840.

# ls -d /sys/class/drm/card?/device/hwmon/hwmon?
/sys/class/drm/card0/device/hwmon/hwmon0
/sys/class/drm/card1/device/hwmon/hwmon1
/sys/class/drm/card2/device/hwmon/hwmon2
/sys/class/drm/card3/device/hwmon/hwmon3
/sys/class/drm/card4/device/hwmon/hwmon4
/sys/class/drm/card5/device/hwmon/hwmon5

# ls /sys/class/hwmon
hwmon0  hwmon1  hwmon2  hwmon3  hwmon4  hwmon5  hwmon6

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

Более правильно видимо будет вычислить директорию hwmon как

hwmon_dir=glob.glob('/sys/class/drm/card'+card_id+'/device/hwmon/hwmon*')[0]
(карт с раздельным управлением вентиляторами я пока не видел, карты без вентилей нам не интересны). Изменено пользователем Roiltoj8
Ссылка на комментарий
Поделиться на другие сайты

Добрый день, люди добрые!

 

По определенным причинам пришлось перенести карточки Sapphire RX 470 4G OC на комп с линухой. (Ubuntu 16.04, дрова amdgpu-pro 16.40).

Все завелось, скорости такие как под виндой без разгона.

Пробовал изменять параметры через /sys/class/drm/card0/device/, скорость не менялась.

Пробовал через wolfamdctrl, выставлял частоты как под виндой, но скорость падала до 7 Мх/с.

Осталась надежда на AMDOverdriveCtrl, но он выдает  ошибку "Fatal Error: Mismatch between the program and library build versions detected." Вот с ним сейчас и вожусь.

Подскажите как под линухой разогнать карточки до заветных цифр или хотя бы направьте, куда еще копать?

 

С большим к Вам уважением!

Ссылка на комментарий
Поделиться на другие сайты

Добрый день, люди добрые!

 

По определенным причинам пришлось перенести карточки Sapphire RX 470 4G OC на комп с линухой. (Ubuntu 16.04, дрова amdgpu-pro 16.40).

Все завелось, скорости такие как под виндой без разгона.

Пробовал изменять параметры через /sys/class/drm/card0/device/, скорость не менялась.

Пробовал через wolfamdctrl, выставлял частоты как под виндой, но скорость падала до 7 Мх/с.

Осталась надежда на AMDOverdriveCtrl, но он выдает  ошибку "Fatal Error: Mismatch between the program and library build versions detected." Вот с ним сейчас и вожусь.

Подскажите как под линухой разогнать карточки до заветных цифр или хотя бы направьте, куда еще копать?

 

С большим к Вам уважением!

sudo ./wolfamdctrl -i 0 -m r

в студию. И скрипт запуска майнера (или строку запуска с параметрами).

Ссылка на комментарий
Поделиться на другие сайты

sudo ./wolfamdctrl -i 0 -m r

в студию. И скрипт запуска майнера (или строку запуска с параметрами).

 

sudo ./wolfamdctrl -i 0 -m r

выдает пустую строчку.

 

 

майнер запускаю со стандартными параметрами через screen:

#!/bin/sh
screen -d -m -A -S eth sudo /usr/local/ethdcrminer/start.bash

содержимое start.bash

#!/bin/sh
cd /usr/local/ethdcrminer
./ethdcrminer64 -epool eth-ru.dwarfpool.com:8008 -ewal 0x11cbc537cf13445e7ce048b54551426903123125 -epsw x -eworker comp1
Ссылка на комментарий
Поделиться на другие сайты

Надо находиться либо в томже каталоге где лежит бинарник вулфктл либо прописывать полный путь например sudo /home/user/temp/wolfamdctl -i 0 -m t

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за замечания по работе скрипта для регулирования вентиляторов. Походу на разных системах hwmon могут получать разные значения.
Переделал скрипт http://pastebin.com/URAiaMrc теперь все должно работать на любой системе где есть амд карта и amdgpu pro драйвера

Изменено пользователем r9380
Ссылка на комментарий
Поделиться на другие сайты

 

 

od6config не будет работать с rx 480 т.к. в amdgpu дровах нет поддержки ADL а od6config их использует. тоже самое с aticonfig, atiweak.
Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Господа, приветствую!

Я правильно понимаю что добиться результатов аналогичных Win платформе по mh/s в Linux так и не удалось? В силу знаний работы с ОС, у меня настроен linux сетап на 16.04 (4.4) + 16.60 (amdgpupro). Claymore выдает 23.4 для Sapphire 480 Nitro+. Сегодня пробовал из под винды поиграться с биосом, запустил и штатно увидел что Mh/s такой же 23-24. После игр с биосом (на win не взлетала карта из-за дров пока что забил на это) ubuntu выдает 24.7. Пробовал задать клок до 2100 через radeonjet, особо ничего не поменялось.

В интернетах упоминается что на ethos все хорошо, но учитывая отсутствие детальной инфы со скринами и так далее, выглядит как слухи

Ссылка на комментарий
Поделиться на другие сайты

Господа, приветствую!

 

Я правильно понимаю что добиться результатов аналогичных Win платформе по mh/s в Linux так и не удалось? В силу знаний работы с ОС, у меня настроен linux сетап на 16.04 (4.4) + 16.60 (amdgpupro). Claymore выдает 23.4 для Sapphire 480 Nitro+. Сегодня пробовал из под винды поиграться с биосом, запустил и штатно увидел что Mh/s такой же 23-24. После игр с биосом (на win не взлетала карта из-за дров пока что забил на это) ubuntu выдает 24.7. Пробовал задать клок до 2100 через radeonjet, особо ничего не поменялось.

 

В интернетах упоминается что на ethos все хорошо, но учитывая отсутствие детальной инфы со скринами и так далее, выглядит как слухи

Если карта не шитая, то это нормальный хешрейт. 29+ появятся только после изменения таймингов в биосе.

 

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

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Similar Topics

    • Валютное управление Гонконга объявило о запуске оптовой цифровой валюты

      Валютное управление Гонконга (HKMA) объявило о запуске Project Ensemble, нового проекта цифровой валюты центрального банка для оптовых расчетов (wCBDC), которая призвана оказать поддержку местному рынку токенизации. «Project Ensemble направлен на формирование инновационной инфраструктуры финансового рынка (FMI) Гонконга, которая будет способствовать беспрепятственным межбанковским расчетам на базе токенизированных депозитов в wCBDC», - говорится в анонсе HKMA.   HKMA намерено проте

      в Новости криптовалют

    • Управление энергетической информации США пообещало уничтожить все записи о майнерах

      Совет Техаса по блокчейну (TBC) и майнинговая компания Riot Platform уведомили окружной суд штата, что достигли соглашения с Министерством энергетики США (DOE) и Управлением энергетической информации США (EIA). Управление энергетической информации, по условиям соглашения, прекратило сбор информации о компаниях, занимающихся добычей криптовалют. О новом сборе данных компании будут предупреждены заранее.   В январе Министерство энергетики приступило к сбору данных о майнерах биткоина

      в Новости криптовалют

    • Управление энергетической информации США будет собирать данные о майнинге биткоинов

      Административно-бюджетное управление США (OMB) разрешило Управлению энергетической информации (EIA) требовать от майнинговых компаний подробные данные о расходе и использовании электроэнергии. EIA оформило разрешение OMB в экстренном порядке после того как стало понятно, что сочетание сильного похолодания и возросшей активности майнеров, вызванной ростом цен на биткоины, может вызвать «повышенную неопределенность на рынках электроэнергии». Энергетики утверждают, что «неподконтрольная майнин

      в Новости криптовалют

    • Управление финансового надзора Великобритании мешает Binance вернуться на рынок

      Криптобиржа Binance пытается снова вернуться на рынок Великобритании. Однако ей препятствует Управление финансового надзора (FCA), говорят источники агентства Bloomberg. Крупнейшая криптобиржа мира обращалась к нескольким компаниям, имеющим разрешение британского регулятора на продвижение услуг в сфере криптовалют. Однако пока компании отказываются сотрудничать с Binance.   По информации источников Bloomberg, поводом для отказа стала обеспокоенность, которую выразило ведомство относит

      в Новости криптовалют

    • Регулятор штата Невада собрался ввести внешнее управление в компании Prime Trust

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

      в Новости криптовалют

×
×
  • Создать...