GPU Unlock 解锁 RTX 30 系:3090 Ti BF16 算力提升 80%

一句话结论:GPU Unlock 用一个 Linux 内核模块解除英伟达对消费级安培卡 FP16/BF16 张量核心指令发射速率的人为限制,RTX 3090 Ti 的 BF16 稠密矩阵乘法吞吐从 87.50 TFLOPS 提升到 157.41 TFLOPS,官方仓库已积累 5652 个 star、604 个 fork,用户实测覆盖 7 款显卡。

10 月 25 日上午,开源项目 GPU Unlock 在 GitHub 上公开了针对英伟达安培架构消费级显卡的解锁方案。作者是开发者 Zagitta,仓库创建于 10 月 18 日,四天内 star 数冲过 5600。这个项目做的事情很具体:把 RTX 30 系列上被厂商限制的张量核心指令发射速率放开,让 FP16/BF16 混合精度计算跑回硬件本身具备的吞吐能力。

这件事的 SEO 价值在于,它落在一类长期存在的搜索需求上。本地跑大模型、做扩散模型图像生成的用户,手里往往是一张二手 3090 或 3080 Ti,这些卡在专业卡面前长期被认为算力打折。用户真正会搜的问题是:RTX 3090 能解锁吗、怎么解锁、到底提升多少、哪些型号有效、装上会不会变砖。项目把这些问题一次性给出了可验证的答案。

GPU Unlock 解除的到底是什么限制

被解除的这项限制叫指令发射速率限制。在使用 FP32 累加的 FP16/BF16 张量核心运算中,消费级安培卡的实际运行速率明显低于同代专业卡。GPU Unlock 把这项速率放开,等于让显卡用回硬件本身具备的计算能力。

项目仓库的描述写得很直白:解锁 FP/BF16 指令发射速率到专业卡等价水平,效果是让 FP/BF16 FMA 指令进入 FP32 累加的发射速度翻倍。实现上,它是早期内核模块,既非 UEFI 应用,也非打过补丁的英伟达驱动。模块把解锁逻辑与 UEFI 方案的前置时序结合起来,在原版驱动绑定显卡之前写入速度选择寄存器并执行一次功能级重置,之后原版驱动正常初始化显卡。

写入的两个寄存器值也公开了:SS0 设为 0x88888888,选择完整 BF16 速率;4 位 SS1 设为 0x8,即 IMLA4。技术细节不复杂,难点在时序,必须赶在 nvidia 驱动绑定之前完成,所以只能走内核模块或 UEFI 这两条路。

3090 Ti 的官方基准数据

仓库给出的 3090 Ti 数据来自稠密 8192 立方矩阵乘法测试,功耗上限 450W,五次采样取中位数,全部是 FP32 累加口径。

精度 解锁前 解锁后 增幅
FP16 87.46 TFLOPS 118.39 TFLOPS 约 35%
BF16 87.50 TFLOPS 157.41 TFLOPS 约 80%
TF32 42.58 TFLOPS 82.61 TFLOPS 约 94%

社区用户的独立报告口径略有不同。一位 RTX 3080 Ti 用户在 315W 功耗限制下测得 BF16 吞吐量从 71.59 TFLOPS 提升到 113.98 TFLOPS,TF32 从 35.65 TFLOPS 提升到 65.28 TFLOPS。功耗上限对最终结果影响很大,仓库里最低的 +25% 来自一张被限制在 225W 的卡。

真实 AI 负载下的数字更贴近使用价值。Reddit 上一位 3090 Ti 用户在 ComfyUI 里跑分,MOSS-Image SFT 的 BF16 吞吐量提升 58.6%,Qwen-Image 2.1 Turbo BF16 提升 57.2%,Z-Image Turbo BF16 提升 56.1%。同一批测试里 INT8 精度模式只提升了 0.3%,几乎等于没动。

七款显卡的兼容性现状

模块接受 main.c 中列出的每一个 GeForce ID,但实际报告只覆盖了一部分型号。项目方明确表示不保证每一张卡都能兼容,也不保证都能拿到性能提升。

芯片 显卡 结果 BF16 GEMM 增幅
GA102 RTX 3090 Ti 已解锁 +68% 至 80%
GA102 RTX 3090 已解锁 +25% 至 67%
GA102 RTX 3080 Ti 20GB (OEM) 解锁完成但 BF16 仍在半速 无
GA102 RTX 3080 10GB 已解锁 +70% 至 73%
GA102 RTX 3080 20GB (改显存版) 已解锁 +56% 至 59%
GA104 RTX 3070 已解锁 +73% 至 81%
GA104 RTX 3070 Ti 本模块未测,UEFI 方案在 Windows 上有效 无
GA106 RTX 3060 12GB 已解锁 约 +80%

这些增幅数字来自每个用户自己跑的基准,不同功耗、不同测试脚本,横向并不严格可比。但覆盖广度和方向高度一致,可以作为参考区间。

为什么游戏帧率不一定涨

解锁动的是张量核心算力,不动显存带宽,也不解锁更多 CUDA 核心。至少有一份 RTX 3080 Ti 20GB 的反馈显示解锁流程执行成功,但 BF16 性能没有出现预期提升。

大模型解码环节的瓶颈往往是显存带宽而非张量核心算力,这解释了为什么一组 vLLM 测试中提示词处理与推理吞吐量提升 33%,而词元生成速度基本没变。仓库自己的说明也把这条分得很清楚:矩阵密集型工作会提速,包括大语言模型预填充阶段(+14% 至 36%)、扩散模型与 FlashAttention;大语言模型解码受内存带宽限制,INT8 负载基本不变。

