LinuxカーネルモジュールでNvidia RTX 30シリーズGPUのBF16パフォーマンスを解放
新しいオープンソースのLinuxカーネルモジュールにより、コンシューマー向けNvidia RTX 30シリーズカードで完全なBF16およびFP16命令レートが利用可能になり、ローカルLLM推論のスループットが大幅に向上します。
英語の原文から自動翻訳されました。
gpu-unlockという名前のオープンソースLinuxカーネルモジュールにより、コンシューマーグレードのNvidia RTX 30シリーズグラフィックカードが、プロフェッショナルレベルの浮動小数点命令レートで動作するようになりました。2026年10月下旬に開発者Zagittaによってリリースされたこのツールは、公式のNvidiaドライバが制御を引き継ぐ前に、オペレーティングシステムが特定のGPUアーキテクチャを初期化する方法を修正します。本プロジェクトは、ハードウェアのアップグレードなしでより高い計算スループットを求める、ローカル大規模言語モデルを実行しているエンジニアや研究者を対象としています。
何が起きたか
gpu-unlockプロジェクトは、以前のCMPアンロッカーの手法と、通常UEFIアプリケーション用に予約されている初期段階の初期化手法を組み合わせています。プロプライエタリなNvidiaドライバのパッチ適用や、ドライバ更新ごとに破綻する複雑なファームウェア変更を要求する代わりに、このソリューションはスタンドアロンのカーネルモジュールとして動作します。Linux initramfs内でGPU初期化プロセスをインターセプトし、標準的なNvidiaドライバがカードにバインドする前に、ハードウェアレジスタに特定の速度セレクタを適用します。このアプローチにより、更新後も修正されていない公式Nvidiaドライバとの互換性が保証されます。
ユーザーからの報告では、現代のAI推論タスクの中核であるマトリックス負荷の高いワークロードにおいて、 substantial な性能向上が確認されています。RTX 3090 Tiでは、密な一般行列積(GEMM)ベンチマークで、BF16スループットが87.50 TFLOPSから157.41 TFLOPSへと急上昇しました。RTX 3080、3090、3070、3060モデルでも同様の向上が見られ、電力制限や具体的なチップバリエーションに応じて、BF16 GEMMのゲインは約25%から80%以上まで幅があります。このモジュールは、これらのコンシューマーカードに見られるGA102、GA103、GA104、GA106チップアーキテクチャを特にターゲットとしています。
性能向上はすべてのAI操作で一様ではありません。LLMプリフィルフェーズ、拡散モデル、FlashAttention実装では14%から36%の高速化が見られますが、LLMデコードフェーズは計算スループットではなくメモリ帯域幅に制限されるため、ほとんど変化しません。INT8ワークロードにも有意な改善は見られません。重要な点として、アンロック前後でモデル出力を比較したユーザーはビット単位で同一の結果を報告しており、性能向上は近似計算によるものではなく、以前は制限されていたハードウェア機能の利用によるものであることが確認されました。
仕組み
コアメカニズムは、システムブートとドライバ読み込みの間の短いウィンドウ中に、GPUの速度セレクタレジスタに特定の値を書き込むことです。モジュールはSS0レジスタに0x88888888を書き込んで完全なBF16レートを選択し、IMLA4用に4ビットのSS1レジスタに0x8を書き込みます。その後、これらの設定を適用するためにFunction Level Reset (FLR)を実行します。initramfsステージでこのシーケンスを実行することで、プロプライエタリなNvidiaドライバが独自の状態を初期化する前に、ハードウェアが構成されることが保証されます。このタイミングは決定的です。なぜなら、一度ドライバがデバイスにバインドすると、これらの低レベルレジスタは通常ロックされるか、ベンダーソフトウェアによって独占的に管理されるからです。
インストールには、モジュールをLinuxカーネルコマンドラインに追加し、initramfsイメージを再構築する必要があります。このツールは、依存関係解決とパッケージ作成を処理する自動ビルドスクリプトを通じて、Arch、Debian、Ubuntu、Fedora、RHELなどの主要ディストリビューションをサポートしています。ユーザーは、ターゲットPCIアドレスを指定するか、カーネルパラメータでallフラグを使用することで、明示的にオプトインする必要があります。モジュールには、すでに他のドライバにバインドされているか電源オフになっているカードをスキップするための安全チェックが含まれており、RAMへのサスペンドサイクルも、カードが電源を失った場合に再開時にアンロックを再適用することで処理します。
主要な詳細
- サポートハードウェア: GA102、GA104、GA106チップに基づくGeForce RTX 3090 Ti、3090、3080 (10GB/20GB)、3070、3060 (12GB)。
- 性能ゲイン: BF16 GEMMスループットが25〜80%増加し、LLMプリフィル速度が14〜36%向上。
- ドライバ互換性: 修正されていない公式Nvidiaドライバで動作。ドライバパッチ適用は不要。
- インストール方法: Nvidiaドライバがバインドする前に、initramfs経由でロードされるLinuxカーネルモジュール。
- 安全性: 出力はビット単位で同一のまま。モジュールは既にバインド済みまたはサポート外のカードを自動的にスキップ。
- 制限事項: LLMデコード(メモリバウンド)やINT8ワークロードでの性能向上なし。ハイバーネーションはサポートされていません。
なぜ重要なのか
ローカルAIモデルを開発・実行する開発者にとって、ハードウェアコストは主要な制約です。コンシューマーGPUはプロフェッショナルデータセンターカードよりも価格対性能比が大幅に優れていますが、メーカーは市場セグメンテーションのために特定の精度モードを人工的に制限することがよくあります。このモジュールは、Linuxユーザーにとってこれらの人工的な障壁を効果的に取り除き、愛好家や小規模チームが既存のハードウェアからより多くの価値を引き出せるようにします。RTX 3090でBF16スループットを倍増させる能力は、特定のトレーニングおよび推論タスクにおいて、その計算能力をはるかに高価なプロフェッショナル同等品に近づけます。
この技術的アプローチは、コミュニティ主導のツールがクローズドソースドライバとどのように相互作用できるかについても先例を作ります。ベンダードライバが読み込まれる前にカーネルレベルで動作することにより、このモジュールはプロプライエタリバイナリのリバースエンジニアリングやパッチ適用に伴う法的およびメンテナンス上の頭痛を回避します。これは、ユーザーがコミュニティパッチの追いつきを待たずに、最新のドライバセキュリティパッチと機能の恩恵を受けられることを意味します。システム安定性とサポート性を維持しながら、ハードウェア愛好家が有用性を最大化するための持続可能な道を証明しています。
あなたができること
- プロジェクトドキュメントに記載されているサポート対象のGA102、GA103、GA104、またはGA106アーキテクチャにGPUモデルが一致することを確認してください。
- リポジトリをクローンし、
make installを実行して、お使いのLinuxディストリビューションにモジュールをビルド・インストールしてください。 - カーネルコマンドライン設定ファイル(例:
/etc/default/grub)にgpu_unlock.targets=allを追加してください。 - お使いのディストリビューションに適したコマンド(例:
sudo update-grubまたはsudo mkinitcpio -P)を使用してinitramfsを再構築してください。 - システムを再起動し、
journalctl -k -b | grep gpu_unlockを確認して、アンロックが正常に適用されたことを検証してください。 - 特定のLLMまたはAIワークロードをベンチマークし、プリフィルおよびトレーニング時間の実際の改善を測定してください。



