開發者 Zagitta 在 GitHub 上釋出的開源專案 gpu-unlock,一週左右累積了約 8100 個星標、850 多個 fork。它做的事情很具體:解除 GeForce RTX 30 系列顯示卡在 FP16/BF16 Tensor Core 指令上的速率限制,既不刷寫 VBIOS,也不修改輝達驅動程式。
GeForce 版 Ampere 顯示卡在「半精度輸入、FP32 累加」這類矩陣乘法指令上只以一半速率運行,gpu-unlock 的目標是把這條指令的發射速率加倍,涵蓋 GA102、GA103、GA104、GA106 四顆核心。
運作原理
gpu-unlock 是一個 Linux 核心模組,作者形容它結合了 CMP 礦卡解鎖器的 V67/PLM 技術,以及先前 UEFI 方案「在驅動程式載入前動手」的時機。模組會在輝達驅動程式接管顯示卡之前完成解鎖,寫入速度選擇器,再執行一次功能層級重置(FLR)。
這樣做的好處是維護成本低。它既不是 UEFI 程式,也不是打過補丁的驅動程式,輝達每推出一版新驅動,使用者不必再重新打一次補丁。
作者提供的 RTX 3090 Ti 測試條件為 8192³ 稠密 GEMM、450 W 功耗、FP32 累加,取五次取樣的中位數:
| 輸入精度 | 解鎖前 | 解鎖後 |
|---|---|---|
| FP16 | 87.46 TFLOPS | 118.39 TFLOPS |
| BF16 | 87.50 TFLOPS | 157.41 TFLOPS |
| TF32 | 42.58 TFLOPS | 82.61 TFLOPS |
使用者回報的 BF16 提升幅度因卡而異:RTX 3070 為 73% 到 81%,3080 10GB 為 70% 到 73%,3060 12GB 約 80%,3090 介於 25% 到 67%,最低值來自一張功耗上限 225 W 的顯示卡。這些數字來自各回報者自己的基準測試,不能直接橫向比較。
落到實際負載上
矩陣運算密集的環節會明顯變快,大型語言模型推論的預填充階段據報提升 14% 到 36%,擴散模型與 FlashAttention 也能受益。大型語言模型的逐詞生成受記憶體頻寬限制,INT8 負載走的則是另一條路徑,這兩類基本上不變。比對過輸出的使用者回報,解鎖前後的運算結果逐位元一致。
因此「算力增八成」主要是理論峰值。日常執行本地大型語言模型聊天,體感最明顯的是長提示詞讀入更快,出字速度變化不大。至於遊戲幀率是否受影響,目前沒有獨立測試。
對中國二手卡玩家而言
在中國的本地部署圈子裡,二手 3090 和記憶體改裝的 3080 20GB 一直是高性價比的選擇。專案的相容表中就有一列「RTX 3080 20 GB(記憶體改裝)」,回報提升 56% 到 59%,顯示改裝卡也能享受這次解鎖。
門檻在作業系統。模組目前僅支援 Linux,提供 Arch、Debian/Ubuntu、Fedora 系的安裝套件,必須在核心開機參數中明確啟用;開機後再手動載入無效。Windows 使用者只能參考社群的 UEFI 移植版,例如 3070 Ti 目前只在那條路線上驗證過。
作者列出的限制也不少:
- 睡眠至記憶體後會重新解鎖,多花約 1 秒,不支援休眠;
- 解鎖重置時,接著螢幕的顯示卡會短暫黑屏;
- 個別顯示卡的韌體停不下來時,須先斷電再重試;
- OEM 版 3080 Ti 解鎖後 BF16 仍是半速,GA103 尚無回報。
專案以 GPL-2.0 授權開源。改變顯示卡出廠限速是否影響保固,README 並未討論,輝達目前也沒有公開回應,打算在主力機上嘗試的使用者需自行權衡。
參考來源:gpu-unlock 專案 README、香港手機遊戲網 GameApps.hk、CocoLoop;星標與 fork 數量以 GitHub 儲存庫資料核對,TFLOPS 數據及各型號提升區間以 README 基準表核對。