nv-uefi-unlocker README

The project's README from github.com/physicsdolphin/nv-uefi-unlocker. As one markdown file: README.md.

nv-uefi-unlocker 之 老黄刀法回退器

中文 | English

你的 GeForce 正以半速跑 AI——这个工具在驱动加载前把它修复。

“震惊!老黄刀法还能被回退???”

version GeForce platform license stars

GTX 16 + RTX 20 + RTX 30 + RTX 40 系列通用的 UEFI 预驱动 NVIDIA GPU 解锁工具

解开 NVIDIA 显卡的 Tensor 计算性能限制。从 U 盘启动,解锁后自动进入 Windows 或 Linux 或任意操作系统,无需刷写 VBIOS;断电后恢复原状。

观看项目宣传片 ↗ 官方视频:工具概览 ↗ · 完整实操走录 ↗

实测 FP16 / BF16 / TF32 张量吞吐最高约 2.6× · FP8 最高约 1.9× · 图像 / 视频生成 +14–75% · DirectML 推理算子最高 +94% · LLM 推理 prefill 最高 +19%(decode +5%)· 无 VBIOS 刷写,断电即复原(逐卡数据见兼容性矩阵;增益受功耗墙与精度路径制约——LLM 行为双卡 MoE 实测,非微基准外推)

理论解锁上限天梯图

理论解锁上限天梯图(FP16 · 桌面卡)——打开可交互版:FP32/TF32/FP16/BF16/FP8 五个精度页签、含 20/30/40 系桌面+笔记本全量、可切换显示出厂现值;?k=fp8 直达指定精度。理论标尺与上方实测数字口径不同,见理论提升分析。

兼容性速览

系列 支持情况
GTX 16 · Turing 理论兼容,欢迎实机验证
RTX 20 · Turing 全系兼容;部分型号有已知问题,见完整矩阵
RTX 30 · Ampere GA10x 全系兼容,支持笔记本与台式
RTX 40 · Ada 全系兼容,支持笔记本与台式
Pascal 及更早 / GA100 / RTX 50 不支持

社区成功反馈与复现

以下 硬件型号 / 形态分组 用于大家直观查找自己的卡名字有没有成功先例(因为你第一时间可能不知道里面的pci id或者芯片代号!!!) 来源自视频评论区,部分选自社区验证汇总;评论区部分是观众报告,因为他们可能受相关限制无法访问github,我们帮助收集了他们的结果分享。同一型号多条报告时取信息量最大的一条。现行支持与已知限制仍以全量兼容性矩阵为准。

表中分别注明前后实测、只有解锁后截图和文字自述。基准算力增幅不等于实际应用增幅;同时超频或改变功耗条件的报告单独标注。

