Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cmpunlocker

Unlock tool for the NVIDIA CMP 170HX (GA100) mining card. Restores full SM compute throughput and unlocked HBM2e memory geometry that are restricted in firmware/OTP configuration.

Targets nvidia-open driver 610.43.0x on Linux. cmpunlocker does not install the full NVIDIA userspace package — it patches and installs open kernel modules only.

Join our Discord community for support and discussions.


Background

The CMP 170HX is a physically complete GA100 die (same silicon as the A100) with compute and memory artificially limited. This tool applies an in-driver unlock path (SEC2 Booter PLM open + host SS0/SS1/CFG1/LMR writes + FB/PMA adjustments) that runs automatically every time the patched modules boot GSP for PCI ID 0x20C2.

Card size selects the memory geometry:

Physical cardUnlock geometryCFG1LMR
8 GB64 GB0x027790000x0000020B
10 GB40 GB0x026690000x0000028A

Proof of Concept

Below are memory and performance results after applying the unlock:

Memory Unlock Results

memory unlock

Performance Benchmarks (OpenCL-Benchmark)

performance benchmarks

Requirements

  • Linux (x86-64)
  • Root access
  • NVIDIA CMP 170HX
  • nvidia-open 610.43.0x 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-modules sources)
  • Python 3 (used at build time to select 8GB/10GB geometry)

Install

One command. Auto-detects 8GB vs 10GB from stock nvidia-smi memory, then builds patched open kernel modules into /lib/modules/$(uname -r)/updates/cmpunlocker/.

sudo ./install.sh

Force a profile if detection is wrong or nvidia-smi is unavailable:

sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlock

Then perform a cold reboot (full power off, then boot) if modules did not hot-reload cleanly, or if memory still shows the stock size.


Verify

nvidia-smi
# 8GB card: expect ~65536 MiB# 10GB card: expect ~40960 MiB
nvidia-smi --query-gpu=memory.total,clocks.max.sm --format=csv
sudo dmesg | grep SEC2_DEBUG
# Expected: PLMs opening to 0xffffffff, CFG1/LMR/SS0/SS1 writes, late PMA
cat /lib/modules/$(uname -r)/updates/cmpunlocker/card_profile
# 8gb or 10gb

Booter status codes such as 0x31 / 0xffff during the early PLM Booter passes can appear and are often harmless if the final boot succeeds.


What Gets Unlocked

FeatureStatus
Full SM compute throughput (SS0/SS1)Working ✓
Memory geometry (64GB on 8GB cards, 40GB on 10GB cards)Working ✓
Persistence across reboot (patched modules)Working ✓

Uninstall

Restore stock module loading:

sudo ./remove.sh --yes

