GPU Unlock on Windows
The Windows route from impacifist/Windows-GPU-UNLOCK: a UEFI application unlocks the card and chain-loads the Windows Boot Manager, so the card stays unlocked under the stock NVIDIA driver without rebooting into Linux.
The Linux module on this site has to load before the NVIDIA driver, which means a reboot into Linux. This project goes the other way: a self-built UEFI application does the same register write, then hands control to the Windows Boot Manager in the same boot. The card comes up unlocked under the stock Windows driver.
Installer for Windows
This site builds a setup program from the pinned v0.3.1 source archive. It installs the scripts, the documentation and the licences as a plain source drop — nothing is prebuilt, because the EFI image has to be compiled against your own partitions. Firmware dumps and driver DLLs are not included and cannot be, so the installer is a shortcut for the checkout, not for the unlock.
Download the installer — GPU-Unlock-Windows-0.3.1-Setup.exe
| Pinned source | v0.3.1 (9352abd27480) |
|---|---|
| Installer SHA-256 | de4206e1a207597060256b63ea09245ff6acc259c26f97db5a5c50c9ace2aa35 |
| Source archive SHA-256 | d81ddec78fb260f6e9bbb0e5d66d4b9d168dbe53222813d2cce9c2e29e07d9c6 |
| Upstream release | impacifist/Windows-GPU-UNLOCK v0.3.1 |
Unsigned and unofficial: it is not published by NVIDIA, ASUS or impacifist. Windows will warn about an unknown publisher. Verify the SHA-256 of the archive before running the scripts, and read the compatibility page before building — a successful build is not a permission to unlock.
Three boot routes
Same EFI payload, three ways to get it in front of Windows. Pick one; they are not steps in a sequence. All commands are copied verbatim from the pinned documentation.
1. Get the pinned source
Clone the v0.3.1 tag rather than the default branch. The documentation and the EFI build are tied to that revision, and the local files the scripts write are not portable between revisions.
git clone --branch v0.3.1 --depth 1 https://github.com/impacifist/Windows-GPU-UNLOCK.git
cd Windows-GPU-UNLOCK2a. USB stick, no partition changes
An ordinary FAT32 stick; no partition is created, resized or retyped and no firmware boot entry is registered. The tool validates the five asset sizes and hashes and writes a new local folder — copy its contents to the stick root yourself.
python .\tools\prepare_usb.py --assets .\assets --output .\usb-package2b. Dedicated internal ESP
A separate GPT FAT32 EFI System Partition of at least 1 GiB, prepared by hand after a backup. Configure.ps1 writes ignored local files; Build.ps1 compiles a wrapper and a child with a hash contract. Neither changes boot settings.
.\internal-boot\Configure.ps1 -UnlockDriveLetter U -WindowsEspGuid 'WINDOWS-ESP-GUID-HERE'
.\internal-boot\Build.ps1 -Clang 'C:\TOOLS\LLVM20\bin\clang.exe' -LldLink 'C:\TOOLS\LLVM20\bin\lld-link.exe'3. Stage, then optionally register
Staging alone changes no boot entry, boot order or Fast Startup. -Register appends a separate F8 entry and keeps the existing boot priority. The documented boot is F8 → GPU Headless UNLOCK, with no key presses after that.
# Stage only: no boot entry, boot-order or Fast Startup change.
.\internal-boot\Headless.ps1 -Assets '.\assets'
# Stage and append a separate F8 entry, retaining existing boot priority.
.\internal-boot\Headless.ps1 -Assets '.\assets' -RegisterRoll back
One documented command puts Windows first again. Keep the local state and backups the scripts write: they are recovery inputs, not release files.
.\internal-boot\Headless.ps1 -RestoreWindowsFirstFive firmware files you must supply
The packaging tool and the UEFI application both reject mismatched hashes, so similar versions cannot be substituted. Generate them from legally obtained NVIDIA inputs with the pinned upstream pipeline; the site links the procedure rather than the files.
- booter_load_ga102.bin
- v67-ga102-610.43.03.bin
- gsp_ga10x.bin
- gsp_boot_ga102.bin
- gsp_boot_desc_ga102.bin
The one documented success
One machine, one card, one boot: ASUS BIOS 3057 with an RTX 3090 Founders Edition on 2026-10-24. These are recorded values, not an allowlist — the code re-checks configuration, PROM, cold state and driver code, and refuses what it was not built for.
| Card | NVIDIA RTX 3090 Founders Edition, 24 GiB |
|---|---|
| PCI identity | 10de:2204 / subsystem 10de:1454 |
| GPU BDF | 0000:01:00.0 |
| Motherboard / BIOS | ASUS TUF GAMING B650M-PLUS WIFI / BIOS 3057 |
| CPU | AMD Ryzen 7 7800X3D |
| Windows / driver | Windows 11 Home 26200 / NVIDIA 617.14 |
| Boot mode | x64 UEFI / Secure Boot disabled |
| PROM SHA-256 | 8ea297373e9e5d3600ff41ad9fae88f2d14c98c017d100669f7333981da673b4 |
Same-card measurement
Median of three runs each, CUDA 12.6 / cuBLAS, before and after the unlock on the same card and driver 617.14. Numbers are TFLOPS.
| Workload | Before | After | Change |
|---|---|---|---|
| FP16 | 70.55 | 125.91 | +78.5% |
| BF16 | 70.53 | 128.70 | +82.5% |
Why this is not the Linux module
The Linux modules on this site stay installed and run at every boot, opted in per card on the kernel command line. This is a one-shot UEFI application pinned to a partition GUID and a firmware profile; it unlocks, chain-loads Windows, and is not resident afterwards. There is no kernel parameter, no initramfs drop-in and no DKMS package.
Limits that decide whether to try
Built for one PC
The executable is tied to the tested PCI/PROM/MMIO profile and a specific partition layout. Other machines need a separate port, not a compatibility report.
Bring your own firmware
The five assets are inputs you generate. Without them packaging fails the hash check, and nothing in the installer supplies them.
Do not defeat the checks
The pre-release checks exist to stop a release on a machine the code does not match. Skipping them is what turns a failed boot into a blank display or an unbootable system.
No long-term result
One successful boot, one benchmark run and one Windows session are documented. Long-term stability, other games and real workload throughput are separate, unverified questions.