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 sourcev0.3.1 (9352abd27480)
Installer SHA-256de4206e1a207597060256b63ea09245ff6acc259c26f97db5a5c50c9ace2aa35
Source archive SHA-256d81ddec78fb260f6e9bbb0e5d66d4b9d168dbe53222813d2cce9c2e29e07d9c6
Upstream releaseimpacifist/Windows-GPU-UNLOCK v0.3.1

Download the .sha256 file

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-UNLOCK

2a. 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-package

2b. 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' -Register

Roll 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 -RestoreWindowsFirst

Five 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

Not redistributed here or in the installer: NVIDIA firmware, VBIOS/PROM dumps, driver DLLs and private per-partition EFI binaries. Keep the generated NVIDIA licence and notice with them.

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.

CardNVIDIA RTX 3090 Founders Edition, 24 GiB
PCI identity10de:2204 / subsystem 10de:1454
GPU BDF0000:01:00.0
Motherboard / BIOSASUS TUF GAMING B650M-PLUS WIFI / BIOS 3057
CPUAMD Ryzen 7 7800X3D
Windows / driverWindows 11 Home 26200 / NVIDIA 617.14
Boot modex64 UEFI / Secure Boot disabled
PROM SHA-2568ea297373e9e5d3600ff41ad9fae88f2d14c98c017d100669f7333981da673b4

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.

WorkloadBeforeAfterChange
FP1670.55125.91+78.5%
BF1670.53128.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.