Железо 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 ГБ, но в Linux видеопространство можно расширить через GTT (Graphics Translation Table), и тогда Vulkan видит примерно 13 ГиБ — особенно полезно для моделей ИИ.
Разблокировка 8 ядер процессора
Плата представляется как 6 ядер / 12 потоков, но физических ядер восемь: двух недостающих не хватает не из-за дефекта, а из-за настройки изделия. Выдаёт это маска присутствия ядер — почти на каждой плате она равна 0x77, то есть симметрична: по четыре ядра в комплексе, и в обоих отключено четвёртое. Настоящая отбраковка на производстве оставила бы несимметричную картину, потому что дефекты так аккуратно не распределяются.
SkillFishOS переписывает эту маску через SMU при загрузке, и плата возвращается как 8 ядер / 16 потоков. Ни изменённого BIOS, ни паяльника.
В службу встроены две предосторожности: если маска не 0x77, она не трогает ничего, потому что другая картина может означать, что ядра действительно отключили на заводе; а тёплая перезагрузка происходит только после того, как запись перечитана и подтверждена, так что зациклиться она не может.
Измерено на нашей плате: +20% в многопоточных задачах. На малопоточных нагрузках ничего не меняется, как и следовало ожидать: два лишних ядра не заставят один поток бежать быстрее.
Обратная разработка — bc250-core-unlock (rw-r-r-0644): без этой работы такой возможности бы не было.
Разблокировка 40 CU
У видеоядра 40 CU, но драйвер по умолчанию включает только 24. SkillFishOS доводит их до 40 на ходу (без перезагрузки): загрузка идёт с драйверным минимумом, а служба поднимает до 40 при старте; настраивается в Tuner. Обратная разработка разблокировки описана в bc250-40cu-unlock; управление на ходу через umr вдохновлено bc250-cu-live-manager (переписано с нуля).
С 40 активными CU SkillFishOS измеряет 11385 GFLOPS FP32 (vkpeak) с холода против примерно 6141 у исходной сборки на 24 CU: около +85%.
Изъяны железа, о которых стоит знать
BC-250 — переделанное «майнинговое» железо: у него есть ограничения, которые SkillFishOS обходит программно. Зная о них, легче понять многие решения системы.
Сломанный Hot-Plug Detect (HPD) у DisplayPort
Определение подключённого монитора на разъёме DisplayPort не работает: плата не «видит», что вы подключили экран. SkillFishOS решает это отдельной службой (skillfish-dp-hotswap), которая принудительно опрашивает выход при загрузке и следит за сменой монитора во время работы, плюс параметром ядра video=DP-1:e как запасным вариантом. См. Рабочий стол и Решение проблем.
Сломанный спящий режим ACPI
Спящий режим (s2idle сломан): плата засыпает, но не просыпается, и нужен сброс. К тому же уснувшая машина недоступна издалека. Поэтому SkillFishOS навсегда отключает все состояния сна (см. Рабочий стол). Это обязательная мера.
IOMMU непригоден
IOMMU на BC-250 нестабилен: его нельзя включать никогда. Система всегда загружается без IOMMU.
Тепловые датчики
Доступен только датчик края видеоядра; датчика температуры видеопамяти нет. Штатное охлаждение на пределе, поэтому сравнивать тесты, запущенные подряд, нельзя (эффект прогрева): давайте плате остыть несколько минут между прогонами.
Охлаждение, корпуса для печати и вентиляторы
BC-250 приходит голой, рассчитанной на стойки для добычи с пятью 80-миллиметровыми «крикунами», запитанными от разъёма распределения питания. Для настольного использования нужно своё охлаждение. Охлаждать надо две вещи: радиатор APU и микросхемы GDDR6, которые сильно греются и не имеют датчика температуры (см. GPU и разгон).
Что работает (советы сообщества):
- два вентилятора 120 мм с высоким статическим давлением, направленные на радиатор, — самая частая настольная связка; без корпуса их можно просто положить сверху на радиатор (стяжками через рёбра).
- отдельный вентилятор на видеопамять настоятельно рекомендуется при разгоне: модули GDDR6 — самое горячее место.
- Вентилятор подключается к четырёхконтактному разъёму PWM на плате — SkillFishOS управляет им через
nct6686(датчики) и держит в режиме авто.
Корпуса и воздуховоды (бесплатные STL для печати):
| Модель | Автор | Примечания |
|---|---|---|
| Console Style Case | Arthrimus | «Консольный» корпус с отсеком под блок питания, кожух под один 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 (remix) | marccyberwiz | Набор вентилятора специально на видеопамять для разгона |
| NexGen3D — DIY Steam Machine (Bazzite) | NexGen3D | Полный корпус в духе Steam Machine под BC-250 |
| NexGen3D — Steam Machine PRO (жидкостное) | NexGen3D | Версия PRO с жидкостным охлаждением (AIO) — предел возможного |
| NexGen3D — крепление AIO для 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
