I Unlocked Four RTX 3090s: Prompts Up to 54% Faster, Video 18% Faster, 250 W Wins
TL;DR
I ran gpu-unlock on four of the eight RTX 3090s in my inference server and benchmarked everything before and after. At 250 W per card, Qwen3.8-27B reads prompts 21-34% faster, a 30-second LTX-2.5 video clip renders 18% faster on 19% less GPU energy, and every output, from matrix-multiply hashes to video frames, is bit-identical to stock. Token generation barely moves. 350 W is faster still but costs 15-65% more per output token, so 250 W is now the default on all eight cards.
Why I tried it
My local agents spend most of their time reading. Every call ships a 20,000 to 40,000 token prompt before the model says a word, and at 128k context one stock 3090 at my old 211 W cap needed 205 seconds just to read the prompt. So when a kernel module showed up claiming to double the tensor-core rate of consumer Ampere cards, I wanted to know whether it would make my agents faster or only my benchmarks.
NVIDIA runs FP16, BF16 and TF32 tensor math with FP32 accumulation at half rate on GeForce cards. gpu-unlock sets those rate selectors to full speed from the initramfs, before the NVIDIA driver binds. It writes only volatile GPU state, so a full power-off puts the card back to stock. (Our earlier write-up covers how it works.)
The setup
The server has eight RTX 3090s (EVGA FTW3 and XC3) paired over NVLink bridges, and 512 GB of RAM. I unlocked the four cards in the two FTW3 NVLink pairs. One pair runs PCIe 4.0 x16, the other x8. The other four cards stayed stock and kept serving my normal traffic the whole time.
Software: NVIDIA driver 595.112.07, vLLM 0.33.0 (torch 2.14.0, CUDA 13.0), and gpu-unlock 2.0.0 built from upstream PR #252, the GA10x direct mode. Video ran through ComfyUI with LTX-2.5 distilled FP8 and H3 Singularity.
I stepped each test through 210, 250, 300 and 350 W per card and never went above 350 W. Every run had a stop at 83 C, plus a cap on total draw: from the 250 W phase on, a watchdog dropped the loaded cards to 211 W if the eight cards together drew 2,000 W for three seconds. Neither stop ever fired.
PCIe 4.0 x16
PCIe 4.0 x8
serving traffic
serving traffic
on every run
eight-card total; drops loaded cards to 211 W
no card ever set higher
Raw matrix math: +61-64% at 350 W
Plain BF16 matrix multiplies went from 69.9-72.9 to 112.3-119.3 TFLOP/s per card at 350 W. At 250 W the gain was 28-40% (55.8-61.0 to 71.5-85.6 TFLOP/s), and at 210 W it fell to 23-28%. Every output hash matched the stock run, across all 48 combinations of card, power cap and data type.
The unlocked card does twice the tensor work per clock, but it still pays for those clocks in watts. At a low cap it hits the power limit first, and the extra rate has nowhere to go.
Prompt processing: 21-54% faster
Prefill is compute-bound, so this is where the unlock pays off for LLMs. I tested mostly Qwen3.8-27B, the model my agents use, in FP8 across an NVLink pair and in 4-bit on one card and on a pair.
| Qwen3.8-27B prefill | 250 W stock / unlocked | 350 W stock / unlocked |
|---|---|---|
| FP8, two cards over NVLink, 2k | 2,001 / 2,497 tok/s (+25%) | 2,322 / 3,182 tok/s (+37%) |
| FP8, two cards over NVLink, 128k | 1,366 / 1,760 tok/s (+29%) | 1,580 / 2,242 tok/s (+42%) |
| 4-bit, one card, 2k | 1,139 / 1,529 tok/s (+34%) | 1,329 / 2,044 tok/s (+54%) |
| 4-bit, one card, 128k | 718 / 942 tok/s (+31%) | 817 / 1,202 tok/s (+47%) |
| 4-bit, two cards over NVLink, 2k | no stock run / 2,870 tok/s | 2,387 / 3,489 tok/s (+46%) |
| 4-bit, two cards over NVLink, 128k | no stock run / 1,697 tok/s | 1,501 / 2,157 tok/s (+44%) |
For long prompts with short answers (agents, RAG, summarizing a codebase), the number you feel is the wait before the first token:
Token generation: basically unchanged
Single-stream decode went from 51.9 to 52.2 tok/s on the FP8 pair at 350 W and 2k context, and from 40.7 to 41.8 at 128k. Generating one token at a time is limited by how fast the card reads its weights from memory, and the unlock does nothing for memory bandwidth. Batched decode is different: with four streams at once, aggregate decode at 350 W gained 9-45% depending on the layout, likely because bigger batches do more tensor work per byte of weights read.
That split shows up in the cost too. Prompt tokens on the FP8 pair got 17-25% cheaper ($0.018-0.028 to $0.015-0.021 per million at 250 W, $0.021-0.032 to $0.016-0.024 at 350 W). Output-token cost showed no consistent change, because decode speed did not change.
Why 250 W
I went in expecting to land on 350 W. The cost numbers said otherwise.
| Unlocked cards, one request | 250 W | 350 W |
|---|---|---|
| 4-bit, one card: prefill / decode at 2k | 1,529 / 42.6 tok/s | 2,044 / 48.1 tok/s |
| same: $ per 1M output tokens | $0.38-0.54 | $0.50-0.64 |
| FP8, NVLink pair: prefill / decode at 2k | 2,497 / 49.8 tok/s | 3,182 / 52.2 tok/s |
| same: $ per 1M output tokens | $0.73-0.92 | $0.96-1.26 |
| 4-bit, NVLink pair: prefill / decode at 2k | 2,870 / 73.6 tok/s | 3,489 / 81.4 tok/s |
| same: $ per 1M output tokens | $0.40-0.61 | $0.63-0.74 |
| LTX-2.5 30 s clip, one card | 509 s, 29.8 Wh | 440 s, 34.3 Wh |
| H3 30 s chain with audio, one card | 3,105 s, 193 Wh | 2,658 s, 228 Wh |
On the dense models (Qwen3.8-27B and Qwen3-32B), 250 W gave the cheapest output token of all four caps at every context on every NVLink and single-card layout. Going to 350 W added 22-50% prefill and 4-35% decode, and raised the cost per output token by 15-65%.
210 W is too low. One 4-bit card decoded 28.6 tok/s at 210 W against 42.6 at 250 W, so each output token cost more at the lower cap. At 210 W the NVLink pairs also gained only 3-17% from the unlock, because they were already pinned at the power limit and the unlocked rate made the clocks drop further. Pairs running without peer-to-peer gained 20-27% at 210 W, since they spend part of every step waiting on PCIe and never hit the limit.
The two small-expert MoE models I tried, Qwen3-Coder-30B-A3B and Qwen3.6-35B-A3B, draw well under the cap at short contexts, so 210 W was as cheap or cheaper for them, and 350 W added only 5-17% prefill.
So all eight cards now default to 250 W, the eight together are held to 2,000 W, and no card goes above 350 W.
Video: 18% faster clips on less energy
The unlock was already on when I added the video tests, so this half compares two cards of the same model side by side, one stock and one unlocked, instead of one card before and after. Both rendered the same prompts with the same seeds.
| LTX-2.5, 30 s clip | stock card | unlocked card | change |
|---|---|---|---|
| 250 W, render time | 624 s | 509 s | -18% |
| 250 W, GPU energy | 36.7 Wh | 29.8 Wh | -19% |
| 300 W, render time | 582 s | 458 s | -21% |
| 300 W, GPU energy | 40.6 Wh | 31.5 Wh | -22% |
| 350 W, render time | 568 s | 440 s | -23% |
| 350 W, GPU energy | 45.5 Wh | 34.3 Wh | -25% |
Both cards drew the same average power. The unlocked card ran lower clocks (1,357 against 1,619 MHz at 250 W) and still finished first, because each clock does more work. That is why it uses less energy per clip.
| H3, 30 s chain with audio | stock card | unlocked card | change |
|---|---|---|---|
| 250 W | 3,636 s, 223 Wh | 3,105 s, 193 Wh | -15% |
| 300 W | 3,340 s, 246 Wh | 2,798 s, 205 Wh | -16% |
| 350 W | 3,217 s, 274 Wh | 2,658 s, 228 Wh | -17% |
Every frame and every audio track matched bit for bit: stock against unlocked, run against run, and across power caps. That covers 196 file pairs and 49,140 frames. I also had a local vision model score each clip for prompt adherence, temporal consistency and artifacts; identical files got identical scores, so the scores grade the model and the prompts, not the unlock.
Every card got the same prompts and the same fixed seeds: one seed per LTX part, between 42001 and 42041, and 230923 for the H3 chain. The seed fixes the starting noise. With the same model, workflow and driver on the same GPU chip (every card here is a GA102 RTX 3090), the cards then run the same arithmetic, so matching output is the expected result. The unlock makes the tensor cores faster; it does not change their results. A different GPU model, driver or model version would change the frames.
32ab4c2e01109dfb=32ab4c2e01109dfb
61900d0d39343e27=61900d0d39343e27Two cards are not one card measured twice. In a later run, four unlocked cards spread 12% in clip time, in the same order as their matrix-multiply results, so read the unlock gain on LTX at 250 W as 11-21%, with about 18% on a typical card. The unlocked card in the comparison also sits on the x8 link, which if anything works against it.
For a creator, a 3-minute short made of six 30-second LTX clips takes 62.7 minutes on one stock card at 250 W and 51.2 minutes unlocked. The GPU electricity is 6.6 cents against 5.4 cents.
I also ran five cards at once at 250 W each, the four unlocked cards plus one stock card. Together they rendered 33.3 LTX clips per hour, 98% of what the same cards do one at a time, with summed GPU draw peaking at 1,304 W. Each unlocked card was 11-21% faster than the stock one.
The video trade-off between caps is close to even: at 350 W the unlocked card rendered 16% more LTX clips per hour on 15% more energy per clip, and 17% more H3 chains on 18% more energy.
NVLink matters more after the unlock
I reran the same two cards with NCCL peer-to-peer turned off, so their traffic went through host memory.
| Qwen3.8-27B prefill at 2k | NVLink | P2P off | NVLink advantage |
|---|---|---|---|
| FP8 pair, 250 W, stock / unlocked | 2,001 / 2,497 tok/s | 1,337 / 1,618 tok/s | 1.50x / 1.54x |
| FP8 pair, 350 W, stock / unlocked | 2,322 / 3,182 tok/s | 1,413 / 1,685 tok/s | 1.64x / 1.89x |
| 4-bit pair, 350 W, stock / unlocked | 2,387 / 3,489 tok/s | 1,494 / 1,904 tok/s | 1.60x / 1.83x |
Faster compute leaves the link a bigger share of every step, so the bridge is worth more on unlocked cards and at higher caps. Single-stream decode on the unlocked FP8 pair was 6-8% faster with NVLink (49.8 against 46.8 tok/s at 250 W, 52.2 against 48.5 at 350 W). If you buy 3090s in pairs for this, buy the bridge.
Smaller results
- Qwen-Image-2.1 on one card at the old 211 W cap rendered a warm image in 87.3 seconds instead of 99.7, and a cold one in 102.6 instead of 120.0. That test only ran at the low cap, and it still gained 12%.
- Six agent tasks per thinking level on the FP8 pair at 350 W: median wall time fell 7% with thinking off, 10% on low and 24% on medium. Pass counts and energy per task moved in both directions, and each task cost between a third of a cent and about a cent of GPU energy either way.
- Idle draw did not go up. The whole rig idled lower after the change, but the stock cards dropped further than the unlocked ones, so that came from a fresh boot and lighter host load, not from the unlock.


