This repository is a kernel patch and build script for the AMD BC-250, an unusual graphics card that started life as a salvaged PlayStation 5 chip and was repackaged for sale as a standalone compute board. From the factory, only 24 of its 40 compute units, or CUs, are active. The remaining 16 are switched off by firmware policy rather than hardware defects, and this project re-enables them by writing two registers inside the amdgpu Linux driver during initialisation. The README explains that both registers have to change for the unlock to work. One register controls how many CUs the driver reports as available, and the other controls where the dispatch logic actually sends compute work. Changing only one leaves the system inconsistent: the driver might think 40 CUs are available but only dispatch to 24, or vice versa. The patch makes both writes inside a guarded function that only fires when the PCI device ID matches the BC-250 and a module option called bc250_cc_write_mode is set, so it does nothing on other AMD cards. The author reports a measured 1.61 times speedup on a Vulkan large language model inference benchmark, going from 230 to 372 tokens per second at the same 1.5 GHz clock, with power rising from 95 to 125 watts and temperature from 79 to 83 degrees Celsius. Running at 2 GHz pushes performance higher but also pushes temperatures to 96 degrees, so the README recommends capping the card at 1500 MHz and 900 millivolts using a companion project called cyan-skillfish-governor. Installation has three paths: a build script that compiles a patched amdgpu module on any distribution, a manual patch-and-make sequence, or applying the patch into a CachyOS or Arch PKGBUILD. After a reboot, dmesg output should show 40 active CUs and the register writes from old to new values. The setup is reversible: removing the modprobe option and rebooting returns the board to its stock 24 CU configuration with no permanent hardware change. The project also includes a per-WGP health test script that reboots into different masking configurations to find any CUs that turn out to be defective once unlocked, plus a tool that turns those results into a disable_cu modprobe option. There is an 8-page whitepaper and a technical report under docs covering the register map, why an earlier ignore_cu_harvest patch did not work, and the dual-register gating architecture. The license is GPL-2.0, matching the Linux kernel.
Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.