This removes /lib/modules/*/updates/cmpunlocker/, runs depmod, and attempts to reload stock NVIDIA modules. Reboot if the GPU does not come back cleanly.


Support & Community

Having issues? Need help? Join our Discord community to discuss with other users and get support.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cmpunlocker

Unlock tool for the NVIDIA CMP 170HX (GA100) mining card. Restores full SM compute throughput and unlocked HBM2e memory geometry that are restricted in firmware/OTP configuration.

Targets nvidia-open driver 610.43.0x on Linux. cmpunlocker does not install the full NVIDIA userspace package — it patches and installs open kernel modules only.

Join our Discord community for support and discussions.


Background

The CMP 170HX is a physically complete GA100 die (same silicon as the A100) with compute and memory artificially limited. This tool applies an in-driver unlock path (SEC2 Booter PLM open + host SS0/SS1/CFG1/LMR writes + FB/PMA adjustments) that runs automatically every time the patched modules boot GSP for PCI ID 0x20C2.

Card size selects the memory geometry:

Physical cardUnlock geometryCFG1LMR
8 GB64 GB0x027790000x0000020B
10 GB40 GB0x026690000x0000028A

Proof of Concept

Below are memory and performance results after applying the unlock:

Memory Unlock Results

memory unlock

Performance Benchmarks (OpenCL-Benchmark)

performance benchmarks

Requirements

  • Linux (x86-64)
  • Root access
  • NVIDIA CMP 170HX
  • nvidia-open 610.43.0x 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-modules sources)
  • Python 3 (used at build time to select 8GB/10GB geometry)

Install

One command. Auto-detects 8GB vs 10GB from stock nvidia-smi memory, then builds patched open kernel modules into /lib/modules/$(uname -r)/updates/cmpunlocker/.

sudo ./install.sh

Force a profile if detection is wrong or nvidia-smi is unavailable:

sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlock

Then perform a cold reboot (full power off, then boot) if modules did not hot-reload cleanly, or if memory still shows the stock size.


Verify

nvidia-smi
# 8GB card: expect ~65536 MiB# 10GB card: expect ~40960 MiB
nvidia-smi --query-gpu=memory.total,clocks.max.sm --format=csv
sudo dmesg | grep SEC2_DEBUG
# Expected: PLMs opening to 0xffffffff, CFG1/LMR/SS0/SS1 writes, late PMA
cat /lib/modules/$(uname -r)/updates/cmpunlocker/card_profile
# 8gb or 10gb

Booter status codes such as 0x31 / 0xffff during the early PLM Booter passes can appear and are often harmless if the final boot succeeds.


What Gets Unlocked

FeatureStatus
Full SM compute throughput (SS0/SS1)Working ✓
Memory geometry (64GB on 8GB cards, 40GB on 10GB cards)Working ✓
Persistence across reboot (patched modules)Working ✓

Uninstall

Restore stock module loading:

sudo ./remove.sh --yes

This removes /lib/modules/*/updates/cmpunlocker/, runs depmod, and attempts to reload stock NVIDIA modules. Reboot if the GPU does not come back cleanly.


Support & Community

Having issues? Need help? Join our Discord community to discuss with other users and get support.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cmpunlocker

Unlock tool for the NVIDIA CMP 170HX (GA100) mining card. Restores full SM compute throughput and unlocked HBM2e memory geometry that are restricted in firmware/OTP configuration.

Targets nvidia-open driver 610.43.0x on Linux. cmpunlocker does not install the full NVIDIA userspace package — it patches and installs open kernel modules only.

Join our Discord community for support and discussions.


Background

The CMP 170HX is a physically complete GA100 die (same silicon as the A100) with compute and memory artificially limited. This tool applies an in-driver unlock path (SEC2 Booter PLM open + host SS0/SS1/CFG1/LMR writes + FB/PMA adjustments) that runs automatically every time the patched modules boot GSP for PCI ID 0x20C2.

Card size selects the memory geometry:

Physical cardUnlock geometryCFG1LMR
8 GB64 GB0x027790000x0000020B
10 GB40 GB0x026690000x0000028A

Proof of Concept

Below are memory and performance results after applying the unlock:

Memory Unlock Results

memory unlock

Performance Benchmarks (OpenCL-Benchmark)

performance benchmarks

Requirements

  • Linux (x86-64)
  • Root access
  • NVIDIA CMP 170HX
  • nvidia-open 610.43.0x 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-modules sources)
  • Python 3 (used at build time to select 8GB/10GB geometry)

Install

One command. Auto-detects 8GB vs 10GB from stock nvidia-smi memory, then builds patched open kernel modules into /lib/modules/$(uname -r)/updates/cmpunlocker/.

sudo ./install.sh

Force a profile if detection is wrong or nvidia-smi is unavailable:

sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlock

Then perform a cold reboot (full power off, then boot) if modules did not hot-reload cleanly, or if memory still shows the stock size.


Verify

nvidia-smi
# 8GB card: expect ~65536 MiB# 10GB card: expect ~40960 MiB
nvidia-smi --query-gpu=memory.total,clocks.max.sm --format=csv
sudo dmesg | grep SEC2_DEBUG
# Expected: PLMs opening to 0xffffffff, CFG1/LMR/SS0/SS1 writes, late PMA
cat /lib/modules/$(uname -r)/updates/cmpunlocker/card_profile
# 8gb or 10gb

