Skip to content

6.19/misc: BC-250 40 CU unlock (gfx1013 harvest bypass)#159

Open
duggasco wants to merge 3 commits into
CachyOS:masterfrom
duggasco:bc250-40cu-unlock
Open

6.19/misc: BC-250 40 CU unlock (gfx1013 harvest bypass)#159
duggasco wants to merge 3 commits into
CachyOS:masterfrom
duggasco:bc250-40cu-unlock

Conversation

@duggasco

@duggasco duggasco commented May 18, 2026

Copy link
Copy Markdown

Summary

Add a patch to re-enable all 40 harvested CUs on the AMD BC-250 (gfx1013 / Cyan Skillfish / salvaged PS5 APU).

The BC-250 ships with 24 of 40 RDNA2 CUs active. This patch writes two hardware registers during gfx_v10_0_get_cu_info() to unlock all 40:

  • CC_GC_SHADER_ARRAY_CONFIG — clears the harvest enumeration mask
  • SPI_PG_ENABLE_STATIC_WGP_MASK — enables SPI wave dispatch to all 5 WGPs per shader array

Both are required — neither alone produces compute scaling. Controlled by amdgpu.bc250_cc_write_mode=3 (default off). Guarded by PCI device ID 0x13FE.

Verified Results

4-state A/B test (same board, same model, Vulkan llama-bench pp512):

State pp512 tok/s Power Notes
Stock (CC=0, SPI=0x7) 302 56W Baseline
SPI only 302 140W No throughput gain
CC only 302 55W No throughput gain
Both (CC=3, SPI=0x1F) 466 181W 1.54x

At 1500MHz/900mV sweet spot: 230 → 372 tok/s = 1.61x with 83C peak.

Safety

  • Default off (bc250_cc_write_mode=0)
  • PCI device ID guarded (0x13FE = BC-250 only)
  • No permanent hardware changes — reboot without the parameter returns to stock

Reference

Re-enable all 40 harvested CUs on the AMD BC-250 (gfx1013 / Cyan
Skillfish) via CC_GC_SHADER_ARRAY_CONFIG + SPI_PG_ENABLE_STATIC_WGP_MASK
writes during amdgpu CU enumeration.

Controlled by module parameter amdgpu.bc250_cc_write_mode=3 (default off).
Guarded by PCI device ID 0x13FE (BC-250 only).

Verified 1.61x compute scaling at 1500MHz (pp512: 230 -> 372 tok/s).

Reference: https://github.com/duggasco/bc250-40cu-unlock

Signed-off-by: duggasco <duggasco@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
duggasco and others added 2 commits May 18, 2026 21:27
Uses amdgpu_gfx_parse_disable_cu + mutex_lock as context anchors
instead of absolute line numbers. Applies cleanly across kernel
versions. Added to 6.17 and 6.18 in addition to 6.19.

Signed-off-by: duggasco <duggasco@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fixes "malformed patch" error on CachyOS kernel builds.

Signed-off-by: duggasco <duggasco@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant