Железо

Разблокировка потоковых процессоров у видеокарт AMD Radeon RX460 и 560

Производители видеокарт проводят политику сегментирования выпускаемой продукции по классам производительности. Так как при производстве используются автоматическая сборка, типовые печатные платы и стандартизированные схемотехнические решения ограниченной номенклатуры, иногда модели видеокарт, относящиеся к разным уровням, имеют одинаковую элементную базу. Их производительность ограничивается аппаратным (лазерное выжигание лишних ядер) или программным (отключение ядер/занижение производительности в BIOS/драйверах) способами.

Часто ограничения, сделанные программным способом, могут быть успешно сняты с помощью «обработки напильником» (модификации) BIOS.

В данной статье описывается процесс разблокирования дополнительных вычислительных ядер видеокарт AMD Radeon RX 460/560D (у полноценных видеокарт доступно 16 compute units, а у обрезанных — 14).

Изучить количество вычислительных единиц можно в программе GPU-Z, либо в некоторых майнерах. Например, программа SRBMiner-Multi при инициализации оборудования отображает информацию о памяти и количестве CU:

В приведенном выше примере GPU1 (видеокарта Radeon RX560), подключенная к слоту PCI-E номер 02, имеет 2036 MB VRAM и 14 CU. Полноценные видеокарты с ядром Baffin должны иметь по 16 CU (в данном случае это GPU0 и GPU4).

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

Видеокарта Radeon RX560D с отключенными ядрами (GPU1) обеспечивает намного меньший хешрейт, чем аналогичные «полноприводные» видеокарты (GPU0 и GPU4):

Для устранения безобразия нужно сохранить BIOS проблемной видеокарты (плюс дополнительно сделать резервную копию BIOS для аварийного восстановления в случае неудачной модификации) и отредактировать часть кода, отвечающую за блокировку вычислительных ядер.

В Windows это удобно делать с помощью программ типа AtiFlash/AtiWinFlash, в Linux — программой amdvbflash. Редактирование кода BIOS можно производить в любом HEX-редакторе.

Редактирование кода BIOS видеокарты Radeon RX560D для разблокирования вычислительных ядер

В любом HEX-редакторе открываем сохраненный файл BIOS видеокарты и запускаем поиск значения 6F 22 70 22.

Пример редактирования BIOS видеокарты AMD Radeon RX560 с 2 GB VRAM в редакторе Ghex в xubuntu 18.04:

В открытом для редактирования файле нужно изменить число 6F 22 70 22 до вида 6F 22 6F 22 (заменить значение 70 на 6F) и сохранить полученный файл под другим именем, например, с названием unlocked.rom.

Затем модифицированный файл bios нужно прошить в микросхему флеш-памяти видеокарты. Это делается с помощью программ AtiFlash/AtiWinFlash (amdvbflash) или им подобных.

Перед прошивкой нужно обязательно проверить номер прошиваемого адаптера, иначе можно по ошибке прошить BIOS в другую видеокарту, что гарантированно ее «окирпичит».

Для изучения номеров видеоадаптеров в программе AtiFlash вводят ее название и ключ -i для отображения информации о подключенных видеоадаптерах:

AtiFlash -i

В Linux для программы amdvbflash в терминале вводят команду

sudo ./amdvbflash -i

Программа выдаст информацию о ее версии и таблицу с данными о подключенных видеоадаптерах фирмы AMD:

AMDVBFLASH version 4.69, Copyright (c) 2020 Advanced Micro Devices, Inc.

adapter seg bn dn dID asic flash romsize test bios p/n

======= ==== == == ==== =============== ============== ======= ==== ================

0 0000 01 00 67EF Polaris11 M25P20/c 40000 pass 113-C99401-XXX

1 0000 02 00 67EF Polaris11 M25P20/c 40000 pass 113-234813E-U11

2 0000 03 00 67DF Polaris10 M25P20/c 40000 pass 113-1E3660EU-O55

3 0000 04 00 67DF Polaris10 W25X40 80000 pass -

4 0000 05 00 67EF Polaris11 GD25Q41B 80000 pass -

5 0000 06 00 67DF Polaris10 W25X20 40000 pass 115-D009PI0-100

Для уточнения номера видеоадаптера можно ориентироваться на номеру PCI-E, к которому подключена видеокарта. При этом можно использовать информацию от сторонних программ или майнеров. В данном случае искомая видеокарта подключена ко второму номеру шины PCI-E (столбец bn) — это видеокарта (asic) Polaris11 с микросхемой флеш-памяти M25P20 с серийным номером BIOS 113-234813E-U11.

Прошивка BIOS производится в программе с графическим интерфейсом AtiWinFlash или консольной программой AtiFlash.

Синтаксис команды для прошивки bios:

AtiFlash -p 1 unlocked.rom

где цифра после буквы обозначает номер видеоадаптера.

Если при прошивке возникает ошибка:

Newer ROM version already programmed

ERROR: 0FL01

нужно использовать ключ принудительной прошивки -f.

Пример команды для принудительной прошивки BIOS в linux в программе amdvbflash (для запуска из директории,в которой находится программа и файл BIOS):

sudo ./amdvbflash -f -p 1 unlocked.rom

В процессе прошивки программа выдаст следующую информацию:

AMDVBFLASH version 4.69, Copyright (c) 2020 Advanced Micro Devices, Inc.

Old DeviceID: 67EF

New DeviceID: 0

Old Product Name:

New Product Name:

Old BIOS Version:

New BIOS Version:

Flash type: M25P20/c

Burst size is 256

40000/40000h bytes programmed

40000/40000h bytes verified

Restart System To Complete VBIOS Update.

После этого нужно перезагрузить компьютер. Прошитая разблокированным BIOS-ом видеокарта порадует увеличенной  мощностью благодаря появлению дополнительных вычислительных ядер (GPU1 теперь имеет 16 CU вместо 14):

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

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

English English Русский Русский