Booter status codes such as 0x31 / 0xffff during the early PLM Booter passes can appear and are often harmless if the final boot succeeds.


What Gets Unlocked

FeatureStatus
Full SM compute throughput (SS0/SS1)Working ✓
Memory geometry (64GB on 8GB cards, 40GB on 10GB cards)Working ✓
Persistence across reboot (patched modules)Working ✓

Uninstall

Restore stock module loading:

sudo ./remove.sh --yes

This removes /lib/modules/*/updates/cmpunlocker/, runs depmod, and attempts to reload stock NVIDIA modules. Reboot if the GPU does not come back cleanly.


Support & Community

Having issues? Need help? Join our Discord community to discuss with other users and get support.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cmpunlocker

Unlock tool for the NVIDIA CMP 170HX (GA100) mining card. Restores full SM compute throughput and unlocked HBM2e memory geometry that are restricted in firmware/OTP configuration.

Targets nvidia-open driver 610.43.0x on Linux. cmpunlocker does not install the full NVIDIA userspace package — it patches and installs open kernel modules only.

Join our Discord community for support and discussions.


Background

The CMP 170HX is a physically complete GA100 die (same silicon as the A100) with compute and memory artificially limited. This tool applies an in-driver unlock path (SEC2 Booter PLM open + host SS0/SS1/CFG1/LMR writes + FB/PMA adjustments) that runs automatically every time the patched modules boot GSP for PCI ID 0x20C2.

Card size selects the memory geometry:

Physical cardUnlock geometryCFG1LMR
8 GB64 GB0x027790000x0000020B
10 GB40 GB0x026690000x0000028A

Proof of Concept

Below are memory and performance results after applying the unlock:

Memory Unlock Results

memory unlock

Performance Benchmarks (OpenCL-Benchmark)

performance benchmarks

Requirements

  • Linux (x86-64)
  • Root access
  • NVIDIA CMP 170HX
  • nvidia-open 610.43.0x 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-modules sources)
  • Python 3 (used at build time to select 8GB/10GB geometry)

Install

One command. Auto-detects 8GB vs 10GB from stock nvidia-smi memory, then builds patched open kernel modules into /lib/modules/$(uname -r)/updates/cmpunlocker/.

sudo ./install.sh

Force a profile if detection is wrong or nvidia-smi is unavailable:

sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlock

Then perform a cold reboot (full power off, then boot) if modules did not hot-reload cleanly, or if memory still shows the stock size.


Verify

nvidia-smi
# 8GB card: expect ~65536 MiB# 10GB card: expect ~40960 MiB
nvidia-smi --query-gpu=memory.total,clocks.max.sm --format=csv
sudo dmesg | grep SEC2_DEBUG
# Expected: PLMs opening to 0xffffffff, CFG1/LMR/SS0/SS1 writes, late PMA
cat /lib/modules/$(uname -r)/updates/cmpunlocker/card_profile
# 8gb or 10gb

Booter status codes such as 0x31 / 0xffff during the early PLM Booter passes can appear and are often harmless if the final boot succeeds.


What Gets Unlocked

FeatureStatus
Full SM compute throughput (SS0/SS1)Working ✓
Memory geometry (64GB on 8GB cards, 40GB on 10GB cards)Working ✓
Persistence across reboot (patched modules)Working ✓

Uninstall

Restore stock module loading:

sudo ./remove.sh --yes

This removes /lib/modules/*/updates/cmpunlocker/, runs depmod, and attempts to reload stock NVIDIA modules. Reboot if the GPU does not come back cleanly.


Support & Community

Having issues? Need help? Join our Discord community to discuss with other users and get support.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cmpunlocker

