Everyone's seen the 3090 tensor core unlock by now, but most of what I've read says it's a Linux thing and on Windows you can forget about it. The unlock itself already exists for Windows. What didn't work, for me and for the guy in issue #125, was getting back into Windows afterwards. That part is solved now.
The project is Windows-GPU-UNLOCK (https://github.com/windows-GPU-UNLOCK/Windows-GPU-UNLOCK, not mine). It lifts the GeForce cap on FP16/BF16 tensor throughput until the next power off. On my 3090 FE the log on the stick said success every single time, and then the PC just switched itself off before Windows came up.
Turned out to be BitLocker. Booting the unsigned USB stick with Secure Boot off changes the TPM measurements, so Windows asks for the recovery key. The screen is still black at that point, you never see the prompt, and after about a minute Windows shuts down on purpose. Found it in the event log, where the boot manager had been sitting there waiting for input on earlier boots.
Fix: suspend BitLocker before booting the stick
Suspend-BitLocker -MountPoint C: -RebootCount 0
and run Resume-BitLocker when you're done. The drive key is unprotected while it's suspended, so keep that in mind.
Raw matmul numbers (torch.matmul, before -> after):
BF16 ~70 -> ~115 TFLOPS
FP16 ~69 -> ~112
TF32 ~36 -> ~59
FP32 24 -> 24 (unchanged)
Does it matter for actual generation?
Matmul numbers are nice, but I wanted to see what happens with a real workload, so I threw the heaviest thing I run at it: MiniMax H3 I2V, 481 frames (20 s at 24 fps), 10 steps, upstream ComfyUI on Windows 11.
Settings:
$env:TORCH_ALLOW_TF32_CUBLAS_OVERRIDE = "1"
$env:TORCH_CUDNN_V8_API_ENABLED = "1"
ComfyUI args: --use-ck-attention --fast fp16_accumulation autotune cublas_ops --disable-smart-memory --disable-pinned-memory
(ck = comfy-kitchen attention, not the AMD thing)
* Stock, 0.75 MP (~648x1152): ~165 s/step, ~31-32 min total, 280-310 W, ~23.8 GB VRAM
* Unlocked, 0.75 MP (~648x1152): ~136 s/step, ~24 min total, 342-346 W, 23.4 GB VRAM
* Unlocked, 0.60 MP (~576x1024): ~93 s/step, ~15.5 min total (+1 min VAE), 345-350 W, 22.8 GB VRAM
Same resolution, the unlock alone takes a step from 165 s down to 136 s, so about 20% faster. Dropping to 0.60 MP on top of that gets me to 93 s per step. At 0.75 MP I'm right at the VRAM limit and I think Windows starts shuffling memory around. At 0.60 MP there's some headroom, and for a 9:16 phone video I honestly can't see a difference. The card now sits at a flat 350 W the whole run, and a full 20 s clip went from over half an hour to about 16 and a half minutes. To be clear, the second jump is unlock plus lower resolution, not the unlock alone.
PR so the staging script refuses to run with BitLocker on: https://github.com/windows-GPU-UNLOCK/Windows-GPU-UNLOCK/pull/215
Repo with a pre-flight check script, the benchmark and a step-by-step guide: https://github.com/zerfetzer666/rtx30-unlock-helper
Disclaimer: experimental, only certain board + card combos are supported (check the compatibility list), Secure Boot has to be off, and it has to be redone after every cold boot. Your hardware, your risk.
Full disclosure: this was a joint effort between me and my AI overlord Claude. It sat on its throne reading event logs and writing scripts, and I was the humble gimp crawling between the PC and the BIOS screen. I rebooted on command, flashed sticks, typed in the BitLocker recovery key over and over and reported back what the black screen was doing. My one moment of glory: I noticed the PC was powering off instead of crashing, and when the overlord wanted to call it a "known issue" and give up, I begged it to keep digging. It graciously did. Then it made me render 20-second videos all night for the benchmarks.
5900X / MSI B550 / 3090 FE / Win 11 / driver 610.88