行业动态 › 正文
2026-10-26本地实测 · 硬件调优这是一份完整技术记录:开源项目 gpu-unlock v1.0.0 在另一台自有主机(i9-12900H 笔记本 + 外置 RTX 3090,Ubuntu 26.04)上的实施、验证与边界。三组 A-B 测下来结论很清楚——稠密 BF16 矩阵乘实测 108.3 TFLOPS(原厂上限约 77.5,+40%),而 27B 量化 GGUF 推理的 prefill +0.6%、挖矿算力 129.5 → 129.5 TH/s 一动不动。解锁是真的,收益只落在一条精度路径上。
本文所有数字都来自本机命令输出,没有估算、没有转述替代实测。被解锁对象是 gpu-unlock v1.0.0(GitHub 用户 Zagitta,GPL-2.0-only,2026-10-18 发布),它移除的是 NVIDIA 在 GeForce Ampere 显卡上对「FP16/BF16 输入 + FP32 累加」Tensor Core 运算的指令发射速率限制。主机与工具链如下:
gpu-unlock 既不是 UEFI 应用,也不是打补丁的驱动,而是一个在 initramfs 阶段、NVIDIA 专有驱动绑定显卡之前执行的 Linux 内核模块。它的动作分三步:
这三个动作决定了它的三个特性:不刷 vBIOS(因此不存在砖机风险,也没有「反刷」流程)、不跟着驱动版本重新打补丁(驱动升级不失效)、只管一次启动(内核命令行里没有参数就没有解锁)。
支持范围按设备 ID 放行 GA102 / GA103 / GA104 / GA106 的 GeForce 卡,专业 A 系列与数据中心卡被显式拒绝。上游除 RTX 3090 与 3090 Ti 之外没有实测过其他 GA102 板卡,GA104 一张都没有实测过——所以任何单个成功案例都不能外推到别的型号。
| 时间 | 步骤 | 结果 |
|---|---|---|
| 10-25 20:30 | 拉取源码、按当前内核编译模块 | 编译通过(gcc 15.2.0,无源码改动) |
| 10-25 20:32 | 下载 pinned 输入(NVIDIA 源码 + CachyOS nvidia-utils) | 10.7 秒,SHA-256 全部校验通过 |
| 10-25 20:35 | 生成固件载荷 | 4.0 秒,5 个文件,make test 5/5 通过 |
| 10-25 20:39 | 采集原厂基线(llama.cpp + 挖矿) | pp512 1239.86 / pp2048 1250.51 t/s |
| 10-26 08:42 | 首次安装(--trial) | 踩坑:initramfs 里 0 条 gpu_unlock |
| 10-26 08:43 | 补装 dracut drop-in 后重装 | initramfs 内 7 条(模块 + 5 个固件) |
| 10-26 08:44 | 写入一次性 grub 入口并 arm | next_entry=gpu-unlock trial |
| 10-26 08:58:45 | 关机 → 开机(冷启动) | 启动正常,未黑屏、未卡启动 |
| 10-26 08:58:48 | 内核日志出现 gpu_unlock: unlocked | 解锁成功 |
| 10-26 09:00 | 稠密 GEMM / llama.cpp / 挖矿 三组 A-B | 见第五、六节 |
| 10-26 09:04 | 参数固化进 /etc/default/grub | 后续启动自动生效 |
产物一侧也留了账:gsp_ga10x.bin 84,277,400 B(由 CachyOS 包内原样提取)、booter_load_ga102.bin 61,256 B、gsp_boot_ga102.bin 24,576 B、gsp_boot_desc_ga102.bin 84 B、生成的 V67 签名镜像 v67-ga102-610.43.03.bin 64,000 B,以及 DKMS 编译后 zstd 压缩的 gpu_unlock.ko 35,414 B。固件生成器的 SHA-256 写在 manifest 里,make test 的 5 个用例分别校验打包路径、版本一致性、PKGBUILD 与 manifest 一致、V67 载荷哈希、发布组件清单——全部通过,说明生成的载荷与上游钉住的参考镜像逐字节一致。
仓库给的是 initramfs-tools 的 drop-in(/usr/share/initramfs-tools/modules.d/),但本机 update-initramfs 实际调用 dracut。第一次安装「成功」,镜像里 gpu_unlock 条目数为 0——装是装完了,但完全不会生效。补装仓库自带的 dracut 配置(force_drivers+=" gpu_unlock ")后重新生成,镜像内出现 7 条:内核模块 + 5 个固件文件 + 目录项,这才算装进去了。
这个坑的教训只有一句:装完必须打开 initramfs 看内容,不能用安装脚本的退出码当证据。
图 1 是三组 GEMM 的关系:本次实测落在原厂上限与社区最好成绩之间。
| 精度 | 本次实测 单位 TFLOPS | 3090 原厂上限 | 社区解锁最好成绩 | 相对原厂 |
|---|---|---|---|---|
| fp16 | 108.7 | ~77.5 | 129.6 | +40% |
| bf16 | 108.3 | ~77.5 | 129.6 | +40% |
| tf32 | 59.6 | ~40.2 | 69.8 | +48% |
单次迭代 10.12 ms(fp16)、10.15 ms(bf16)。实测核心只跑到约 1920 MHz、温度 59 °C——不是温度问题,是 350 W 的功率预算问题。
解锁发生在启动第 3 秒,本次启动共 17 行 gpu_unlock 记录。关键三行:
gpu_unlock: FWSEC geometry: image_off=0x4289c size=0xe200 imem=0xda00 … ucode=9 signatures=3 versions=0x7 bytes=1152gpu_unlock: FWSEC signature selection: versions=0x7 fuse_version=2 sig_bytes=384pci 0000:02:00.0: gpu_unlock: unlocked内核会同时打上 taint 标记(loading out-of-tree module taints kernel、module verification failed)——因为 Secure Boot 关闭、模块也没有登记进 MOK,这是预期行为,不代表加载失败。启动后 lspci -nnk -s 02:00.0 仍显示 Kernel driver in use: nvidia,说明复位后原版驱动正常接管。
下表 llama.cpp 三行为同一模型 Qwen3.8-27B-Uncensored-Q5_K_M(-ngl 99);tg128 受 810 MHz 显存锁影响,原厂态未测。
| 测试项 | 解锁前 | 解锁后 | 变化 |
|---|---|---|---|
| pp512 | 1239.86 ± 22.87 t/s | 1225.72 ± 68.83 t/s | −1.1% 噪声内 |
| pp2048 | 1250.51 ± 2.22 t/s | 1258.08 ± 1.01 t/s | +0.6% |
| tg128 | 未测 | 37.40 ± 0.11 t/s | 新增参考值 |
| PRL 算力 pearlhash | 129.5 TH/s | 129.5 TH/s | 0 |
| 拒绝份额 | 0 | 0 | 0 |
| 挖矿功耗 | 249 W | 244 W | −5 W |
为什么一点没涨:量化 GGUF 推理里,Q5_K 这类权重的矩阵乘在 ggml 里走的是 int8 量化 + dp4a 类整数累加,权重照样要按字节从显存流一遍;被解锁的「FP16/BF16 输入 × FP32 累加」这条路径根本没被调用,所以解锁与它无关,解码(tg)本来就受显存带宽约束,更不会动。Pearl 挖矿的 pearlhash 是纯矩阵乘,但走整数 GEMM,INT8 tensor 速率在原厂 3090 上没有被人为砍半,SS0/SS1 对它无效。实测结果与理论判断完全吻合。
| 负载类型 | 代表场景 | 受益 | 依据与幅度 |
|---|---|---|---|
| 稠密 BF16 图像生成 | ComfyUI / SDXL / Flux | 是 | 社区实测 +47%~59% |
| 稠密 BF16/FP16 训练、微调 | LoRA、BF16 全参 | 是 | 本次 8192³ GEMM 实测,接近 +40% |
| TF32 稠密 GEMM | 科学计算、部分训练框架 | 是 | 本次实测 +48% |
| 量化 GGUF 推理 | llama.cpp Q4/Q5/Q8 | 否 | 本次 A-B 实测 pp/tg 全平 |
| 整数 GEMM 负载 | PRL / pearlhash | 否 | 本次 A-B 实测零变化 |
| 解码 / token 生成 | 所有自回归推理 | 否 带宽瓶颈 | 本次 tg128 = 37.4 t/s |
| 游戏 / DLSS 帧数 | —— | 无证据 | 上游至今无独立帧数验证 |
同一张表在传闻层面上还有四个必须提前否掉的期待:不是翻倍(只有被解锁的那一条精度路径提速,理论上限 2 倍,实测受功耗墙限制远达不到);不会有 48 GB 显存(24 GB 是 24 颗 1 GB GDDR6X 物理决定的);不存在「解锁 FP8」(Ampere 没有 FP8 硬件单元,没有可解锁对象);不会提升显存带宽(控制器与位宽决定,与本次寄存器无关)。判断标准很简单:被限的是「发射速率」(同一批单元跑得更慢),这类才可能软件解开;「单元本身不存在」或「带宽/容量不够」,任何工具都改不了。
journalctl -k -b | grep "gpu_unlock: unlocked"。nvidia-smi 里没有任何字段反映这个状态,/proc/cmdline 看着对也不代表生效。sudo bash ~/gpu-unlock/rollback-gpu-unlock.sh 会删掉 grub 自定义入口、移除命令行参数、dkms remove 模块、删除固件与 initramfs drop-in,然后重建 initramfs 与 grub;回滚后需冷启动一次才回到原厂行为。这类硬件层面的寄存器解锁,值不值得做,只取决于一个问题——你的主负载走不走浮点稠密 GEMM:
数据来源:本机命令输出(torch 2.13.0+cu130 的 8192³ 稠密 GEMM、llama.cpp CUDA build d59d455fd 的 llm-bench A-B、PeakMiner 2.19.2 同矿池同钱包 A-B、journalctl -k -b 与 lspci 输出,2026-10-25 至 10-26);工具与支持范围引自上游 Zagitta/gpu-unlock 仓库(GPL-2.0-only,v1.0.0,2026-10-18)README 与 issue 区;原厂上限与社区成绩引自上游 README、Notebookcheck(2026-10-24)、Wccftech(2026-10-24)与 TechPowerUp 报道。所有数字均来自本机命令输出,无估算、无转述替代实测;结果只代表该台机器该次冷启动,不可外推到其他板卡。本文为自有设备实测记录,不评判任何企业与产品,不构成投资建议。
[3090 解锁 A-B 实录:BF16 从 77.5 到 108.3 TFLOPS,pp2048 只动 0.6%](https://javis.org.cn/news-2026-10-26-rtx3090-unlock-gemm-ab.html)(机悟 JAVIS,2026-10-26)选一条最费人的流程,看看现有设备能跑什么、要补什么、怎么验——提交后 1 个工作日内联系您;也可以直接加下方企业微信,对接更快。
工作人员将在 1 个工作日内与您联系。急事请直接扫码加企业微信,备注「单位 + 需求」。
加企业微信更快对接