數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 今天 11:51:11

Service
天使
註冊日期: 2007-07-15
文章數: 349
目前積分 :   0 

gpu-unlock|一把鑰匙,開不了所有 AI?RTX 3060 解鎖實測

RTX 3060 解鎖實測:張量快八成,出圖快 1.55 倍

上一篇我們整理了 gpu-unlock 的原理(算力解鎖了,AI 卻沒變快?),當時文中特別註明「我們未進行實測」。這次我們實際在一張 RTX 3060 上裝起來,用同一支腳本、同樣的設定,解鎖前後各量一次,看看它到底能讓哪些工作變快、哪些完全不變,以及要付出什麼代價。

順便也試了作者剛推出、要讓 Turing(RTX 20 系列)也能解鎖的修正版,結果沒成功,一併把過程記錄下來。

https://digiland.tw/uploads/3_20261102_115520_gpu-unlock_rtx3060.jpg

■ 先講結論

  • 解鎖確實有效:RTX 3060 的 FP16/BF16/TF32 矩陣運算快了 77–81%,FP32 不變。四種格式的計算結果逐位元相同。
  • 沒到 2 倍,是因為先撞到功耗上限:解鎖後一跑就頂到 170 W,核心時脈從約 1,940 MHz 降到約 1,750–1,800 MHz。
  • 實際工作看用的是哪種運算:BF16 的 Z-Image 出圖每張從 18.4 秒降到 11.9 秒(1.55 倍);INT8 的 Qwen-Image 完全不變;在 12GB 卡上跑 125B 的 Strata,讀提示詞也不變。
  • 同一個 seed,解鎖前後的圖會不一樣:構圖相同、細節不同。需要「同 seed 重現同一張圖」的流程要注意。
  • RTX 2060(Turing)還解不開:作者的修正分支通過了原本卡住的檢查,但下一步逾時失敗,而且失敗後那張卡當次開機無法使用。
  • 可以完全還原:拿掉開機參數、完全關機再開機就恢復原廠狀態,我們實測確認過。


  • ---

    ◆ 01 測試平台與方法

    https://www.digiland.tw/uploads/3_20261029_143552_07_spec_card.png

  • 所有測試都用同一支腳本:先重啟 ComfyUI 清空快取與顯存,依序跑矩陣運算、出圖、Strata,全程每 0.5 秒記錄功耗、時脈、溫度。解鎖前後只差輸出資料夾名稱。
  • 矩陣運算:8192³ 矩陣乘法,暖機後 5 輪 × 20 次取中位數;FP16/BF16 強制以 FP32 累加,這正是 GeForce 被限速的路徑。每種格式都記錄輸出的 SHA-256,用來比對解鎖前後結果是否相同。
  • 出圖:同提示詞、1024×1024,每張用不同的 seed(ComfyUI 會快取同一個 seed 的結果,同 seed 重跑只要 0.1 秒,量到的時間沒有意義),解鎖前後用同一組 seed。
  • 功耗上限維持原廠 170 W,沒有超頻或調整任何設定。


  • ---

    ◆ 02 解鎖過程

    依 README 的步驟:下載原始碼、make install 編譯並安裝 DKMS 模組與韌體套件,再在開機參數加上 gpu_unlock.targets=0000:01:00.0(只指定這張 3060),完全關機再開機。

  • Ubuntu 26.04 的陷阱已修好:社群曾回報 26.04 的 update-initramfs 其實是 dracut,套件裝了但模組沒進開機映像,「解鎖完成卻沒加速」(#149)。我們用的 2.0 版已自帶 dracut 設定,用 lsinitrd 檢查確認模組有在開機映像裡。
  • 開機日誌可以直接看到解鎖:速度選擇器從原廠的 ss0=0x62425004 變成全速的 ss0=0x88888888,最後一行是 gpu_unlock: unlocked,接著 NVIDIA 驅動正常載入。
  • 建議用冷開機:作者建議完全關機,不要只用重開機。我們每次都是完全關機後再開。


  • ---

    ◆ 03 矩陣運算:快了約八成

    https://www.digiland.tw/uploads/3_20261029_143552_02_matmul.png
    格式解鎖前(TFLOPS)解鎖後(TFLOPS)提升輸出
    FP16(FP32 累加)27.2848.42+77%逐位元相同
    BF16(FP32 累加)27.2649.46+81%逐位元相同
    TF3213.6424.25+78%逐位元相同
    FP32(對照組)9.589.65不變逐位元相同
  • 張量核心的三種格式都快了八成左右,一般的 FP32 運算不受影響,和 README 的說法一致。
  • 解鎖前我們在同一次開機中量了兩次,四種格式的差距都在 1.5% 以內,所以這八成不是量測誤差。


  • ---

    ◆ 04 實際工作:看用的是哪種運算

    https://www.digiland.tw/uploads/3_20261029_143553_03_workloads.png
    工作解鎖前解鎖後變化
    Z-Image Turbo 出圖(BF16,1024²,8 步)18.42 秒/張11.89 秒/張快 1.55 倍
    Qwen-Image 2.1 出圖(INT8,1024²,25 步)28.07 秒/張27.80 秒/張不變
    Strata 125B 讀 4K 提示詞(IQ2_XS)100.9 tok/s100.6 tok/s不變
  • BF16 出圖直接受益:Z-Image 的運算大多是 BF16 矩陣,解鎖後每張省下 6.5 秒。
  • INT8 不受影響:README 也把 INT8 列為不變,我們的實測一致。
  • Strata 讀提示詞也不變:在 12GB 的卡上跑 125B 的模型,大部分專家權重放在系統記憶體,讀提示詞的時間花在把權重搬上顯卡,不是運算本身。運算變快也沒有用武之地。這也是上一篇提到的觀念:先找出瓶頸在哪,再看加速。
  • Strata 的生成速度受 MTP 猜中率影響,解鎖前後都在每秒 47–95 個 token 之間跳動,分辨不出差異,所以沒有列入比較。


  • ---

    ◆ 05 同一個 seed,解鎖前後的圖不一樣

    https://www.digiland.tw/uploads/3_20261029_143554_05_image_compare.png

    這是這次最意外的發現。README 寫著輸出逐位元相同,我們的矩陣測試也確實如此;但換到完整的出圖流程,Z-Image 同一個 seed 解鎖前後出來的圖,構圖一樣,人物位置、招牌文字等細節卻不同(PSNR 24.2 dB,98% 的像素有差異)。

  • 對照組 Qwen-Image(INT8)前後 3 張完全相同,可見 ComfyUI 本身是可重現的。
  • 我們推測,解鎖後 BF16 路徑的計算方式有所改變,擴散模型再把細微的數值差異逐步放大,但這點我們還沒有證實。
  • 影響:如果你的工作流程需要「用舊的 seed 重現同一張圖」,解鎖前後的 seed 不能互通。


  • ---

    ◆ 06 功耗與時脈:更快,但先撞到上限

    https://www.digiland.tw/uploads/3_20261029_143554_04_power_clock.png

    滿載期間(GPU 使用率 95% 以上)的中位數,功耗從 160 W 升到 169 W,已經貼著 170 W 的上限;核心時脈從 1,920 MHz 降到 1,792 MHz。每個時脈做的張量運算變成兩倍,時脈降一點,換來約八成的淨增益。溫度最高 76 → 77 °C,幾乎不變:功耗被上限壓住,發熱量也就差不多。

    ---

    ◆ 07 RTX 2060(Turing):還解不開

    https://www.digiland.tw/uploads/3_20261029_143555_06_turing_2060.png

    README 把 RTX 20 系列列為「實驗性」,社群回報幾乎都失敗。作者確認這是 Turing 全系列的問題,並推出修正分支(#242)。我們用同一台機器的 RTX 2060 測了這個分支:

  • 修正有效的部分:原本卡住的檢查(GSP 回報 HALTED,#248 回報的 error -19)通過了。
  • 但下一步 FWSEC 執行逾時(error -110),解鎖失敗。
  • 失敗的代價:模組失敗後沒有釋放顯卡資源,NVIDIA 驅動抓不到這張 2060,當次開機無法使用。系統本身和另一張 3060 都正常,拿掉開機參數、冷開機後就恢復。
  • 2060 解鎖前的基準:FP16(FP32 累加)26.1 TFLOPS、FP32 5.8 TFLOPS。等作者後續更新,我們會再測一次。
  • RTX 2080 Ti 同樣是 Turing,在修好之前不建議嘗試。


  • ---

    ◆ 08 動手前要知道的事

    https://www.digiland.tw/uploads/3_20261029_143555_08_cautions.png

  • 只支援 Linux:解鎖要在開機時、NVIDIA 驅動接手之前完成,不是進入桌面後載入模組就行。
  • Secure Boot:DKMS 會用本機的金鑰幫模組簽章;開著 Secure Boot 的話,要先把這把金鑰(MOK)註冊好,模組才能載入。
  • 核心標記(tainted):載入核心以外的模組會讓核心被標記為 tainted,不影響運作,但日後回報核心問題時可能不被受理。我們這台的 NVIDIA 驅動原本就有同樣的標記,裝 gpu-unlock 並沒有增加新的標記。
  • 解鎖失敗的代價:那張卡當次開機不能用(2060 實測),系統與其他卡不受影響。
  • 還原方式:從開機參數拿掉 gpu_unlock.targets、完全關機再開機即恢復;要完全移除再解除安裝兩個套件。我們拿掉 3060 的參數、冷開機後量測,回到 27.5 TFLOPS,和解鎖前一致;最後也完整移除套件、冷開機確認兩張卡都正常。


  • ---

    ◆ 09 我們的看法

    gpu-unlock 確實把 GeForce 被限住的張量核心解開了,RTX 3060 的矩陣運算快了八成,BF16 出圖快 1.55 倍,效果很實在。但它只對「卡在 FP16/BF16/TF32 運算」的工作有用:INT8 模型、記憶體或傳輸受限的工作(像在小顯存上跑大模型)完全不會變快。

    另外兩點值得留意:同一個 seed 解鎖前後的圖不一樣;以及解鎖失敗時,那張卡當次開機無法使用。如果你主要用 BF16 模型出圖、訓練或微調,而且用 Linux,值得一試;如果主要是跑量化的語言模型聊天,先量出時間花在哪裡,可能會發現這把鑰匙開的不是你卡住的那扇門。

    ■ 參考連結
  • gpu-unlock(本文使用 2.0 版,commit 7eb51bc):https://github.com/Zagitta/gpu-unlock
  • Ubuntu 26.04 模組沒進開機映像的回報 #149:https://github.com/Zagitta/gpu-unlock/issues/149
  • Turing 修正分支討論 #242:https://github.com/Zagitta/gpu-unlock/issues/242
  • RTX 2060 解鎖失敗回報 #248:https://github.com/Zagitta/gpu-unlock/issues/248
  • Strata(本文 LLM 測試使用的推論引擎):https://github.com/Niko1221/Strata

  • ■ 同系列文章
  • 原理篇:算力解鎖了,AI 卻沒變快?看懂 gpu-unlock 的真正用途:https://www.digiland.tw/viewtopic.php?id=3518
  • RTX 3060 12GB+32GB RAM 跑 Strata 125B:https://www.digiland.tw/viewtopic.php?id=3519


  • (圖表與原始數據都是我們自行量測整理,歡迎討論或指正。)



    NVIDIA DGX SPARK

    離線

     

    相關討論主題

    友情連結

    論壇頁尾

    Powered by PunBB
    © Copyright 2018 Rickard Andersson
    RSS Feed