Introdução

O hardware AMD BC-250

A placa, a APU, as especificações e os defeitos conhecidos.

A AMD BC-250 é uma placa compacta baseada numa APU semipersonalizada de codinome Oberon para a CPU e Cyan Skillfish para os gráficos: a mesma família de silício dos consoles da geração atual da AMD. Ela foi feita para sistemas de mineração (normalmente com várias placas por gabinete) e hoje aparece no mercado de segunda mão por preços baixos.

Especificações principais

Componente Detalhe
CPU 8 núcleos / 16 threads Zen 2 (a placa mostra 6; o SkillFishOS destrava os outros dois pelo SMU) (“Oberon”), até 3,9 GHz (turbo), 4,0 GHz validados
GPU RDNA 2 “Cyan Skillfish” (gfx1013), até 40 unidades de computação destraváveis
Memória 16 GB GDDR6 compartilhada (UMA) entre CPU e GPU
Computação ~11,3 TFLOPS FP32 com 40 CU / 2000 MHz (medido com o vkpeak)
Banda de memória ~350–367 GB/s (medido com o clpeak)
Saída de vídeo 1× DisplayPort

A memória é unificada: a GDDR6 é dividida entre o sistema e os gráficos. De fábrica cerca de 8 GB ficam como VRAM, mas no Linux o espaço de vídeo pode ser ampliado pelo GTT (Graphics Translation Table), fazendo o Vulkan enxergar uns 13 GiB — especialmente útil para os modelos de IA.

Destravamento dos 8 núcleos da CPU

A placa se apresenta como 6 núcleos / 12 threads, mas os núcleos físicos são oito: os dois que faltam não estão com defeito, estão desligados por configuração do produto. Quem entrega isso é a máscara de presença dos núcleos — em praticamente todas as placas ela vale 0x77, um valor simétrico: quatro núcleos por complexo, com o quarto desativado nos dois. Um descarte real de fabricação deixaria um padrão assimétrico, porque defeitos não se distribuem com tanta arrumação.

O SkillFishOS reescreve essa máscara pelo SMU no boot e a placa volta como 8 núcleos / 16 threads. Sem BIOS modificada e sem ferro de solda.

O serviço traz duas salvaguardas: se a máscara não for 0x77, ele não mexe em nada, porque um padrão diferente pode significar que os núcleos foram mesmo desativados de fábrica; e o reinício a quente só acontece depois de a escrita ter sido relida e confirmada, então não há como entrar num laço de reinícios.

Medido na nossa própria placa: +20% em trabalho multithread. Em cargas de poucas threads não muda nada, como era de esperar: dois núcleos a mais não fazem uma thread correr mais rápido.

A engenharia reversa é a bc250-core-unlock (rw-r-r-0644): sem esse trabalho o recurso não existiria.

Destravamento das 40 CU

A GPU tem 40 CU, mas o driver ativa só 24 por padrão. O SkillFishOS leva a 40 em tempo real (sem reiniciar): dá boot com o mínimo do driver e um serviço sobe para 40 na inicialização, ajustável pelo Tuner. A engenharia reversa do destravamento está documentada no bc250-40cu-unlock; o controle em tempo real via umr é inspirado no bc250-cu-live-manager (reescrito do zero).

Com as 40 CU ativas, o SkillFishOS mede 11385 GFLOPS FP32 (vkpeak) a frio, contra cerca de 6141 de uma configuração base de 24 CU: aproximadamente +85%.

Defeitos do hardware que vale conhecer

A BC-250 é hardware de “mineração” reaproveitado: tem limitações que o SkillFishOS contorna por software. Conhecê-las explica muitas escolhas do sistema.

Hot-Plug Detect (HPD) do DisplayPort defeituoso

A detecção do monitor no conector DisplayPort não funciona: a placa não “vê” quando você liga uma tela. O SkillFishOS resolve com um serviço próprio (skillfish-dp-hotswap) que força a detecção no boot e fica de olho nas trocas de monitor durante o uso, mais o parâmetro de kernel video=DP-1:e como reserva. Veja Área de trabalho e Solução de problemas.

Suspensão ACPI quebrada

A suspensão (o s2idle está quebrado): a placa dorme mas não acorda e precisa de um reset. Além disso, uma máquina suspensa fica inalcançável à distância. Por isso o SkillFishOS desativa em definitivo todos os estados de sono (veja Área de trabalho). É uma medida obrigatória.

IOMMU inutilizável

A IOMMU da BC-250 é instável: nunca deve ser ativada. O sistema sempre dá boot sem IOMMU.

Sensores térmicos

Só está disponível o sensor de temperatura da borda da GPU; não existe sensor de temperatura da VRAM. A refrigeração de fábrica é justa, então comparar testes rodados um atrás do outro não vale (efeito de calor acumulado): deixe a placa esfriar alguns minutos entre as passadas.

Refrigeração, gabinetes imprimíveis e ventoinhas

A BC-250 chega nua, pensada para prateleiras de mineração com cinco ventoinhas “gritonas” de 80 mm alimentadas pelo conector de distribuição. Para uso em mesa é preciso refrigeração própria. É preciso esfriar duas coisas: o dissipador da APU e os chips de GDDR6, que esquentam muito e não têm sensor de temperatura (veja GPU e overclock).

O que funciona (dicas da comunidade):

  • 2 ventoinhas de 120 mm de pressão estática apontadas para o dissipador é o arranjo de mesa mais comum; sem gabinete dá para apoiá-las direto sobre o dissipador (com abraçadeiras pelas aletas).
  • Uma ventoinha dedicada à VRAM é muito recomendada se você faz overclock: os módulos GDDR6 são o ponto mais quente.
  • A ventoinha se liga ao conector PWM de 4 pinos da placa — o SkillFishOS a controla pelo nct6686 (sensores) e a deixa em automático.

Gabinetes e dutos (STL gratuitos, para imprimir em 3D):

Modelo Autor Observações
Console Style Case Arthrimus Gabinete “console” com espaço para a fonte, duto para 1× 120 mm
ASRock BC-250 Shell Case onemorecap Casca de encaixe, montagem rápida de uma ventoinha
Yet Another BC-250 Fan Shroud ViRazY Entrada de 140 mm e saída de 120 mm
Case ATX PSU & Fan Duct ZMASLO Usa uma fonte ATX comum, duto que não danifica o dissipador
Standard ATX PSU case CatSiewDai Gabinete completo para fontes ATX
OC vRAM Fan Kit (remix) marccyberwiz Kit de ventoinha dedicada à VRAM para overclock
NexGen3D — DIY Steam Machine (Bazzite) NexGen3D Gabinete completo no estilo Steam Machine para a BC-250
NexGen3D — Steam Machine PRO (refrigeração líquida) NexGen3D Versão PRO com líquida (AIO) — refrigeração máxima
NexGen3D — suporte AIO para a BC-250 NexGen3D Suporte para montar um AIO (refrigeração líquida) na BC-250

Guia de referência sobre refrigeração: Cooling Solutions — amd-bc250-docs.

Fontes