硬件型号 / 形态 社区报告的结果与条件 来源
RTX 2050 Laptop 4GB EFI 全链通过且 Windows ssdiag 判 UNLOCKED(PLM 全开、SS 覆盖值在效);初步 PyTorch 峰值 FP16 25.13 / BF16 25.33 TFLOPS,尚无严格锁定态 A/B #142
RTX 2060 12GB 修复后通过;六轮单变量与 PROM 离线分析把 staging 钉在 4 GiB 边界(未给性能数值) #89
RTX 2060 Super 8GB 全链通过:FWSEC → WPR2 → BOOT_DIRECT → PLM 开启 → SS0/SS1 读回;签名还原、Windows 交棒正常 #12
RTX 2070 Laptop 8GB v2.1.3 通过;首个 Turing 笔记本成功记录,跨芯片同签名推动 >4G 分配修复(未给性能数值) #16
RTX 2070 8GB(开发者自测) 全链通过(FWSEC → BOOT_DIRECT booter → PLM 全开 → SS0/SS1 读回);FP32 累加 GEMM 36 → 60–63 TFLOPS(+67~75%),需 GSP 模式前置 最终结果
RTX 2080 8GB v2.1.8 修复后通过;报告者以 8 轮单变量和与成功机逐位 diff 定位 0x91(未给性能数值) #62
RTX 2080 Super 8GB 0x91 修复后复测通过:46 → 68 TFLOPS(+47.8%);该修复链的首个成功验证 #14
RTX 2080 Ti 同卡精确 A/B:FP16(FP32 累加)持续 58.70 → 94.97 TFLOPS(+62%),每时钟 ×1.80,60 s 浸泡 0 停顿、无 TDR/WHEA;FP32/INT8/带宽不变(300 W 墙、GSP 开启)。另有原厂 11GB 在 Linux 专有驱动下 60.31 → 89.57 TFLOPS 的跨平台全链记录;H3 收益不明显 #125 · #103 · S41
RTX 2080 Ti 22GB 改卡 自述最后一次尝试成功;未给性能对比 S33
RTX 3060 12GB FP16 25.37 → 45.79 TFLOPS;Anima 生图 1.20 → 1.94 it/s S30 · 截图
RTX 3060 Ti LHR v2.1.0 全链通过:PLM 0xffffff8f → 0xffffffff 翻转读回(约 149 ms)、SS0/SS1 读回、Windows 交棒正常;跨厂刷映众冰龙 VBIOS(未给性能数值) #11
RTX 3070 8GB(台式机) USB 引导解锁成功、diag 确认且生成时间 −50%;机器休眠(S4)后 diag 显示 not_unlocked、生成时间回落。同型号另一份 v0.2.0 记录为 EFI 全链 + FLR 后选择器保留、但进 Windows 不保留 Discussion #129 · #54
RTX 3070 Laptop 8GB FP16 42.05 → 82.06 TFLOPS;150W VBIOS + 超频环境 S12 · 截图
RTX 3070 Ti Laptop WMMA FP16 45.51 → 88.84 TFLOPS;cuBLAS FP16 基本不变 S36
RTX 3080 10GB 系统侧 UNLOCKED;FP16 53.91 → 84.60 TFLOPS S28 · 截图
RTX 3080 12G LHR ComfyUI 视频生成 800 秒 → 不足 500 秒(ID 未注明) 社区汇编
RTX 3080 20G BF16 GEMM 65 → 110–113(三次跑 110.11/113.01/113.19,功耗锁 275 W);模型常驻显存场景 qwen2.1 BF16 193.7 → 92.9 秒、krea2pornV4 42 → 31.5 秒 社区汇编
RTX 3080 Laptop 自述成功,BF16 约 +33%;无前后绝对值 S18
RTX 3080 Ti Laptop v2.1.0 成功自述;另一报告 BF16 45 → 72 TFLOPS,另有超频 S04 · S09
RTX 3080 Ti 20G(同德原生) 解锁成功;设备 ID/VBIOS 待回传(同德原生不等于 ES,可能为修卡或 ES 散片,未给性能数值) 社区汇编
RTX 3080 Ti(形态未说明) 截图 FP16 73.9 → 123.2,单位未标;FP32 对照基本不变 S48 · 截图
RTX 3090 Qwen-Image2.1 Turbo BF16 每图接近 60 秒 → 22 秒(前值为约数) S49
RTX 3090 20GB OEM(本人标注) FP16 77.36 → 115.20 TFLOPS;本人另报睡眠唤醒后失效 S46 · 截图
RTX 3090 Ti H3 INT8 工作流同 418.5W,单条总耗时 123.47 → 108.08 秒 S25 · 截图
RTX 4050 Laptop 6GB 成功自述;仅解锁后 FP16 39.15 TFLOPS,另有超频设置 S34 · 截图
RTX 4060 Laptop 截图 FP16/FP32 累加 31.12 → 54.33(单位未标);另有生图反馈 S01 · S16 · S42 · 截图
RTX 4060 Ti 8GB 首个 8GB 2803 数据点:读回通过(PLM 开、SS0/SS1、READOUT_1=0);cuBLAS 4096³ 中位 FP16 45.59 → 77.36(+69.7%)、BF16 45.64 → 77.74(+70.3%)、TF32 20.06 → 41.91(+108.9%),FP32 对照为噪声 PR #87
RTX 4060 Ti 16GB 两位观众报告成功及生图变快;含华硕 B550M 平台 S05 · S50
RTX 4060 8GB(形态未说明) MOSS Image 1024×1536、30 步,约 240 → 200 秒 S31
RTX 4070 Laptop FP16 N=4096:33.296 → 64.005 TFLOPS;另有成功自述 S21 · S39 · 截图
RTX 4070 台式机 FP16 61.99 → 76.32–87.82 TFLOPS(150W/200W 条件);生图 35 → 27 秒 S13 · 截图
RTX 4070(形态未说明) Pony 1024²:11.1 → 9.0 秒;Wan2.2 5B / 49 帧:96 → 78.2 秒 S44
RTX 4070M 魔改卡 AD106 / 10de:2820;自述更新后成功,FP16 40 → 70(单位未标) S02
RTX 4070 SUPER 桥 BME 修复后 replay/unlock 通过,marker、SS0/SS1、FLR 后出口读回正确;cuBLAS 8192 七次中位 FP16→FP32 累加 70.5 → 100.1、BF16 71.0 → 107.0、TF32 35.5 → 48.4,FP16 累加与 FP32 SIMT 对照基本不变(220 W) #3
RTX 4070 Ti(华硕 TUF OC) 本地修改版 v2.1.9 全链读回通过(POST-FLR verified、HANDOFF-OUT 全对);cuBLAS 8192³:FP16 80.35 → 137.97(1.72×)、BF16 80.44 → 144.13(1.79×),FP32 对照 1.01× Discussion #140
RTX 4070 Ti SUPER 含系统侧 UNLOCKED 截图;57.00 → 150.93 TFLOPS 的报告同时超频 S07 · S10 · S23 · S51 · 截图
RTX 4080 Laptop 自述 FP16 约 57 → 80 TFLOPS S08
RTX 4080 16GB 冷启动一次通过:WPR2 → marker → PLM 翻转 → 四写 → 选择器读回 → FLR 后 AON 存活 → bootmgfw 交棒;两次独立 A/B FP16 4096³ 100.53 → 185.50/185.24(1.85×)、BF16 4096³ 100.37 → 192.18/189.44(1.91×),FP32 对照不变(340 W 上限) #53 · Discussion #72
RTX 4080 SUPER 成功自述、约 1.85×;未提供应用耗时 S24
RTX 4080 SUPER 32GB 改卡 含 TRX40 双卡;BF16 107.1 → 191.1,prefill +16.4%/+19.1%、decode +5.5% S11 · S32 · S43 · 待补测上下文
RTX 4090 截图 TF32 79.4 → 148.5(单位未标);本人另报 MOSS BF16 约 +15%–20% S40 · S45 · 截图
RTX 4090 Laptop(配置截图标注) 后续自述可用;型号来自本人附的 AI 配置识别图,无性能对比 S38
RTX 5060 Ti 16GB(作为显示主卡) Blackwell 2d04 无资产家族映射,双卡机中被安全跳过、系统正常(副卡 4060 Ti 全链通过);不能算 5060 Ti 自身的解锁。自 #168 起 ssdiag / diag-unlock / EFI SAMPLE 会记录其 FEAT 块与熔丝(只读;门为 PL3-only,3/3 写入被丢),机理与探索现状见 docs/blackwell-gb20x-status.md #56 · #168
GTX 1080 Ti(负控) 同机三张均被正确跳过;Pascal 不属于解锁对象 #69
Tesla V100-SXM2-16GB(负控) 双卡机经 tx-select-bdf.txt 排除,目标卡正常解锁 Discussion #140
Quadro P600(显示副卡) X99 无核显双卡形态中作显示副卡,被正确跳过零写入(负控);目标 3060 12GB 正常解锁 Discussion #131
Quadro RTX 5000 报告者列为后续计划,尚无实测结果 S01

