Commit Graph

4 Commits

Author SHA1 Message Date
root
215503a6d4 Fix compute verifier FP tolerance and add health tooling
- FP tolerance: iters/3 + 2 ULP (23 for default 64 iters) to account for
  CPU vs GPU FMA rounding accumulation in chained operations. Integer
  comparison remains exact.
- Verified: 100M checks, zero errors on both boards at 40 CU.
- Added cu_map.sh health overlay, CU health test, selective masking tool.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-18 21:41:22 +00:00
root
cdfeb5171b Add per-CU health test, selective masking, and compute verifier
New tools for boards with scattered harvest patterns where unlocked
CUs may be defective:

- bc250-compute-verify.sh: Heavy Vulkan correctness test (FP32 FMA,
  integer, bitwise, LDS) with per-element golden comparison
- bc250-cu-health-test.sh: Reboot-resuming 20-WGP isolation test using
  amdgpu.disable_cu. Results to /var/lib/bc250-cu-health-test/results.tsv
- bc250-cu-mask.sh: Generates selective disable_cu= config from failed
  WGPs — enables e.g. 38 of 40 CUs with bad ones masked
- cu_map.sh: Updated with --health overlay showing stock + healthy/failed

Usage:
  sudo ./scripts/bc250-cu-health-test.sh start   # full 20-WGP test
  ./scripts/bc250-cu-mask.sh --results results.tsv  # generate mask
  ./scripts/cu_map.sh --health results.tsv          # visual overlay

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-18 21:29:05 +00:00
root
956cee126c Add reproducible A/B/A benchmark script
Runs llama-bench pp512 at 24 CU, 40 CU, then 24 CU again with cooldown
between each state. Uses UMR to toggle SPI_PG_ENABLE_STATIC_WGP_MASK.
Auto-detects model, bench binary, and UMR paths.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-18 20:57:30 +00:00
root
f8fcde6129 BC-250 40 CU unlock: kernel patch, build script, and documentation
Re-enable all 40 CUs on the AMD BC-250 (gfx1013 / Cyan Skillfish) via
two register writes during amdgpu driver init:

- CC_GC_SHADER_ARRAY_CONFIG: clears harvest enumeration mask
- SPI_PG_ENABLE_STATIC_WGP_MASK: enables hardware wave dispatch to all WGPs

Both required — neither alone is sufficient. Verified 1.61x compute
scaling at 1500MHz (pp512: 230 → 372 tok/s) via controlled A/B/A testing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-18 20:29:56 +00:00