Залізо 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.
Джерела
- bc250.info — вікі спільноти
- elektricm.github.io/amd-bc250-docs — технічна документація (зокрема охолодження)
- mothenjoyer69/bc250-documentation — нотатки про залізо й охолодження
- bc250-40cu-unlock (duggasco) — розблокування обчислювальних блоків
- bc250_memcfg (fanoush) — налаштування пам’яті
- Драйвер ядра Linux
amdgpu— docs.kernel.org/gpu/amdgpu