复现截图示例

点击图片查看来源与测试条件。完整图集:15 位观众的 22 张图片及说明 · 来源与 SHA-256 索引。

RTX 3060 12GB
RTX 3060 12GB community report
原图、来源与条件
RTX 3080 10GB / UNLOCKED
RTX 3080 10GB / UNLOCKED community report
原图、来源与条件
RTX 4060 Laptop
RTX 4060 Laptop community report
原图、来源与条件
RTX 4070 Laptop
RTX 4070 Laptop community report
原图、来源与条件

实战案例

兼容矩阵之外,这几个已闭环的案例展示了本工具背后的工程深度——每个都附完整日志与证据链:

逐精度理论提升(简单分类口径;机理推导、三代 SM 架构图与 stressor 工具对账见理论提升依据):

精度档 执行单元 出货钳制(RTX 20–40) 理论上限
FP16 · BF16 · TF32(FP32 累加张量路径) 二~四代张量核 半速出货 2×
FP8(E4M3/E5M2) 四代张量核(SM89+) 半速出货 2×
FP16(FP16acc)/ INT8 / INT16 / INT32 / FP32 / FP64 张量核 / CUDA 核 / FP64 核 无(出厂全速) 1×

实际倍数受功耗墙、显存带宽与逐 die 分箱制约(典型 1.5–2×,同频归一化贴近 2×);CMP 矿卡例外(÷32 全路钳制,上限 32×)。