Unlock tool for the NVIDIA CMP 170HX (GA100) mining card. Restores full SM compute throughput and unlocked HBM2e memory geometry that are restricted in firmware/OTP configuration.

Targets nvidia-open driver 610.43.0x on Linux. cmpunlocker does not install the full NVIDIA userspace package — it patches and installs open kernel modules only.

Join our Discord community for support and discussions.


Background

The CMP 170HX is a physically complete GA100 die (same silicon as the A100) with compute and memory artificially limited. This tool applies an in-driver unlock path (SEC2 Booter PLM open + host SS0/SS1/CFG1/LMR writes + FB/PMA adjustments) that runs automatically every time the patched modules boot GSP for PCI ID 0x20C2.

Card size selects the memory geometry:

Physical cardUnlock geometryCFG1LMR
8 GB64 GB0x027790000x0000020B
10 GB40 GB0x026690000x0000028A

Proof of Concept

Below are memory and performance results after applying the unlock:

Memory Unlock Results

memory unlock

Performance Benchmarks (OpenCL-Benchmark)

performance benchmarks

Requirements

  • Linux (x86-64)
  • Root access
  • NVIDIA CMP 170HX
  • nvidia-open 610.43.0x 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-modules sources)
  • Python 3 (used at build time to select 8GB/10GB geometry)

Install

One command. Auto-detects 8GB vs 10GB from stock nvidia-smi memory, then builds patched open kernel modules into /lib/modules/$(uname -r)/updates/cmpunlocker/.

sudo ./install.sh

Force a profile if detection is wrong or nvidia-smi is unavailable:

sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlock

Then perform a cold reboot (full power off, then boot) if modules did not hot-reload cleanly, or if memory still shows the stock size.


Verify

nvidia-smi
# 8GB card: expect ~65536 MiB# 10GB card: expect ~40960 MiB
nvidia-smi --query-gpu=memory.total,clocks.max.sm --format=csv
sudo dmesg | grep SEC2_DEBUG
# Expected: PLMs opening to 0xffffffff, CFG1/LMR/SS0/SS1 writes, late PMA
cat /lib/modules/$(uname -r)/updates/cmpunlocker/card_profile
# 8gb or 10gb

Booter status codes such as 0x31 / 0xffff during the early PLM Booter passes can appear and are often harmless if the final boot succeeds.


What Gets Unlocked

FeatureStatus
Full SM compute throughput (SS0/SS1)Working ✓
Memory geometry (64GB on 8GB cards, 40GB on 10GB cards)Working ✓
Persistence across reboot (patched modules)Working ✓

Uninstall

Restore stock module loading:

sudo ./remove.sh --yes