f677272563ea85e8=f677272563ea85e8How I measured
vLLM 0.33.0 with prefix caching off and a frozen prompt pack per model. Qwen3.8-27B ran at nine context lengths from 2k to 128k, at one and four concurrent requests, with 256 output tokens; the other models ran at 2k, 16k, 64k and 128k. The same cards ran both phases. NVML sampled every card ten times a second, and the cost figures come from the GPU rail energy of the cards doing the work at $0.30/kWh.
What I didn't measure
Should you run it?
If your 3090s spend their day on long prompts, RAG, image or video generation, and you can give them 250 W, the unlock is a free speedup on old hardware: a quarter to a third faster prompt processing, about 18% faster video on less energy, and identical outputs. If they mostly generate text one stream at a time, or live at a low power cap, it barely moves the needle.
Either way, keep a copy of a known-good kernel, driver and module before you update anything. NVIDIA has every reason to close this, and a future driver could close it in a way a rollback can't undo. I archived mine before writing this.
Key Takeaways
- BF16 matrix math gained 61-64% per card at 350 W and 28-40% at 250 W, with bit-identical output.
- Qwen3.8-27B prefill gained 21-34% at 250 W and 37-54% at 350 W; single-stream decode moved 0-3% at 350 W.
- 250 W gave the cheapest output token on the dense models; 350 W cost 15-65% more per output token for 22-50% more prefill.
- LTX-2.5 clips rendered 18-23% faster on 19-25% less GPU energy, and H3 chains 15-17% faster, with every frame and audio track identical to stock.
- All costs count GPU rail power only, and most cells ran once.
Sources: my own benchmark runs (2026-11-08 to 2026-11-09); gpu-unlock repository, PR #252 (GA10x direct mode)