完整兼容性矩阵与逐卡实测(含 4090M 2757 / Alienware m18 R1 约 2 倍) · 常见问题

开始使用

1. 获取工具并检查前置条件

从 Releases 下载并解压发布包。发布包不附带 NVIDIA 固件,制盘脚本会自动下载指定版本并校验、生成所需文件。

准备一个 FAT32 U 盘,先备份其中的文件。目标机器须使用 UEFI 启动,关闭 Secure Boot,或为 EFI 自签并信任证书。笔记本优先使用独显直连,从系统选择“重启”后进入一次性启动菜单。

Turing 用户先在目标 Windows 的管理员 PowerShell 运行一次,再重启:

.\enable-turing-unlock.ps1

重启后确认 GSP 固件已运行,再制作 U 盘。Linux Turing 目标同样需要 GSP-RM;详见 GSP 前置说明。Linux 用户还应检查 RTD3,避免进入系统后掉电丢失解锁。

2. 制作启动 U 盘

在目标机(要解锁的机器)的解压目录直接运行:脚本自动识别本机显卡代际,只生成并下载对应固件。

Windows PowerShell:

.\make-usbroot.ps1

Linux / WSL / Git Bash:

bash make-usbroot.sh

在另一台机器上制作时显式指定代际:40 系 -Family 40,30 系 30,20 / 16 系 20。-Family all 把三代固件全部打进同一张 U 盘(一条命令即可服务多种卡)。

Windows 需要 PowerShell 5+;Linux 版需要 glibc ≥ 2.34(如 Ubuntu 22.04+ / Debian 12+)。首次生成需要联网,下载或校验失败时先处理错误,不要换固件版本。

生成的文件位于本地 usbroot/,其中已含 EFI/BOOT/BOOTX64.EFI。把 usbroot/ 的内容复制到 U 盘根目录即可(不要连目录一起拷成 U:\usbroot\)。其余抽取中间文件不需要复制。

U 盘(FAT32)
├── EFI/BOOT/BOOTX64.EFI
└── 固件文件(脚本末尾列出的 .bin 文件)

保留脚本生成的 v67-*.bin 解锁文件。完整文件清单与用途。

替换已有 EFI/BOOT/BOOTX64.EFI 前先备份。不要复制到系统 ESP,也不需要调整永久启动顺序。完整文件用途、异机制盘、多卡选择和其他选项见 USB 文件与选项。

