powered by TechFeed
表示モード
Deep Dive

NvidiaがGeForceに課していたAI演算の速度制限をソフトウェアで解除するModが登場 — RTX 3090のBF16性能が約80%向上、ゲームへの影響はほぼなし

10月27日、TechSpotが「Modders unlock hidden AI power on Nvidia RTX 20-, 30-, and 40-series GPUs, nearly doubling some benchmarks」と題した記事を公開した。NvidiaはGeForce向けGPUのAI演算性能をスペックシートに明記した上で意図的に制限しており、その制限をVBIOSの書き換えなしにソフトウェアだけで解除するオープンソースのModが登場した。RTX 3090ではBF16スループットが約80%向上し、一方でゲーム性能にはほぼ影響がないという。自宅でAIを動かすユーザーにとって注目に値する動きだ。

10月27日、TechSpotが「Modders unlock hidden AI power on Nvidia RTX 20-, 30-, and 40-series GPUs, nearly doubling some benchmarks」と題した記事を公開した。NvidiaはGeForce向けGPUのAI演算性能をスペックシートに明記した上で意図的に制限しており、その制限をVBIOSの書き換えなしにソフトウェアだけで解除するオープンソースのModが登場した。RTX 3090ではBF16スループットが約80%向上し、一方でゲーム性能にはほぼ影響がないという。自宅でAIを動かすユーザーにとって注目に値する動きだ。


GeForceカードに意図的に課された「速度制限」

RTX 3090はその24GBのVRAMから、自宅でAIモデルを動かすための定番カードとなっている。ワークステーション向けカードと比較して安価にまとまるためだ。ただし、Nvidiaが自社スペックシートに明記している制限がある。

GeForceカードでは、テンソルコア(行列演算に特化した専用ユニット)がFP16・BF16の積和演算をFP32精度で累積する「FP32-accumulate」モードで、FP16-accumulateモードの半分の速度しか出ない。ここでFP16・BF16とは16ビット浮動小数点形式のことで、AIのトレーニング・推論で広く使われる数値フォーマットだ。BF16(Brain Float 16)はGoogleが開発したフォーマットで、FP16より広いダイナミックレンジを持ち、近年の大規模モデルで特に多用されている。「accumulate(累積)」とは積和演算の足し合わせ部分の精度を指し、FP32で行うと精度は上がるが速度が落ちる。

このFP32-accumulateモードはAIのトレーニングや推論で標準的に使われるため、GeForceユーザーは同じシリコンを搭載しながら本来の性能を引き出せない状況にある。同じシリコンを使うワークステーション向けカード(RTX A6000など)ではこの制限が存在せず、フルスピードで動作する。Nvidiaとしては製品ラインの差別化を維持するための意図的な施策とみられる。


VBIOSの書き換えなしに制限を解除する仕組み

最初の解決策を公開したのはGitHubユーザーのZagittaで、RTX 30シリーズ向けに「gpu-unlock」を公開した。Linuxカーネルモジュールとして動作し、Nvidiaドライバのロード前に2つの速度設定レジスタを書き換えてカードをリセットする。その後は通常のNvidiaドライバが動作するため、VBIOSの書き換えやドライバのパッチは不要だ。

450W制限のRTX 3090 Tiでの計測結果は以下の通りだ。

  • BF16スループット: 87.5 → 157.4 TFLOPS(約80%向上)
  • TF32: ほぼ2倍
  • FP16: 約35%向上

RTX 40・20シリーズへの移植

この成果を受け、他の開発者が残り2世代への移植を進めた。

RTX 40シリーズ向けの「gpu-unlock-ada」では、RTX 4090のFP16命令発行レートが165.6 → 331.6 TFLOPSへ倍増した。ただしこれはテンソルコアが命令を発行できる理論上の上限値であり、実際のワークロードでの性能向上とは異なる点に注意が必要だ。READMEにも明記されている通り、独立した検証では実測で12〜34%の向上にとどまる。

この乖離が生じる理由は、AI演算の実スループットはテンソルコアの命令発行レートだけで決まらないためだ。メモリ帯域(データをGPUコアに供給する速さ)やレイテンシ隠蔽(演算待ち時間をどれだけ別の処理で埋められるか)など、複数のボトルネックが絡み合う。命令発行レートが倍になっても、データ供給が追いつかなければ実効性能の伸びは限定的になる。RTX 30シリーズで大きな向上が得られたのは、もともとこの制限がより深刻なボトルネックになっていたためとみられる。

RTX 20シリーズ(Turingアーキテクチャ)向けの「turing-unlock」は、RTX 2080 Tiを対象とし、22GBメモリ改造済みカードで検証された。なお、この改造カードはVRAM容量が標準の11GBから拡張されたものであり、テンソルコアのロジック自体は標準のRTX 2080 Tiと同一のため、演算性能の向上は標準カードでも同様に期待できると考えられるが、手元のカードへの適用可否は自身の環境で確認が必要だ。行列サイズに応じてFP16行列演算が36〜64%高速化する。TuringはBF16のハードウェアサポートを持たないため、BF16の恩恵はない。


効果があるワークロード・ないワークロード

効果が出やすい用途と出にくい用途は明確だ。

  • 恩恵が大きい: 画像生成、ファインチューニング(どちらもFP32-accumulate演算に大きく依存する)
  • 限定的な恩恵: プロンプト処理(14〜36%高速化と報告されている)
  • ほぼ変化なし: ゲーム(この種の演算をほとんど使わない)、チャットボットのトークン生成速度(メモリ帯域がボトルネックであり、演算性能ではない)

チャットボットのトークン生成でほぼ変化がない点は直感に反するかもしれないが、LLMの推論においてトークンを1つずつ生成するフェーズは、テンソルコアの演算速度よりもGPUメモリからモデルの重みを読み出す帯域がボトルネックになることが多い。そのため、演算性能が上がっても体感速度はほとんど変わらないという結果は理にかなっている。


安全性とプラットフォームの制約

Zagittaはハードウェアへの損傷リスクは非常に低いとしており、カードの通常のサーマルスロットリングや電力管理はそのまま維持されると説明している。一方でturing-unlockのREADMEはより慎重な立場で、テンソルコアはフル稼働時に大量の電力を消費するため、ハードウェアを損傷させる可能性があると警告している。

プラットフォームのサポートは現在、ほぼLinux限定だ。一部の実験的なWindowsポートも存在するが、特定のハードウェアでの検証にとどまっている。


詳細はModders unlock hidden AI power on Nvidia RTX 20-, 30-, and 40-series GPUs, nearly doubling some benchmarksを参照していただきたい。