If you run ComfyUI on an RTX 3060, 3080, 3090 or 4090, your card has been doing AI math at half speed this whole time. NVIDIA caps the FP16, BF16 and TF32 tensor rate on GeForce cards, while the same chip sold as a professional RTX A-series card runs at full rate. A new open-source Linux module called gpu-unlock removes that cap at boot, and ComfyUI users are reporting 46% to 60% faster image and video generation on BF16 models, with bit-identical output. This guide explains what gpu-unlock does, which GPUs it supports, the real ComfyUI benchmark numbers, how to install it step by step on Ubuntu, Arch and Fedora, how to check it worked, and the risks you should know about first.
- What it is: Zagitta/gpu-unlock, a GPL-2.0 Linux kernel module that lifts NVIDIA’s half-rate cap on FP16/BF16/TF32 tensor math before the normal driver loads.
- GPUs: RTX 30 series is stable (100+ user reports). RTX 40 and RTX 20 are experimental in version 2.0.0. RTX 50 is not supported.
- ComfyUI gains: on an RTX 3090 Ti, MiniMax H3 BF16 went from 253 s to 158 s (+60%), Qwen-Image 2.1 Turbo BF16 from 8.5 s to 5.4 s (+57%), Z-Image Turbo +56%.
- No gain for: INT8, FP8 compute and INT4 models, GGUF token generation, and games.
- Linux only. Install with
make install, addgpu_unlock.targets=allto the kernel command line, then cold boot. - Risk: it is an unsigned, experimental kernel module. Avoid unofficial Windows installers.
Why Your GeForce Runs AI at Half Speed
Tensor cores do the matrix math behind almost every AI model. When that math runs in FP16, BF16 or TF32 with FP32 accumulation, which is what nearly all training and unquantized inference uses, GeForce cards issue those instructions at half the rate of their professional twins. The silicon is the same. The limit is set in firmware so businesses buy the more expensive professional cards.
For ComfyUI users this matters a lot. Most modern image and video models, from Qwen-Image 2.1 and Z-Image to Krea 2 and MiniMax H3, ship in BF16. Every step of every render goes through those capped tensor cores. Gaming and normal FP32 CUDA work are not affected, which is why most people never noticed.
How gpu-unlock Works
gpu-unlock was published by GitHub user Zagitta on October 18, 2026 and passed 2,800 stars within a week. It is a Linux kernel module that runs at boot, before the stock NVIDIA driver takes the card. In short, it:
- Loads from the initramfs, before the
nvidiamodule. - Runs the unlock on each card you opted in, and writes the speed selectors (SS0
0x88888888for the full BF16 rate and SS10x8). - Resets the card (an FLR) and steps aside so the normal, unmodified NVIDIA driver binds as usual.
The technique combines the “CMP unlocker” method with the pre-driver timing of an earlier UEFI approach. The important part for you:
- No patched driver. You keep using the official NVIDIA driver.
- No VBIOS flash. Nothing is written permanently to the card. The setting resets when the card loses power.
- Nothing to redo on driver updates. The build downloads an NVIDIA driver package only to extract firmware it needs. It does not depend on the driver version you run.
- Opt-in only. The module does nothing unless you add
gpu_unlock.targets=to the kernel command line.
The maintainer and independent testers report that outputs are bit-identical before and after. One ComfyUI tester compared 150 still images made with and without the unlock and got identical decoded pixels. That makes sense: only the issue rate changes, not the precision.
Supported GPUs
| Generation | Cards | Status |
|---|---|---|
| RTX 30 (Ampere) | 3050, 3060, 3060 Ti, 3070, 3070 Ti, 3080, 3080 Ti, 3090, 3090 Ti, plus 3070/3080 Laptop | Stable, 100+ user reports |
| RTX 40 (Ada) | 4060, 4060 Ti, 4070, 4070 SUPER, 4070 Ti, 4070 Ti SUPER, 4080, 4080 SUPER, 4090, 4090 D, 4050/4060 Laptop | Experimental |
| RTX 20 (Turing) | 2060, 2060 SUPER, 2070, 2070 SUPER, 2080, 2080 SUPER, 2080 Ti, Titan RTX | Experimental |
| RTX 50 (Blackwell) | None | Not supported, and the author says it is unlikely |
One early report found an OEM RTX 3080 Ti 20 GB that completed the unlock but stayed at half BF16 rate, so results can vary by board. Laptops only stay unlocked if the dedicated GPU is never fully powered off. Many laptops power it down when idle, which silently resets the unlock. The README suggests options nvidia NVreg_DynamicPowerManagement=0x00 in /etc/modprobe.d/, but expect mixed results.
Raw matrix multiply numbers from the README (BF16, FP32 accumulation, stock power):
| Card | BF16 before | BF16 after | Gain |
|---|---|---|---|
| RTX 3060 12 GB | 27 TFLOPS | 51 TFLOPS | +87% |
| RTX 3060 Ti | 37 TFLOPS | 68 TFLOPS | +82% |
| RTX 3070 | 40 TFLOPS | 72 TFLOPS | +81% |
| RTX 3080 10 GB | 65 TFLOPS | 113 TFLOPS | +73% |
| RTX 3090 | 75 TFLOPS | 125 TFLOPS | +65% |
| RTX 3090 Ti (450 W) | 88 TFLOPS | 157 TFLOPS | +80% |
| RTX 4070 Ti | 81 TFLOPS | 150 TFLOPS | +84% |
| RTX 4080 | 104 TFLOPS | 193 TFLOPS | +87% |
| RTX 4090 | 165 TFLOPS | 329 TFLOPS | +100% peak |
The RTX 4090 runs out of power before it runs out of tensor cores, so large real workloads gain much less than the peak number. Cards with a low power limit also gain less: the lowest RTX 3090 report (+25%) came from a card capped at 225 W.
ComfyUI Benchmarks: How Much Faster?
Reddit user u/under-_-null ran a proper before-and-after test in ComfyUI on an RTX 3090 Ti, using the median time per image or clip.
| Model and precision | Stock | Unlocked | Gain |
|---|---|---|---|
| MiniMax H3 BF16 (video + audio) | 253.27 s | 158.05 s | +60.2% |
| MOSS-Image SFT BF16 | 71.98 s | 45.40 s | +58.6% |
| Qwen-Image 2.1 Turbo BF16 | 8.51 s | 5.41 s | +57.2% |
| Z-Image Turbo BF16 | 6.79 s | 4.35 s | +56.1% |
| FLUX.1 dev FP8 checkpoint | 31.96 s | 20.66 s | +54.6% |
| Krea 2 Turbo BF16 | 15.65 s | 10.70 s | +46.3% |
| MiniMax H3 INT8 ConvRot | 155.07 s | 118.21 s | +31.2% |
| LTX-2.5 distilled BF16 (video + audio) | 70.81 s | 60.63 s | +16.8% |
| Qwen-Image 2.1 Turbo INT8 | 3.92 s | 3.75 s | +4.6% |
| MOSS-Image SFT INT8 | 27.31 s | 27.23 s | +0.3% |
The FLUX.1 dev result is interesting: the file is FP8, but on RTX 30 cards ComfyUI upcasts FP8 weights to BF16 for the actual math, so it still gains. The MiniMax H3 INT8 result gains 31% because parts of that pipeline still run in BF16.
The README’s own summary of real workloads across user reports:
| Workload | Typical speed-up |
|---|---|
| Image generation, FP16/BF16 (SDXL, SD 1.5, Krea, DiT models in ComfyUI) | +30 to 55% |
| Video generation, BF16 (Wan 2.2) | +15 to 20% |
| LoRA and full fine-tuning in BF16 | +25 to 50% |
| LLM prompt processing (vLLM, PyTorch, Transformers) | +25 to 55% |
| FlashAttention / SDPA kernels | +50 to 60% |
| llama.cpp / Ollama with GGUF | 0 to 15%, mostly at long context |
| LLM token generation (memory bound) | No change |
| INT8, FP8 and INT4 models, gaming, FP32 CUDA | No change |
Which Models Get Faster (and Which Do Not)
The rule is simple: the more of your workload is FP16/BF16 matrix math, the bigger the gain.
- Big winners: BF16 and FP16 image models (Qwen-Image 2.1, Z-Image, MOSS-Image, Krea 2, FLUX, SDXL), BF16 video models like MiniMax H3, and LoRA training. If you train LoRAs, for example with KohakuMoss for MOSS-Image, expect training to be 25 to 50% quicker.
- Small gains: video models where VAE decode, attention or memory bandwidth dominate, such as LTX-2.5 (+17%) and Wan 2.2 (+15 to 20%).
- No gain: INT8 and INT4 quantized models, true FP8 compute, and GGUF token generation in Ollama or llama.cpp, which is limited by memory speed, not math.
This changes an old trade-off. On an RTX 30 card, people often picked INT8 versions of models for speed. After the unlock, Qwen-Image 2.1 Turbo INT8 (3.75 s) is still faster than BF16 (5.41 s), but the gap is much smaller, and BF16 is the higher quality option. If you have the VRAM, BF16 becomes much more attractive.
How to Install gpu-unlock on Linux
Before you start, make sure you have:
- A supported card (see the table above) and the official NVIDIA driver installed.
- Kernel headers for your running kernel (on Ubuntu:
sudo apt install linux-headers-$(uname -r)). - Git and a normal build setup.
make installinstalls the remaining build dependencies for you. - A way to recover if the machine does not boot to the desktop, such as a second GPU, SSH access, or knowing how to edit the kernel command line in GRUB. See How to Undo It.
Step 1: Build and install the module
git clone https://github.com/Zagitta/gpu-unlock
cd gpu-unlock
make install
make install reads /etc/os-release and picks the right package type: make install-deb (Debian, Ubuntu, Mint), make install-arch (Arch, CachyOS) or make install-rpm (Fedora, RHEL). It builds a package, installs it, and adds the module to your initramfs (mkinitcpio, initramfs-tools or dracut) so it loads before nvidia. It will ask for your sudo password. Only use the official GitHub repository. The author says there is no official website, installer or coin.
Step 2: Turn it on in the kernel command line
Add gpu_unlock.targets=all and keep your existing options:
- Ubuntu, Debian, Mint (GRUB): edit
/etc/default/gruband add it insideGRUB_CMDLINE_LINUX_DEFAULT, for exampleGRUB_CMDLINE_LINUX_DEFAULT="quiet splash gpu_unlock.targets=all". Then runsudo update-grub. - Arch, CachyOS (GRUB): same edit, then
sudo grub-mkconfig -o /boot/grub/grub.cfg. - Fedora, RHEL:
sudo grubby --update-kernel=ALL --args="gpu_unlock.targets=all" - systemd-boot: add it to the
optionsline of your boot entry (bootctl statusshows where it is). - UKI: add it to
/etc/kernel/cmdlineand rebuild the images, for examplesudo mkinitcpio -P.
To unlock only some cards, list their PCI addresses as lspci -D prints them: gpu_unlock.targets=0000:21:00.0 or several separated by commas.
Step 3: Cold boot
Shut the PC down fully and start it again. Loading the module by hand after boot does nothing, because the card is already bound to the NVIDIA driver. During boot your display goes blank for a moment after the card resets, until the NVIDIA driver takes over. That is normal.
How to Check It Worked
journalctl -k -b | grep gpu_unlock
lspci -nnk -s 0000:01:00.0
Replace 01:00.0 with your card’s address from lspci -D. The journal shows whether each card was unlocked, skipped or refused, and why. The second command should show the card using the nvidia driver as usual.
The best check is your own ComfyUI timing. Run the same workflow with the same seed before and after, and compare the time in the console. A BF16 model like Z-Image Turbo or Qwen-Image 2.1 Turbo shows the difference most clearly. If you see no change, check that the model really runs in BF16 and not INT8 or GGUF.
Getting the Most Out of It in ComfyUI
- Prefer BF16 or FP16 model files where your VRAM allows. A 24 GB RTX 3090 can hold many BF16 image models whole.
- Watch your power limit. The tensor cores now do twice the work per clock, so a card capped at a low power limit throttles sooner. Gains on a 225 W RTX 3090 were much lower than on a 450 W 3090 Ti.
- Check cooling. The author says the card may run slightly warmer, though normal throttling and power management stay in place.
- Use PyTorch SDPA or FlashAttention, which gain 50 to 60% on their own. Recent ComfyUI builds use SDPA by default.
- Suspend works. The module re-unlocks cards on resume from sleep (about one extra second). Hibernate is not covered, so do a cold boot after hibernating.
If you use an RTX 30 card on a 12 GB or 16 GB budget, my ComfyUI VRAM guide helps you pick models that fit.
What About Windows?
gpu-unlock is Linux only, and the author does not plan to support Windows. A separate community project, impacifist/Windows-GPU-UNLOCK, ports the idea to a UEFI boot path for Windows. It is not part of the original project and has not been widely tested.
The author warns that “Windows installers floating around” should be treated very carefully. A tool that runs before your GPU driver at boot is exactly the kind of thing malware would pretend to be. If you are on Windows and want the speed-up today, the safer option is to dual-boot a Linux distribution for ComfyUI and use the official module.
Risks and Limitations
- Experimental. It is an unsigned kernel module that changes GPU behaviour before the official driver loads. RTX 40 and RTX 20 support is new and marked experimental.
- Boot problems are possible. If something goes wrong, a card can fail to initialize until you power off. Have a recovery plan before installing.
- Secure Boot. An unsigned module will not load with Secure Boot enforced unless you sign it yourself or turn Secure Boot off.
- Warranty and terms. It removes a limit NVIDIA put there on purpose. Nothing is flashed, but think about it for work machines.
- Not every card gains. Some OEM boards stayed at half rate, and laptops that power down the GPU lose the unlock.
- No RTX 50 support. Owners of RTX 5080 and 5090 cards cannot use it.
On safety, the author says it is very unlikely to harm the GPU, because it only removes a rate limit and all normal throttling stays active. Many users have reported no issues, but this is still new software. Use it at your own risk.
How to Undo It
- For one boot: in the GRUB menu press
e, deletegpu_unlock.targets=allfrom the linux line, and boot withCtrl+X. - Permanently: remove
gpu_unlock.targets=...from your kernel command line (and runsudo update-grubor your distro’s equivalent). The module stays installed but does nothing. - Fully remove: uninstall the gpu-unlock package with your package manager. This also removes the initramfs drop-ins.
- Turn off re-unlock after sleep: add
gpu_unlock.resume=0.
FAQ
Does gpu-unlock work on the RTX 5080 or 5090?
No. RTX 50 (Blackwell) cards are not supported, and the author says support is unlikely.
Will my ComfyUI images look different?
No. Testers found bit-identical output before and after. Only the speed changes.
Does it make games faster?
No. Gaming and FP32 CUDA work are not affected. It only speeds up FP16, BF16 and TF32 tensor math.
Does it speed up Ollama?
Very little. Token generation with GGUF models is limited by memory bandwidth. Prompt processing at long context can be up to 15% faster.
Do I need to reinstall after an NVIDIA driver update?
No. It works with the stock driver and does not depend on its version. Kernel updates get the module through the kernel’s install hooks.
Is it legal?
It is open source (GPL-2.0) and runs on hardware you own. It does not flash firmware or patch the driver. Check your own warranty and any work policies before using it.
Final Thoughts
gpu-unlock is one of the biggest free speed-ups ComfyUI users have seen in a long time. If you have an RTX 3060 to 3090 Ti and use Linux, a 45 to 60% faster render on BF16 models is a real upgrade, close to what you would get from buying a newer card. RTX 40 owners can try it too, knowing that support is still experimental. Read the risks, keep a way to recover your boot, install only from the official GitHub repo, and time one BF16 workflow before and after to see what it does for you.
More guides:
- How Much VRAM Do You Need for ComfyUI?
- ComfyUI Cloud GPU Pricing vs a Local RTX 5080
- Best Open Source Text-to-Image Models in 2026
Sources
- GitHub: Zagitta/gpu-unlock (README, version 2.0.0)
- ComfyUI Wiki: RTX 30 Series BF16 Unlock Speeds Up ComfyUI by Up to 60%
- Reddit: RTX 3090 Ti ComfyUI benchmark and r/comfyui discussion
- GitHub: impacifist/Windows-GPU-UNLOCK (unofficial Windows port)