3. 启动并验证

  1. 从固件的一次性启动菜单选择 U 盘。
  2. 版本屏按 空格或回车运行;其他键或 30 秒不操作会中止事务并交回系统引导器。目标 GPU 暂时黑屏或冻结末帧属正常现象。
  3. 等待工具完成并自动链回系统,日志在 U 盘根目录 loader.log。
  4. Windows 下用发布包的 ssdiag-x86_64-windows.exe 检查系统内状态,并用相同负载比较解锁前后的性能。Linux 可在源码仓库运行 sudo python3 tools/diag-unlock.py。详见 验证与修复。每次冷启动需要重放。

选了 U 盘一闪回到启动菜单(或直接进系统)、盘上没有 loader.log,说明 EFI 根本没被执行——此时也没有任何写入;多数是缺 EFI/BOOT/BOOTX64.EFI 或 Secure Boot 还开着,按 无法启动排查逐条核对。

遇到 STOP、异常或黑屏卡死,同会话不要重试;完全断电后拔 U 盘,走原系统引导,再按 恢复说明检查。

解锁日志全绿、Windows 却起不来(0xc000009a 恢复屏)?机制与已默认的修复见 交棒前的低位内存。

EFI 事务成功、进系统却没有解锁?提 issue 前先看 为什么解锁过的卡一进系统又被锁回去——多数是平台侧的复位或掉电事件,不是驱动在反制;那一节有判据、该抄日志的哪几行、以及还能做什么。

让 Agent 帮忙部署:部署指南。可以直接把下面这句话交给它:

请根据 https://github.com/physicsdolphin/nv-uefi-unlocker/blob/main/AGENTS.deploy.md ,帮我安装 nv-uefi-unlocker,为我的显卡解锁。

自行构建(可选)

使用发布包可跳过本节。需要 Rust 工具链;Windows 选择 MSVC 版本。在仓库根目录运行:

rustup target add x86_64-unknown-uefi
cargo build --release
cargo efi-tx

EFI 程序生成在 target/x86_64-unknown-uefi/release/loader.efi。用以下命令制作启动文件(40 系示例;30 系改 -Family 30,20 / 16 系改 -Family 20):

.\release\make-usbroot.ps1 -Family 40 -AssetsExe .\target\release\assets.exe -BootEfi .\target\x86_64-unknown-uefi\release\loader.efi
bash release/make-usbroot.sh --family 40 \
  --assets ./target/release/assets \
  --boot-efi ./target/x86_64-unknown-uefi/release/loader.efi

之后按上面的布局复制到 U 盘。只读诊断、测试与开发说明。

与 nvoc 配合

本工具解除 Tensor 计算性能限制;nvoc 在系统内提供功耗、电压和超频控制,两者可以叠加。

  1. 先完成本工具的解锁,在系统内确认状态并记录基准。
  2. 按 nvoc 文档选择适用于显卡的控制方式。kmd 功耗墙解锁在移动端可用,10/20 系桌面卡的效果尚待验证;set-volt-rail-limit 的电压墙控制适用于 10 系及之后 GPU。
  3. 用 cli-stressor-cuda-rs 在相同负载下对比,监控功耗、Hot Spot 和限频原因。

组合后功耗和温度可能大幅超过原厂包络,需自行确认散热与供电余量。组合测试结果与风险说明。

关于作者与团队

作者是一名长期硬件超频与显卡改装爱好者,经手超频魔改维修运维的 NVIDIA 显卡累计超过 数百 块(含大量矿卡与魔改卡),多年从事笔记本、桌面计算机、服务器运维、硬件维修、UEFI BIOS魔改逆向、硬件安全调试;

本项目是与同学一起进行的学生兴趣研究。正因如此,工具的每个写路径 都按"读回验证 + 证据归档"纪律设计,失败场景的恢复手段见 安全约束与实现边界。

本项目的开发过程使用了 AI 编程助手。与所有代码相同,AI 产出不享受任何 默认信任:事务代码是上游 GPL-2.0 实现的行为级移植,须先通过行为级模拟器 全绿、再经实机读回验证才进入发布——这条规则对人类与 AI 写的每一行代码 一视同仁。

