概要
GPU unlock 1.0.0 は、Nvidia 3000シリーズのGeForceカードで FP/BF16命令発行速度 をプロ向けモデルと同等に引き上げるLinuxカーネルモジュール。 UEFIやドライバ改変を不要 とし、公式ドライバの更新にも強い設計。 GEMM性能が最大2倍近く向上 し、LLM・ディフュージョンなどの用途で大幅な速度改善。 導入は カーネルコマンドライン編集とmake install のみで完了。 サスペンド・再開時にも自動で再アンロック し、複数GPU環境にも対応。
GPU unlock 1.0.0:Nvidia 3000シリーズGeForceカードのFP/BF16命令高速化
- FP/BF16命令発行速度 をプロフェッショナルモデル(A6000等)相当にアンロックするLinuxカーネルモジュール
- CMP unlockerのV67/PLM技術 と UEFIアプローチの事前タイミング を組み合わせた手法
- UEFIアプリケーションやNVIDIAドライバのパッチ不要、カーネル初期化時にアンロックを実行
- 速度セレクタ(SS0/SS1)書き込み と FLR(Function Level Reset) を自動実施
- 公式NVIDIAドライバのバージョンアップに強い、毎回パッチ作業不要
性能向上の具体例(3090 Ti, 450W, 8192³ GEMM, FP32集約時)
- FP16: 87.46 → 118.39 TFLOPS
- BF16: 87.50 → 157.41 TFLOPS
- TF32: 42.58 → 82.61 TFLOPS
対応カードと報告例
- GA102 RTX 3090 Ti: +68–80%向上
- GA102 RTX 3090: +25–67%向上
- GA104 RTX 3070: +73–81%向上
- GA106 RTX 3060: 約+80%向上
- 複数カード構成、VMパススルーにも対応
利点・影響範囲
- GEMM性能(行列演算)を大幅改善、特にLLMプリフィル・FlashAttention・ディフュージョン用途で効果大
- LLMデコードやINT8演算など、メモリ帯域依存の処理は変化なし
- 出力のビット一致 (アンロック前後で計算結果は同一)
インストール手順
git clone https://github.com/Zagitta/gpu-unlock
cd gpu-unlock && make install
カーネルコマンドライン にgpu_unlock.targets=allを追記(GRUB, systemd-boot, Fedora等で編集方法あり)
- 例: GRUB (Debian/Ubuntu): /etc/default/grubのGRUB_CMDLINE_LINUX_DEFAULTに追加、sudo update-grub
make install コマンドで自動的にディストリビューションを判別し、依存関係の解決とパッケージインストールを実行
ローカルビルド やパッケージ生成にも対応(Arch, Debian, RPM系)
起動フローとオプトイン方式
- initramfs内でgpu_unlockをロード し、nvidiaドライバがバインドする前にアンロックを実行
- MODULES順序 (mkinitcpio等)により、ディスプレイカードのブラックアウト時間を最小化
- カーネルコマンドラインで対象GPU指定可能 (例: gpu_unlock.targets=0000:21:00.0)
- 既にバインド済み/電源オフのカードはスキップ
- サスペンドからの復帰時も自動で再アンロック (resume=0で無効化可)
アンロック状態の確認・解除
- journalctl -k -b | grep gpu_unlock でログ確認
- lspci -nnk -s [PCIアドレス] でカード情報確認
- gpu_unlock.targets= をコマンドラインから外すことでアンロック解除
- パッケージ削除でモジュール・設定も削除
ライセンス・注意事項
- カーネルモジュール・ローカルパッケージはGPL-2.0-only
- NVIDIAファームウェアは独自ライセンス下で配布
- 詳細はfirmware/NOTICE.mdやlicenses/を参照
サポート・寄付先
- 開発者支援リンク: https://buymeacoffee.com/zagitta
- ETH, BTC, SOLアドレス 記載
注意:本モジュールの導入・利用は自己責任。NVIDIA公式サポート外となるため、十分な検証とバックアップを推奨。
自分で試してみたけど、結果は本物だよ。これ、すごい!ちょっとリスクはあるけどね(ファームウェアを利用するから)。 > 残念ながら、Nvidiaのブータは古典的なバッファオーバーフローに脆弱で、スタックに直接書き込むことができるから、Return Oriented Programming(ROP)を使ってコードを実行できるんだ。RTX 4090と4070 Ti Super用のリポジトリはこちら: https://github.com/JustAResearcher/gpu-unlock-ada