对比输出结果的用户报告称,解锁前后生成内容逐字节相同。仓库还覆盖了多卡场景,包括单机四卡、显示卡本身,以及通过 vfio-pci 直通给虚拟机的卡。

安装路径:改内核命令行,不刷 VBIOS

这条路线最大的优势是不碰 VBIOS,用户升级驱动时不需要重新打补丁。流程是克隆仓库、make install,然后在内核命令行追加 gpu_unlock.targets=all,同时保留原有启动项。

引导方式 操作位置
GRUB (Debian/Ubuntu/Mint) 编辑 /etc/default/grub 的 GRUB_CMDLINE_LINUX_DEFAULT,再执行 sudo update-grub
GRUB (Arch/CachyOS) 同一文件,生成命令改为 sudo grub-mkconfig -o /boot/grub/grub.cfg
Fedora/RHEL sudo grubby –update-kernel=ALL –args=”gpu_unlock.targets=all”
systemd-boot 在引导项的 options 行追加
UKI 写入 /etc/kernel/cmdline 后重新生成启动镜像

targets 参数支持三种写法。gpu_unlock.targets=all 表示解锁所有未绑定的 GA102/GA103/GA104/GA106 卡;也可以写完整 PCI 名,例如 0000:21:00.0,逗号分隔多张卡,地址格式与 lspci -D 输出一致,与显卡编号和显示角色无关。写了非目标芯片的条目会被记录并忽略。

模块默认在 initramfs 阶段加载,早于 nvidia 绑定显卡。mkinitcpio 用户需要在 /etc/mkinitcpio.conf.d/zz-gpu-unlock.conf 里把 gpu_unlock 插到 nvidia 前面,initramfs-tools 与 dracut 各自有对应的 drop-in 路径。显示卡也能工作,固件帧缓冲在解锁步骤运行期间保持,画面从重置那一刻短暂黑屏,直到 nvidia-drm 接管。

挂起再恢复的链路也做了处理。休眠到内存会关闭显卡并重置速度选择寄存器,模块的挂起通知器赶在 nvidia 之前运行,恢复时重新解锁,约增加一秒恢复时间;休眠到待机这种保持供电的场景则无需重复解锁。加 gpu_unlock.resume=0 可以关掉这个行为,休眠到磁盘不在覆盖范围内。

验证方式是两条命令:journalctl -k -b 过滤 gpu_unlock 看内核日志,lspci -nnk 看设备绑定状态。停止解锁只需从内核命令行删掉 gpu_unlock.targets 参数,单次启动也可以在引导器编辑界面临时去掉。移除安装包会同时移除模块和 initramfs 的 drop-in。

对本地 AI 推理意味着什么

把卡用在本地推理和图像生成上的用户,这套方案值得试。BF16 吞吐提升五六成,直接影响的是单位时间能处理多少 token、扩散模型出图快几轮。INT8 路线不受影响,想要 INT8 加速的用户不必折腾。

本地部署的算力账本可以对照站内这篇 DeepSeek 开源推理框架 DeepInfer,GPU 占用减 35%、成本降 28%。显存本身的搬运效率另有路线,站内这篇 Colibrì 用 SSD 当显存跑 744B GLM-5.2,25GB 内存即可推理,走的是省显存而非加算力的思路。单卡跑实时世界模型的例子可以看 VAST 开源 EdenLive,在 RTX 5090 上跑出实时世界模型,提供 5B 与 14B 两个开源版本。

值得留意的是项目与硬件生命周期的关系。英伟达 RTX 5090 美国全面下架,消费旗舰停产背后的 AI 算力争夺战 已经把这层逻辑讲透。二手安培卡的生命周期还在延长,而消费级与专业级之间那道人为速率墙,现在有了绕过办法。

常见问题

GPU Unlock 会解锁显存带宽吗?不会。项目只改写速度选择寄存器,放开的是 FP16/BF16 张量核心的指令发射速率,显存带宽与 CUDA 核心数量都保持原样。这也是游戏帧率提升不明显的原因。

装上会不会损坏显卡?项目走内核模块路线,不刷写 VBIOS,失败时可从内核命令行移除参数恢复。仓库中的报告涉及多卡、显示卡与虚拟机直通场景,未报告硬件损坏。不过官方明确表示不保证每张卡兼容,也不保证都能获得提升,解锁完成但 BF16 仍在半速的案例确实存在。

解锁后大模型生成速度会快多少?预填充阶段实测提升 14% 至 36%,解码阶段基本不变,因为解码受显存带宽限制。想提升生成本身,收益远小于 BF16 矩阵运算密集型任务。

小结

GPU Unlock 把一件过去没人做的事做成了可复现的开源流程:让消费级安培卡的混合精度算力回到硬件本来的水平。3090 Ti 的 BF16 从 87.50 TFLOPS 到 157.41 TFLOPS,七款显卡有实测报告,安装不刷 BIOS,出问题能一句话参数关掉。

对只想玩游戏的人,这个项目的价值有限,跑分好看不等于帧数会涨。对把 30 系卡当作本地推理主力的人,+70% 左右的 BF16 吞吐是一份实打实的算力增量。二手 3090 的价格因此又多了一个参考维度。

相关阅读