cmpunlocker restores numerous features that are restricted in firmware/OTP configuration of the NVIDIA CMP 170HX. cmpunlocker has been featured by multiple outlets like wccftech, Tom's Hardware and LinusTechTips.
![]() |
![]() |
![]() |
Join our Discord community for support and discussions.
Below are memory and performance results after applying the unlock:
| Memory Unlock Results |
![]() |
| Performance Benchmarks (OpenCL-Benchmark) |
![]() |
- Linux (x86-64)
- Root access
- NVIDIA CMP 170HX
- nvidia-open 610.xx.xx+ already installed (libs + firmware)
- Kernel headers matching the running kernel (
linux-headers-$(uname -r)/kernel-devel) - Secure Boot disabled (patched modules are unsigned)
- Network access on first install (downloads matching stock
open-gpu-kernel-modulessources) - Python 3 (used at build time to select 8GB/10GB geometry)
To install cmpunlocker, run the following command:
sudo ./install.shTo force a certain memory profile, use the --profile option:
sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlockThen perform a reboot.
| Feature | Status |
|---|---|
| Full SM compute throughput (SS0/SS1) | Working ✓ |
| Memory geometry (64GB on 8GB cards, 40GB on 10GB cards) | Working ✓ |
| PCIe Gen 2 speeds | Working ✓ |
| Full BAR1 Size (64GB) | Working ✓ |
| JTAG (Host2Jtag register access) | Working ✓ |
| VFIO-based passthrough | Working ✓ |
| GPU profiling | Working ✓ |
| Persistence across reboot (patched modules) | Working ✓ |
| Full-VRAM stability (unbacked top HBM region excluded) | Working ✓ |
To uninstall cmpunlocker, run the following command:
sudo ./remove.sh --yesThen perform a reboot.
Please read docs/CONTRIBUTING.md before opening a PR.
Having issues? Need help? Join our Discord community to discuss with other users and get support.
This fork keeps memmgrSec2DebugLateExtendHighPmaRegion registering the high reserved region with the PMA, with the unbacked top HBM sliver — the last ~150 MiB with no real memory behind it — clamped off (region limit capped at 62 GiB). Upstream now leaves that whole region reserved because it backs WPR2, which gives up the memory entirely. Registering it without the clamp is what makes filling VRAM to the very top (a large matmul, a full KV cache) crash with Xid 31 ... FAULT_INFO_TYPE_REGION_VIOLATION at a bogus address; with the clamp the bad sliver is dropped, leaving ~63.4 GiB of good, fully usable VRAM, and allocating past it returns a clean out-of-memory error instead of a hard fault. (Clamp originally by tlswotj, verified on 3× CMP 170HX.)