This removes /lib/modules/*/updates/cmpunlocker/, runs depmod, and attempts to reload stock NVIDIA modules. Reboot if the GPU does not come back cleanly.


Support & Community

Having issues? Need help? Join our Discord community to discuss with other users and get support.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cmpunlocker

Unlock tool for the NVIDIA CMP 170HX (GA100) mining card. Restores full SM compute throughput and unlocked HBM2e memory geometry that are restricted in firmware/OTP configuration.

Targets nvidia-open driver 610.43.0x on Linux. cmpunlocker does not install the full NVIDIA userspace package — it patches and installs open kernel modules only.

Join our Discord community for support and discussions.


Background

The CMP 170HX is a physically complete GA100 die (same silicon as the A100) with compute and memory artificially limited. This tool applies an in-driver unlock path (SEC2 Booter PLM open + host SS0/SS1/CFG1/LMR writes + FB/PMA adjustments) that runs automatically every time the patched modules boot GSP for PCI ID 0x20C2.

Card size selects the memory geometry:

Physical cardUnlock geometryCFG1LMR
8 GB64 GB0x027790000x0000020B
10 GB40 GB0x026690000x0000028A

Proof of Concept

Below are memory and performance results after applying the unlock:

Memory Unlock Results

memory unlock

Performance Benchmarks (OpenCL-Benchmark)

performance benchmarks

Requirements

  • Linux (x86-64)
  • Root access
  • NVIDIA CMP 170HX
  • nvidia-open 610.43.0x 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-modules sources)
  • Python 3 (used at build time to select 8GB/10GB geometry)

Install

One command. Auto-detects 8GB vs 10GB from stock nvidia-smi memory, then builds patched open kernel modules into /lib/modules/$(uname -r)/updates/cmpunlocker/.

sudo ./install.sh

Force a profile if detection is wrong or nvidia-smi is unavailable:

sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlock

Then perform a cold reboot (full power off, then boot) if modules did not hot-reload cleanly, or if memory still shows the stock size.


Verify

nvidia-smi
# 8GB card: expect ~65536 MiB# 10GB card: expect ~40960 MiB
nvidia-smi --query-gpu=memory.total,clocks.max.sm --format=csv
sudo dmesg | grep SEC2_DEBUG
# Expected: PLMs opening to 0xffffffff, CFG1/LMR/SS0/SS1 writes, late PMA
cat /lib/modules/$(uname -r)/updates/cmpunlocker/card_profile
# 8gb or 10gb

Booter status codes such as 0x31 / 0xffff during the early PLM Booter passes can appear and are often harmless if the final boot succeeds.


What Gets Unlocked

FeatureStatus
Full SM compute throughput (SS0/SS1)Working ✓
Memory geometry (64GB on 8GB cards, 40GB on 10GB cards)Working ✓
Persistence across reboot (patched modules)Working ✓

Uninstall

Restore stock module loading:

sudo ./remove.sh --yes

This removes /lib/modules/*/updates/cmpunlocker/, runs depmod, and attempts to reload stock NVIDIA modules. Reboot if the GPU does not come back cleanly.


Support & Community

Having issues? Need help? Join our Discord community to discuss with other users and get support.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cmpunlocker

Unlock tool for the NVIDIA CMP 170HX (GA100) mining card. Restores full SM compute throughput and unlocked HBM2e memory geometry that are restricted in firmware/OTP configuration.

Targets nvidia-open driver 610.43.0x on Linux. cmpunlocker does not install the full NVIDIA userspace package — it patches and installs open kernel modules only.

Join our Discord community for support and discussions.


Background

The CMP 170HX is a physically complete GA100 die (same silicon as the A100) with compute and memory artificially limited. This tool applies an in-driver unlock path (SEC2 Booter PLM open + host SS0/SS1/CFG1/LMR writes + FB/PMA adjustments) that runs automatically every time the patched modules boot GSP for PCI ID 0x20C2.

Card size selects the memory geometry:

Physical cardUnlock geometryCFG1LMR
8 GB64 GB0x027790000x0000020B
10 GB40 GB0x026690000x0000028A

Proof of Concept

Below are memory and performance results after applying the unlock:

Memory Unlock Results

memory unlock

Performance Benchmarks (OpenCL-Benchmark)

performance benchmarks

Requirements

  • Linux (x86-64)
  • Root access
  • NVIDIA CMP 170HX
  • nvidia-open 610.43.0x 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-modules sources)
  • Python 3 (used at build time to select 8GB/10GB geometry)

Install

One command. Auto-detects 8GB vs 10GB from stock nvidia-smi memory, then builds patched open kernel modules into /lib/modules/$(uname -r)/updates/cmpunlocker/.

sudo ./install.sh

Force a profile if detection is wrong or nvidia-smi is unavailable:

sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlock

Then perform a cold reboot (full power off, then boot) if modules did not hot-reload cleanly, or if memory still shows the stock size.


Verify

nvidia-smi
# 8GB card: expect ~65536 MiB# 10GB card: expect ~40960 MiB
nvidia-smi --query-gpu=memory.total,clocks.max.sm --format=csv
sudo dmesg | grep SEC2_DEBUG
# Expected: PLMs opening to 0xffffffff, CFG1/LMR/SS0/SS1 writes, late PMA
cat /lib/modules/$(uname -r)/updates/cmpunlocker/card_profile
# 8gb or 10gb

