Skip to content
,

gpu-unlock: Make ComfyUI Up to 60% Faster on RTX 3090, 4090 and 3060 (Linux BF16 Unlock Guide)

11โ€“16 minutes

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.

TL;DR

  • 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, add gpu_unlock.targets=all to 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:

  1. Loads from the initramfs, before the nvidia module.
  2. Runs the unlock on each card you opted in, and writes the speed selectors (SS0 0x88888888 for the full BF16 rate and SS1 0x8).
  3. 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.

ComfyUI speed-up after gpu-unlockRTX 3090 Ti, median time per image or clip, stock vs unlockedMiniMax H3 (BF16)+60.2%MOSS-Image SFT (BF16)+58.6%Qwen-Image 2.1 Turbo (BF16)+57.2%Z-Image Turbo (BF16)+56.1%FLUX.1 dev (FP8 file)+54.6%Krea 2 Turbo (BF16)+46.3%MiniMax H3 (INT8 ConvRot)+31.2%LTX-2.5 distilled (BF16)+16.8%Qwen-Image 2.1 Turbo (INT8)+4.6%MOSS-Image SFT (INT8)+0.3%Source: u/under-_-null benchmark via ComfyUI Wiki. INT8 models barely change.
ComfyUI speed gains on an RTX 3090 Ti after gpu-unlock
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 install installs 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/grub and add it inside GRUB_CMDLINE_LINUX_DEFAULT, for example GRUB_CMDLINE_LINUX_DEFAULT="quiet splash gpu_unlock.targets=all". Then run sudo 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 options line of your boot entry (bootctl status shows where it is).
  • UKI: add it to /etc/kernel/cmdline and rebuild the images, for example sudo 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, delete gpu_unlock.targets=all from the linux line, and boot with Ctrl+X.
  • Permanently: remove gpu_unlock.targets=... from your kernel command line (and run sudo update-grub or 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:

Sources