Вступ

Залізо AMD BC-250

Плата, її APU, характеристики та відомі апаратні вади.

AMD BC-250 — це компактна плата на напівспеціалізованому APU з кодовими назвами Oberon для процесора та Cyan Skillfish для графіки — з тієї самої родини кремнію, що й консолі AMD поточного покоління. Її виробляли для систем видобутку криптовалют (зазвичай по кілька плат в одному корпусі), а сьогодні вона трапляється на вторинному ринку за низькими цінами.

Основні характеристики

Складова Подробиці
Процесор 8 ядер / 16 потоків Zen 2 (плата показує 6; SkillFishOS розблоковує решту два через SMU) («Oberon»), до 3,9 ГГц у розгоні, 4,0 ГГц перевірено
Графіка RDNA 2 «Cyan Skillfish» (gfx1013), до 40 обчислювальних блоків, які можна розблокувати
Пам’ять 16 ГБ GDDR6, спільні (UMA) для процесора й графіки
Обчислення ~11,3 TFLOPS FP32 за 40 CU / 2000 МГц (виміряно vkpeak)
Пропускна здатність пам’яті ~350–367 ГБ/с (виміряно clpeak)
Вихід зображення 1× DisplayPort

Пам’ять спільна: GDDR6 ділиться між системою та графікою. Типово близько 8 ГБ призначено як VRAM, але під Linux графічний простір можна розширити через GTT (Graphics Translation Table), і тоді Vulkan бачить ~13 ГіБ пам’яті — це особливо стає в пригоді для моделей ШІ.

Розблокування 8 ядер процесора

Плата подає себе як 6 ядер / 12 потоків, але фізичних ядер вісім: два відсутні не несправні, їх вимкнено конфігурацією виробу. Це видає маска наявності ядер — практично на кожній платі з неї читається 0x77, симетричне значення: по чотири ядра на комплекс, і в обох четверте вимкнене. Справжнє відбраковування на виробництві лишило б несиметричний малюнок, бо дефекти не розподіляються так рівно.

SkillFishOS переписує цю маску через SMU під час запуску, і плата повертається як 8 ядер / 16 потоків. Без зміненого BIOS, без паяння. Те саме розблокування можна зробити й до завантаження, програмою EFI, за одне перезавантаження замість зайвого, яке вимагає системна служба.

У службу вбудовано два запобіжники: якщо маска не дорівнює 0x77, вона не чіпає нічого, бо інший малюнок може означати, що ядра справді вимкнули на заводі; а тепле перезавантаження стається лише після того, як запис перечитано й підтверджено, тож воно не може запустити нескінченний цикл перезавантажень.

Виміряно на нашій власній платі: +20% на багатопотокових навантаженнях. На слабко розпаралелених задачах не змінює нічого, чого й слід очікувати — два додаткові ядра не змусять один потік бігти швидше.

Зворотну інженерію зробив bc250-core-unlock (rw-r-r-0644): без тієї роботи цієї можливості не було б.

Розблокування 40 обчислювальних блоків

Графіка має 40 блоків, але драйвер типово вмикає лише 24. SkillFishOS піднімає їх до 40 наживо (без перезавантаження): система стартує на базовому значенні драйвера, а служба доводить його до 40 під час запуску, і це можна змінити в Tuner. Зворотну інженерію розблокування задокументовано в bc250-40cu-unlock; керування під час роботи через umr натхнене проєктом bc250-cu-live-manager (написано наново, без запозичення коду).

З усіма 40 увімкненими блоками SkillFishOS вимірює 11385 GFLOPS FP32 (vkpeak) на холодну, проти ~6141 для базової конфігурації на 24 CU: близько +85%.

Апаратні вади, про які варто знати

BC-250 — це залізо для видобутку, пристосоване до іншого: воно має кілька обмежень, які SkillFishOS обходить програмно. Знання про них пояснює багато рішень у цій системі.

Зламане виявлення під’єднання (HPD) у DisplayPort

Виявлення під’єднання монітора до роз’єму DisplayPort не працює: плата не «бачить», що ви під’єднали екран. SkillFishOS розв’язує це окремою службою (skillfish-dp-hotswap), яка примусово виявляє монітор під час запуску і стежить за змінами монітора під час роботи, а також параметром ядра video=DP-1:e як запасним варіантом. Див. Стільниця й Усунення несправностей.

Зламане присипляння ACPI

Присипляння (s2idle зламане): плата засинає, але не прокидається й потребує перезавантаження. Приспану машину також неможливо дістати віддалено. Саме тому SkillFishOS назавжди вимикає всі стани сну (див. Стільниця). Це обов’язковий захід.

IOMMU непридатний

IOMMU на BC-250 нестабільний: його не можна вмикати ніколи. Система завжди стартує без IOMMU.

Датчики температури

Доступний лише датчик температури краю графіки; датчика температури VRAM немає. Заводське охолодження на межі, тож порівняння тестів, зроблених один за одним, недостовірні (ефект heat-soak): дайте платі охолонути кілька хвилин між заходами.

Охолодження, корпуси для друку на 3D і вентилятори

BC-250 приходить голою, спроєктованою під стелажі для видобутку з п’ятьма 80-міліметровими вентиляторами screamer, що живляться з роз’єму розподілу живлення. Для роботи на столі потрібне власне охолодження. Охолоджувати треба дві речі: радіатор APU і мікросхеми GDDR6, які дуже гріються й не мають датчика температури (див. GPU і розгін).

Що працює (поради спільноти):

  • 2× вентилятори 120 мм із високим статичним тиском, спрямовані на радіатор, — найпоширеніший настільний варіант; без корпусу їх можна покласти просто на радіатор (стяжками крізь ребра).
  • Окремий вентилятор на VRAM наполегливо радимо, якщо ви розганяєте: мікросхеми GDDR6 — найгарячіше місце.
  • Вентилятор під’єднують до 4-контактного роз’єму PWM на платі — SkillFishOS керує ним через nct6686 (датчики) й тримає його в режимі auto.

Корпуси й повітроводи (безкоштовні STL для друку на 3D):

Модель Автор Примітки
Console Style Case Arthrimus «Консольний» корпус + відсік для блока живлення, кожух на 1× 120 мм
ASRock BC-250 Shell Case onemorecap Оболонка на засувках, швидке кріплення одного вентилятора
Yet Another BC-250 Fan Shroud ViRazY Впуск 140 мм + випуск 120 мм
Case ATX PSU & Fan Duct ZMASLO Під звичайний блок живлення ATX, повітровід, що не пошкодить охолоджувача
Standard ATX PSU case CatSiewDai Повний корпус під блоки живлення ATX
OC vRAM Fan Kit (ремікс) marccyberwiz Набір вентилятора спеціально для VRAM під розгін
NexGen3D — DIY Steam Machine (Bazzite) NexGen3D Повний корпус у стилі Steam Machine під BC-250
NexGen3D — Steam Machine PRO (рідинне охолодження) NexGen3D Версія PRO з рідинним охолодженням (AIO) — максимальне охолодження
NexGen3D — AIO mount for BC-250 NexGen3D Кронштейн, щоб установити AIO (рідинне охолодження) на BC-250

Довідковий посібник з охолодження: Cooling Solutions — amd-bc250-docs.

Джерела