Booter status codes such as 0x31 / 0xffff during the early PLM Booter passes can appear and are often harmless if the final boot succeeds.


What Gets Unlocked

FeatureStatus
Full SM compute throughput (SS0/SS1)Working ✓
Memory geometry (64GB on 8GB cards, 40GB on 10GB cards)Working ✓
Persistence across reboot (patched modules)Working ✓

Uninstall

Restore stock module loading:

sudo ./remove.sh --yes

This removes /lib/modules/*/updates/cmpunlocker/, runs depmod, and attempts to reload stock NVIDIA modules. Reboot if the GPU does not come back cleanly.


Support & Community

Having issues? Need help? Join our Discord community to discuss with other users and get support.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cmpunlocker

Unlock tool for the NVIDIA CMP 170HX (GA100) mining card. Restores full SM compute throughput and unlocked HBM2e memory geometry that are restricted in firmware/OTP configuration.

Targets nvidia-open driver 610.43.0x on Linux. cmpunlocker does not install the full NVIDIA userspace package — it patches and installs open kernel modules only.

Join our Discord community for support and discussions.


Background

The CMP 170HX is a physically complete GA100 die (same silicon as the A100) with compute and memory artificially limited. This tool applies an in-driver unlock path (SEC2 Booter PLM open + host SS0/SS1/CFG1/LMR writes + FB/PMA adjustments) that runs automatically every time the patched modules boot GSP for PCI ID 0x20C2.

Card size selects the memory geometry:

Physical cardUnlock geometryCFG1LMR
8 GB64 GB0x027790000x0000020B
10 GB40 GB0x026690000x0000028A

Proof of Concept

Below are memory and performance results after applying the unlock:

Memory Unlock Results

memory unlock

Performance Benchmarks (OpenCL-Benchmark)

performance benchmarks

Requirements

  • Linux (x86-64)
  • Root access
  • NVIDIA CMP 170HX
  • nvidia-open 610.43.0x 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-modules sources)
  • Python 3 (used at build time to select 8GB/10GB geometry)

Install

One command. Auto-detects 8GB vs 10GB from stock nvidia-smi memory, then builds patched open kernel modules into /lib/modules/$(uname -r)/updates/cmpunlocker/.

sudo ./install.sh

Force a profile if detection is wrong or nvidia-smi is unavailable:

sudo ./install.sh --profile=8gb # 8GB card → 64GB unlock
sudo ./install.sh --profile=10gb # 10GB card → 40GB unlock

Then perform a cold reboot (full power off, then boot) if modules did not hot-reload cleanly, or if memory still shows the stock size.


Verify

nvidia-smi
# 8GB card: expect ~65536 MiB# 10GB card: expect ~40960 MiB
nvidia-smi --query-gpu=memory.total,clocks.max.sm --format=csv
sudo dmesg | grep SEC2_DEBUG
# Expected: PLMs opening to 0xffffffff, CFG1/LMR/SS0/SS1 writes, late PMA
cat /lib/modules/$(uname -r)/updates/cmpunlocker/card_profile
# 8gb or 10gb

Booter status codes such as 0x31 / 0xffff during the early PLM Booter passes can appear and are often harmless if the final boot succeeds.


What Gets Unlocked

FeatureStatus
Full SM compute throughput (SS0/SS1)Working ✓
Memory geometry (64GB on 8GB cards, 40GB on 10GB cards)Working ✓
Persistence across reboot (patched modules)Working ✓

Uninstall

Restore stock module loading:

sudo ./remove.sh --yes

This removes /lib/modules/*/updates/cmpunlocker/, runs depmod, and attempts to reload stock NVIDIA modules. Reboot if the GPU does not come back cleanly.


Support & Community

Having issues? Need help? Join our Discord community to discuss with other users and get support.

Releases

Packages

Contributors

Languages