Введение

Железо 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.

Источники