Skip to content

Unlock Overview

Lab runbook for taking a stock CMP 170HX to unlocked HBM and usable SM throughput on Linux. Mechanism detail (Falcon, Booter, ROP chain, register tables) lives on the Consensus-Protocol/cmp170hx wiki. This page does not repeat those register tables.

Canonical installer: amoghmunikote/cmpunlocker. Related fork with extra P2P work: bayley/cmpunlocker.

What cmpunlocker changes

Patched nvidia-open kernel modules reconfigure the GPU during GSP boot. Nothing is flashed to VBIOS. On every module load the unlock re-applies.

Capability Result
Memory geometry 8 GB stock (0x20C2) → 64 GB unlocked; 10 GB stock (0x2082) → 40 GB unlocked
SM / FP32 FMA throttle Stock ~0.39–0.41 TFLOPS class FP32 climbs toward ~12–13 TFLOPS unlocked (measure your own card)
PCIe Gen Software path to Gen2 (5.0 GT/s) when the build includes Gen2 patches
BAR1 Stays 64 MB on a normal unlock. Growing it toward 64 GB needs Above 4G plus an early kernel fixup. See Host BIOS.
Persistence Survives reboot as long as the patched modules stay preferred by the module loader

Capacity is per SKU. An 80 GB profile on 10 GB cards was built, tested, and rejected as unstable by community wiki consensus.

PCIe width is a separate problem. Stock trains x4 because twelve of sixteen lanes lack AC coupling caps. Gen2 unlock does not solder those caps. See PCIe capacitor mod.

Driver pin

Community unlock paths in this docs set target nvidia-open 610.43.02 or 610.43.03 (libs + firmware), matching kernel headers, root, and Secure Boot off. Pin or snapshot that driver tree before you patch modules. Routine apt upgrade of nvidia packages is a common way to lose the unlock.

Check the cmpunlocker README for the current supported range before you install. If upstream moves the pin, follow upstream and update this page.

Order of operations

  1. Cool the card (forced air on the passive sink, or a filled water loop). See Air Cooling / Water Cooling.
  2. Confirm stock identity with lspci / nvidia-smi: device 20c2 or 2082, Gen1 x4, 8192 or 10240 MiB.
  3. Host BIOS: Above 4G on, Secure Boot off. Host BIOS.
  4. Install and pin nvidia-open 610.43.02/03 plus matching headers.
  5. Run cmpunlocker (install.sh, with --profile=8gb or --profile=10gb when you need to force geometry).
  6. Cold reboot (full power off, then boot).
  7. Verify MiB and link speed (below).
  8. Only then chase optional hardware: capacitor mod, Water Cooling.

Install sketch

Follow the live README. Typical shape:

git clone https://github.com/amoghmunikote/cmpunlocker.git
cd cmpunlocker
sudo ./install.sh --profile=8gb    # 8 GB card → 64 GB
# sudo ./install.sh --profile=10gb # 10 GB card → 40 GB

Then cold reboot.

Secure Boot and DKMS

Patched modules are unsigned. Secure Boot must stay off. On Ubuntu-class hosts, stock DKMS modules under updates/dkms/ can win over updates/cmpunlocker/. If memory is still 8/10 GB after a "successful" install, run modinfo -n nvidia and fix module priority. See Troubleshooting.

Verify

nvidia-smi
sudo lspci -s <bus:dev.fn> -vvv | grep LnkSta
modinfo -n nvidia

Success looks like:

Check 8 GB SKU 10 GB SKU
nvidia-smi memory 65536 MiB 40960 MiB
Link speed (Gen2 unlock present) 5.0 GT/s 5.0 GT/s
Link width (no capacitor mod) x4 x4
Module path Contains cmpunlocker (or your install's updates path) same

Optional short CUDA/OpenCL FP32 probe should leave the ~0.4 TFLOPS stock FMA class. Keep probes short until cooling is proven.

What we deliberately omit

Falcon privilege masks, Booter PLM sequences, ROP gadget layout, and per-register write tables belong on the Consensus-Protocol wiki. Start at Unlock → How it works / Falcon and the Booter if you need that depth. This page covers what the lab runbook runs and how to verify it.

References