RIGS REPOST: Заметки по amdgpu

Пользуясь тем, что в моем распоряжении оказалось много карт при сбое на miner30, провел испытания старых и новых образов системы с amdgpu. Далее – копия чатлогов из miners@conference.linuxoid.in:

[16:10:08] <rain> итого
[16:10:20] <rain> 4.12 – бага в amdgpu
[16:10:32] <rain> overdrive не работает
[16:10:40] <rain> 4.10-rc4  – работает
[16:11:06] <rain> на тестовой машинке 21.8 на 4.10 и 24 с хвостиком на 4.12 на эфире
[16:11:10] <truminer> с переписыванием таблицы? или там нормальная
[16:11:11] <truminer> ?
[16:11:23] <rain> одни и те же действия
[16:11:35] <rain> чисто средствами amdgpu и через sysfs
[16:11:44] <rain> “переписывание таблицы” –  ты про утилитку?
[16:11:50] <truminer> угу
[16:11:55] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i  0 –mem-state 2 –mem-clock 1990 –set-tdp 1000 –set-max-power 1000 –set-max-mem-clock 9999
[16:12:07] <rain> на это ему глубоко фиолетово, если память встала в 300 МГц
[16:12:23] <rain> ETH: GPU0 4.177 Mh/s, GPU1 21.706 Mh/s, GPU2 21.764 Mh/s, GPU3 21.758 Mh/s
[16:12:33] <truminer> странно у меня такого никогда не было
[16:12:35] <rain> rain@miner30:~$ cat config/cards.conf
“gpu-engine” : “0,0,0,0,0,0,0”,
“gpu-memclock” : “14,14,14,14,0,0,0,0”,
[16:12:51] <rain> ну и как вывод из всего этого – старый баг присутствует и в 4.12
[16:13:14] <rain> т.е., при рандомных запусках можем получить состояние памяти в 300 МГц, которое не сдвигается без ребута
[16:13:21] <rain> карта не висит, просто 300 МГц и все
[16:13:24] <truminer> странно ваще))
[16:13:30] <truminer> не видел такого
[16:13:32] <rain> думал, хоть на новом ядре уже поправили…
[16:13:39] <truminer> а что за карты
[16:13:42] <truminer> 21мх всего
[16:13:46] <rain> 580 Сапфиры
[16:13:53] <truminer> мало жеж
[16:13:57] <rain> без мода
[16:13:59] <truminer> а
[16:14:01] <rain> тут еще одна хрень
[16:14:16] <rain> утром дернулось питание, на ВСЕХ картах слетел BIOS
[16:14:17] <moaddip> че далйте?
[16:14:26] <rain> побитово идентичен на всех картах
[16:14:32] <rain> но машина с ним теперь виснет
[16:14:37] <rain> что линукс, что винда
[16:14:43] <rain> собственно, поэтому машинку ко мне и привезли
[16:14:57] <truminer> слетел биос из-за питания???
[16:15:02] <truminer> чет гон
[16:15:06] <moaddip> импосиблен
[16:15:09] <truminer> во время прошива чтоли
[16:15:10] <truminer> ?
[16:15:12] <rain> нет
[16:15:15] <rain> просто при работе
[16:15:22] <rain> дернули питание – 4 карты начало вешаться
[16:15:32] <rain> я сам хз, как это, но факт есть
[16:15:37] <truminer> очень странно
[16:15:43] <rain> BIOS’ы родные и правленные сдампил
[16:15:55] <rain> rain@miner30:~/bios$ md5sum *
18e9c608dc626b239b19b17441071570  m30-0.mod
e784b188689c846a1b0e67a8fbfb9cc4  m30-0.or
18e9c608dc626b239b19b17441071570  m30-1.mod
e784b188689c846a1b0e67a8fbfb9cc4  m30-1.or
18e9c608dc626b239b19b17441071570  m30-2.mod
e784b188689c846a1b0e67a8fbfb9cc4  m30-2.or
18e9c608dc626b239b19b17441071570  m30-3.mod
e784b188689c846a1b0e67a8fbfb9cc4  m30-3.or
[16:16:22] <rain> зашил уже на место “бажных” родные. Работает. Т.е., это не вылет микросхемы или что-то такое.
[16:16:25] <rain> Чисто прошивка
[16:16:41] <rain> карты тестировал поотдельности в другой машине
[16:16:46] <rain> баг повторяется
[16:17:09] <rain> на винде это выглядит как черный экран и ребут при попытке запуска, например, майнинга
[16:17:21] <truminer> повторяется всмысле “слетает” чтоли?
[16:17:32] <truminer> или что виснет
[16:17:41] <truminer> даже с родными?
[16:17:45] <rain> на линуксе машина даже не выходит в сеть. Просто вешается на моменте modprobe amdgpu
[16:18:02] <rain> та нет. Пишу ж – на биос-моде, на котором оно отпахало уже несколько недель и вылетело сегодня
[16:18:33] <rain> переключил на родной, сдампил, переключил на мод, зашил родной. Теперь оба положения переключателя рабочие
[16:19:27] <truminer> странно)) на всех четырех главное)
[16:19:30] <rain> угу
[16:19:34] <rain> ну и md5 сам видишь
[16:19:38] <truminer> ага
[16:19:53] <truminer> можно было подумать что биос побился) а тут их 4 одинаковых
[16:20:06] <rain> вот и я о том
[16:20:39] <rain> а утилитка странно пашет
[16:21:28] <rain> поставил штатными средствами разгон 14 – частота 1995. Старый драйвер. Скорость выросла. Дергаю утилитку – пишет, что повышает с 1750 до 2000
[16:21:37] <rain> откуда она берет 1750?
[16:21:54] <rain> на бажном драйвере утилитка ничего не меняет
[16:22:14] <truminer> не знаю я штатное не сильно ковырял потому что мне сразу не понравилось
[16:22:53] <truminer> и да короче если этой тулзой ты будешь несколько раз сеттить
[16:22:58] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i  1 –mem-state 2 –mem-clock 1990 –set-tdp 1000 –set-max-power 1000 –set-max-mem-clock 9999
Memory state 2 clock: 1750 -> 1990.
[16:23:02] <truminer> то получается каша в pp_table
[16:23:11] <rain> гм
[16:23:16] <rain> подробнее
[16:23:21] <rain> несколько раз для карты?
[16:23:25] <rain> или как?
[16:23:27] <truminer> да
[16:23:48] <truminer> иногда такое замечал
[16:24:06] <rain> т.е., наверное, и штатные не стоит вызывать перед ней
[16:24:24] <truminer> а зачем ? я их вообще не трогаю
[16:24:41] <rain> ну, лучше было бы ими, чем сторонним чем-то
[16:24:57] <truminer> и как ты там поставишь точное число?
[16:25:04] <truminer> или оффсет
[16:25:04] <rain> никак
[16:25:06] <truminer> пока никак
[16:25:08] <truminer> вот да
[16:25:25] <rain> а по багу – похоже, остается или попробовать 4.11, или ждать 4.13-rc
[16:25:43] <rain> ок, вот сейчас пробую с нулевым разгоном штатными. Гружу 4.12
[16:25:50] avirdoz вышел(а) из комнаты
[16:25:57] <rain> есть пример строки, которой ты память поднимаешь?
[16:26:09] <rain> или сойдет моя?
[16:26:13] <truminer> сек
[16:26:27] <rain> GPU 0: [|||       ] 46C  | FAN: [|         ] 15%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
[16:26:29] <rain> загрузился
[16:26:36] <rain> это стоковые частоты
[16:26:45] <rain> ETH: GPU0 21.769 Mh/s, GPU1 21.759 Mh/s, GPU2 21.774 Mh/s, GPU3 21.721 Mh/s
[16:26:47] <rain> скорости на них
[16:27:19] <truminer> ./wolfamdctrl -i 0 –core-state 4 –mem-state 1 –core-clock 1144 –mem-clock 2170 –core-vddc-idx 4 –mem-vddc-idx 1 –core-vddc-off -96 –vddc-gfx-off -96
[16:27:51] <rain> м, секунду
[16:27:53] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i 2 –mem-state 2 –mem-clock 1990
Memory state 2 clock: 1750 -> 1990.
[16:27:56] <rain> выполнил это
[16:28:19] <rain> GPU1 стала 300/1750, GPU2 стала нормальной – 1411/1990
[16:28:34] <rain> висят GPU1 и GPU2
[16:29:05] <rain> –core-vddc-idx 4 –mem-vddc-idx 1 –core-vddc-off -96 –vddc-gfx-off -96 – это можно убрать пока, я не буду править напряжения
[16:29:10] <rain> остается ядро и память
[16:29:15] <truminer> ну да
[16:29:21] <rain> ок, ядро тоже не трогаем
[16:29:28] <truminer> а мемстейт 2 разве есть?
[16:29:36] <rain> на этих – да
[16:30:00] <rain> тоже не ожидал
[16:30:03] <rain> ща
[16:30:09] <rain> оно не ребутнулось, дернул питание
[16:30:37] <truminer> тулза четко работает вроде пока ничего такого не замечал, кроме каши в pp_table))
[16:30:42] <truminer> можно делать так
[16:31:03] <truminer> при будет копировать исходный пптэйбл
[16:31:05] <truminer> в темп
[16:31:06] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i 0 –show-mem
Memory state 0:
VDDC: 750
VDDCI: 800
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 300
Memory state 1:
VDDC: 65282
VDDCI: 850
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 1000
Memory state 2:
VDDC: 65283
VDDCI: 950
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 1750
[16:31:27] <rain> т.е., как бы логика подсказывает трогать state 2
[16:31:38] <truminer> ага
[16:31:46] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i 0 –mem-state 2 –mem-clock 1900
Memory state 2 clock: 1750 -> 1900.
[16:31:57] <rain>                     =========== amdgpu stat ===========
GPU 0: [||||||    ] 59C  | FAN: [|         ] 15%  | 1411/1900 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 1: [||||||    ] 62C  | FAN: [|         ] 15%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 2: [||||||    ] 61C  | FAN: [|         ] 15%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 3: [||||||    ] 60C  | FAN: [|         ] 15%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
[16:32:08] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i 0 –show-mem
Memory state 0:
VDDC: 750
VDDCI: 800
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 300
Memory state 1:
VDDC: 65282
VDDCI: 850
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 1000
Memory state 2:
VDDC: 65283
VDDCI: 950
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 1900
[16:32:14] <rain> как бы все ок
[16:32:24] <rain> О!
[16:32:25] <truminer> ну так да у меня вообще четко все робит
[16:32:26] <rain> Скорость
[16:32:36] <rain> ETH: GPU0 23.379 Mh/s, GPU1 21.801 Mh/s, GPU2 21.789 Mh/s, GPU3 21.772 Mh/s
[16:32:38] <rain> гм
[16:32:49] <rain> т.е., оно таки что-то умеет
[16:33:01] <truminer> всмысле???))
[16:33:07] <truminer> я только ей и пользуюсь
[16:33:10] <truminer> ))
[16:33:12] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i 1 –mem-state 2 –mem-clock 1900
Memory state 2 clock: 1750 -> 1900.
rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i 2 –mem-state 2 –mem-clock 1900
Memory state 2 clock: 1750 -> 1900.
rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i 3 –mem-state 2 –mem-clock 1900
Memory state 2 clock: 1750 -> 1900.
[16:33:25] <rain>                     =========== amdgpu stat ===========
GPU 0: [|||||     ] 53C  | FAN: [||        ] 21%  | 303/300   | VRAM: [|||||     ] 53%  | Load: [          ] 0%   | 1da2/Ellesmere [Radeon RX 470/480]
GPU 1: [||||||    ] 60C  | FAN: [|         ] 18%  | 300/1900  | VRAM: [|||||     ] 53%  | Load: [          ] 0%   | 1da2/Ellesmere [Radeon RX 470/480]
GPU 2: [|||||     ] 54C  | FAN: [||        ] 26%  | 300/300   | VRAM: [|||||     ] 53%  | Load: [          ] 0%   | 1da2/Ellesmere [Radeon RX 470/480]
GPU 3: [||||||||  ] 71C  | FAN: [||        ] 21%  | 1411/1900 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
[16:33:43] <rain> ETH: GPU0 0.000 Mh/s, GPU1 0.000 Mh/s, GPU2 4.200 Mh/s, GPU3 23.430 Mh/s
[16:33:45] <rain> висим
[16:33:53] <truminer> ну значит задрал
[16:34:08] <rain> в том числе GPU0, который нормально это прожевал вначале
[16:34:12] <truminer> хотя 1900
[16:34:19] <rain> они на 2k пашут все
[16:34:21] <truminer> должно ехать
[16:34:43] <rain> ок, пусть будет 1750 -> 1755
[16:34:45] <truminer> некоторые даже на 2200 )
[16:34:46] <rain> ща
[16:35:37] <truminer> попробуй –mem-vddc-idx 1 добавить
[16:35:37] <rain> andron15: он точно не воспринял заказ пиццы за шутку? Я жрать хочу =\
[16:35:45] <rain> 1?
[16:35:47] <rain> не 2?
[16:35:47] <truminer> да
[16:35:56] <rain> она ж повешается
[16:36:38] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i  2 –mem-state 2 –mem-clock 1755
Memory state 2 clock: 1750 -> 1755.
rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i  1 –mem-state 2 –mem-clock 1755
Memory state 2 clock: 1750 -> 1755.
rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i  0 –mem-state 2 –mem-clock 1755
Memory state 2 clock: 1750 -> 1755.
[16:36:51] <rain>                     =========== amdgpu stat ===========
GPU 0: [||||      ] 50C  | FAN: [|         ] 15%  | 300/300   | VRAM: [|||||     ] 53%  | Load: [          ] 0%   | 1da2/Ellesmere [Radeon RX 470/480]
GPU 1: [|||||||   ] 66C  | FAN: [|         ] 15%  | 1411/1755 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 2: [||||||    ] 63C  | FAN: [|         ] 15%  | 1411/1755 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 3: [|||||     ] 56C  | FAN: [|         ] 15%  | 300/1750  | VRAM: [|||||     ] 53%  | Load: [          ] 0%   | 1da2/Ellesmere [Radeon RX 470/480]
[16:36:59] <rain> ETH: GPU0 0.000 Mh/s, GPU1 21.239 Mh/s, GPU2 21.272 Mh/s, GPU3 0.000 Mh/s
[16:37:02] <rain> висим
[16:37:12] <rain> GPU3 вообще не трогал
[16:37:20] <truminer> странно
[16:38:05] <truminer> а что у тебя в /sys/class/drm/card0/device/power_dpm_force_performance_level
[16:38:14] <rain> ща, оно в ребут ушло
[16:38:26] <truminer> я забыл сказать
[16:38:27] <truminer> ща сек
[16:38:29] <truminer> кину
[16:38:39] <truminer> ну это наверное на висение не повлияет
[16:39:02] <rain> auto
[16:39:21] <truminer> т.е. надо делать что-то типа
[16:39:29] <truminer> >>
[16:39:31] <truminer> /home/miner/utils/wolfamdctrl -i 0 –core-state 4 –mem-state 1 –core-clock 1144 –mem-clock 2170 –core-vddc-idx 4 –mem-vddc-idx 1 –core-vddc-off -96 –vddc-gfx-off -96
sleep 2
echo manual > /sys/class/drm/card0/device/power_dpm_force_performance_level
sleep 1
echo 4 > /sys/class/drm/card0/device/pp_dpm_sclk
sleep 1
echo 1 > /sys/class/drm/card0/device/pp_dpm_mclk
[16:39:48] <rain> мануал нужен, если ты снижаешь частоту
[16:39:55] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i  0 –mem-state 2 –mem-clock 1900
Memory state 2 clock: 1750 -> 1900.
rain@miner30:~$ cat /sys/class/drm/card0/device/power_dpm_force_performance_level
auto
[16:40:07] <rain> а, повисло
[16:40:11] <rain> сначала показалось, что ок
[16:41:31] <truminer> кто сказал если снижаешь?
[16:42:08] <rain> я 😀
[16:42:21] <truminer> лучше мануал туда поставить в любом случае)
[16:42:29] <truminer> чтобы оно без твоего ведома ничего не меняло
[16:43:21] <rain> я просто когда писал скрипт, методом тыка определил, что мануал нужен, если снижаешь частоты
[16:43:24] <moaddip> спред
[16:43:27] <rain> иначе не меняется
[16:43:36] <rain> в смысле, вниз по профилям не идет
[16:44:48] <rain> а, стоп
[16:44:50] <rain> не так
[16:45:11] <rain> manual только на снижение. При попытке любого изменения 7 профиля – оно само становится в auto
[16:47:33] <truminer> rain: ну у меня как выше: перезапись, мануал, и выставляет исправленные профили) не помню почему так сделал
[16:47:40] <truminer> наверное это оверкил даже
[16:52:48] <truminer> rain: а я тя как версия пакета кста
[16:53:02] <rain> ща, я ем
[17:01:57] <truminer> приятного)
[17:02:49] <rain> спасибо
[17:04:25] <rain> 1 карта зашло, ставлю вторую – повис риг
[17:04:28] <rain> везде мануал
[17:05:47] <rain> root@miner30:/home/rain# for i in  /sys/class/drm/card?/device/power_dpm_force_performance_level  ; do echo manual > $i ; done
root@miner30:/home/rain# cat /sys/class/drm/card?/device/power_dpm_force_performance_level
manual
manual
manual
manual
[17:07:43] <rain> rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i  1 –mem-state 2 –mem-clock 1900
Memory state 2 clock: 1750 -> 1900.
[17:07:51] <rain>                     =========== amdgpu stat ===========
GPU 0: [||||||    ] 63C  | FAN: [||||||    ] 59%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 1: [||||      ] 50C  | FAN: [|||||     ] 54%  | 300/1900  | VRAM: [|||||     ] 53%  | Load: [          ] 0%   | 1da2/Ellesmere [Radeon RX 470/480]
GPU 2: [|||||||   ] 66C  | FAN: [|||       ] 31%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 3: [||||||    ] 63C  | FAN: [||||||    ] 59%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
[17:07:55] <rain> висим
[17:08:06] <truminer> блин странно
[17:08:35] <truminer> это те четыре видика?
[17:08:41] <rain> да, это все тот же риг
[17:08:50] <rain> на стоковых BIOS’ах
[17:09:01] <truminer> может как-то связанно с той магией
[17:09:18] <truminer> поэтому и на модах виснет
[17:09:40] <rain> какой?
[17:09:42] <rain> Там нет модов
[17:09:46] <rain> я ж говорю, зашил сток везде
[17:10:05] <rain> rain@miner30:~$ for i in /sys/class/drm/card?/device/power_dpm_force_performance_level ; do echo manual | sudo tee $i ; done
manual
manual
manual
manual
rain@miner30:~$ sudo /home/rain/bin/wolfamdctrl -i  2 –mem-state 2 –mem-clock 1900
Memory state 2 clock: 1750 -> 1900.
[17:10:07] <rain> аналогично
[17:10:17] <rain>                     =========== amdgpu stat ===========
GPU 0: [|||||||   ] 65C  | FAN: [|         ] 15%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 1: [|||||||   ] 64C  | FAN: [|         ] 15%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
GPU 2: [||||      ] 49C  | FAN: [|         ] 15%  | 300/1900  | VRAM: [|||||     ] 53%  | Load: [          ] 0%   | 1da2/Ellesmere [Radeon RX 470/480]
GPU 3: [|||||||   ] 66C  | FAN: [|         ] 15%  | 1411/1750 | VRAM: [|||||     ] 53%  | Load: [||||||||||] 100% | 1da2/Ellesmere [Radeon RX 470/480]
[17:10:24] <rain> все, пока хватит экспериментов
[17:10:31] <rain> надо отдавать машину
[17:10:57] <truminer> я понял, я имею ввиду что после той магии с питанием после которой начало на модах виснуть
[17:11:05] <truminer> какие там были частоты в моде?
[17:15:26] <rain> там частоты не менялись. В винде оно гналось сторонней утилитой
[17:15:44] <truminer> хм
[17:17:30] <truminer> это как-то связанно видимо, потому что 1900 они должны легко держать

 

Резюме вышенаписанного:

  1. Linux 4.12 не устранил проблему установки частот для памяти – карты все так же могут переходить в 300 МГц по памяти до перезагрузки
  2. В Linux 4.12 (либо в фирмварях, но 4.12 отказался работать с дистровыми фирмварями, пришлось тянуть с гита) сломали разгон памяти совсем. На 4.10-rc разгон работал. Остается попробовать 4.11.
  3. wolfamdctl работает как-то странно (возможно, бага в драйвере и кривая работа утилиты – лишь следствие этого) и вешает карты при попытке установки частот.
  4. Оптимальным вариантом на сейчас остается прошивка нужных частот напрямую в карту и нулевой разгон штатными средствами.

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

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