参考资料与仓库

本项目是社区工作的直接受益者与衍生者,完整致谢见 docs/credits.md(按仓库历史中的实际作用核对归类)。

两处单独点名(完整名单见 credits.md §6):

开发期实际研读与引用的仓库已 clone 至本地 reference/(不入库),按作用分组:

事务链母本与一手权威

Turing 谱系与定址(0x4096xx FEAT 块)

同类 Windows/UEFI 先行工作

寄存器/熔丝侧线

逆向工具链

许可:GPL-2.0-only(LICENSE)。NVIDIA 固件与 VBIOS 版权归 NVIDIA,按其 原许可条款从钉版公开包本地再生,不在本仓库分发。

Star History

Star History Chart

nv-uefi-unlocker (physicsdolphin/nv-uefi-unlocker)

bootloader
Searching Database…

What is this?A pre-boot UEFI tool that lifts the Tensor compute limit on NVIDIA RTX 20, 30 and 40 cards. It boots from a USB stick, unlocks the card, then continues into Windows, Linux or another system, without flashing the VBIOS.
Is it a driver, a patch, or a firmware flash?None of those. It is a pre-driver UEFI loader that runs from a USB stick before the OS starts, then hands boot back to the normal system.
How do I get it running?Download the release package, run the USB-creation script on the target machine (it detects your GPU generation and fetches the matching firmware), then copy the contents of usbroot/ to a FAT32 stick. Boot the target from its one-time boot menu, pick the stick, press space at the version screen, and wait until it chains back to the system. Verify with ssdiag on Windows or tools/diag-unlock.py on Linux. Replay the unlock after every cold boot.
What do I need before starting?UEFI boot with Secure Boot turned off, or an EFI binary self-signed and trusted. Turing cards need a one-time admin PowerShell step and a reboot on Windows, and GSP firmware must be running before you build the stick. Windows needs PowerShell 5+, the Linux version needs glibc 2.34+, and building from source needs a Rust toolchain.
What can go wrong?The unlock is lost after power loss or sleep, so it has to be replayed on each cold boot. If a run hits a STOP, an error or a black screen, do not retry in the same session. Fully power off, unplug the stick, and boot the original system. Gains also depend on power limits and precision path, so results vary.
Do I need Windows or Linux to run it?Not to unlock: the stick runs before any OS loads. The USB-creation script runs on Windows PowerShell or on Linux, WSL or Git Bash, and the card then boots into Windows, Linux or any other EFI-bootable system.
Does it need internet access?Only when you generate the USB. The script downloads and verifies the NVIDIA firmware for your GPU generation, and if that fails you should fix the error rather than swap firmware versions. The unlock itself runs from the stick.
Which GPUs are supported?RTX 20, 30 and 40 series are supported, with laptops and desktops listed for 30 and 40. Some RTX 20 models have known issues, so check the full compatibility matrix. GTX 16 is listed as theoretically compatible and still needs hardware reports. Pascal and older, GA100 and RTX 50 are not supported.
Does it work on laptops too?Yes, RTX 30 and 40 series are listed as fully compatible for both laptops and desktops. There are also laptop reports for RTX 20, such as an RTX 2070 Laptop 8GB that passed.
How much faster does it get?Measured FP16, BF16 and TF32 tensor throughput rises up to about 2.6x and FP8 up to about 1.9x. Image or video generation improves by 14 to 75 percent, and LLM prefill by up to 19 percent (decode about 5 percent). Gains depend on power limits and precision path.
Why did the author build this?It is a student interest research project by an overclocking and GPU modding enthusiast. It was built with AI coding assistance, and every write step is checked by reading the value back and archiving the evidence.
Can I undo it?Yes. Nothing is flashed to the VBIOS, so cutting power restores the stock state. Sleep or other power events can drop the unlock, so you replay it on the next cold boot.
Size
17.2 MB
Stars
1.7K
Age
9d
Commits · 90 Days