エヌビディアのGPUカーネルモジュールのオープンソース化--「Linux」への影響を考える

AI要約

LinuxユーザーはNVIDIAを長年にわたり憎んできたが、NVIDIAがついにGPUドライバーコードをオープンソース化した。

NVIDIAのオープンソース化は2022年のR515ドライバーリリースを皮切りに始まり、2022年のR560ドライバーリリースで完了する予定。

ただし、古いGPUは引き続きプロプライエタリードライバーを使用する必要があり、完全なオープンソース移行はまだ先になる。

エヌビディアのGPUカーネルモジュールのオープンソース化--「Linux」への影響を考える

 いつからなのか思い出そうという気にならないほど長い間、「Linux」ユーザーは世界有数のグラフィックスプロセッシングユニット(GPU)企業であるNVIDIAを憎んできた。なぜかというと、他のすべての企業が自社のドライバーをオープンソース化した後も、NVIDIAは長年にわたりそれを拒否したからだ。また、Linuxカーネル開発者に対し、オープンソースドライバーの構築に必要なデータを提供しなかったため、Linuxユーザーは品質の劣るプロプライエタリーなドライバーを使い続けるしかなかった。そのNVIDIAがついに、自社のGPUドライバーコードをオープンソース化した。

 「憎んできた」と書いたが、それほど強い言葉を使ったつもりはない。有名なインタビューで、いら立ちを募らせたLinus Torvalds氏は次のように語っている。「これまで関わってきたハードウェアメーカーの中で、NVIDIAが最も問題の多い企業の1社である、と公の場で指摘できることを嬉しく思う。それは非常に悲しいことだ。NVIDIAはチップを、大量のチップを『Android』市場に売り込もうとしているのだから。NVIDIAは、これまで付き合った中で最悪の企業だ。(中指を立てて)NVIDIAよ、くたばれ」

 2022年の出来事も忘れてはならない。ランサムウェアグループLapsus$がNVIDIAに対して、「『Windows』『macOS』、Linux向けのGPUドライバーを未来永劫、完全にオープンソース化(そしてFOSSライセンスの下で配布)」するよう要求し、拒否すればNVIDIAのGPUファイルを流出させると脅迫した。これは、ランサムウェアとしては異例の要求だった。

 その要求は通らなかったが、NVIDIAは時価総額が3兆ドルに迫る中で、オープンソースのGPUカーネルモジュールへと完全に移行しつつある。これは、同社の長年にわたる(率直に言って誤った)方針が大きく変化したことを示している。

 この移行が始まったのは、2022年5月の「R515」ドライバーのリリースからだ。このドライバーには、一連のLinux GPUカーネルモジュールが、GPLとMITのデュアルライセンスによるオープンソースとして含まれていた。当初、このリリースで対象としていたのはデータセンターのコンピューティングGPUであり、「GeForce」とワークステーション向けのGPUはアルファ版だった。

 NVIDIAは過去2年間で、これらのオープンソースモジュールの改善に懸命に取り組んでおり、アプリケーションパフォーマンスは同社のクローズドソース製品と同等か、それ以上になっている。同社は以下のような重要な新機能も追加した。

ヘテロジニアスメモリー管理(HMM)のサポート

コンフィデンシャルコンピューティング

NVIDIAの「Grace」プラットフォームのコヒーレントメモリーアーキテクチャーのサポート

 これらの機能は、ゲームパフォーマンスを最大限に引き出すうえで大きな効果があるわけではないが、仮想通貨(暗号資産)マイナーや人工知能(AI)開発者の役に立つ可能性はある。

 次期「R560」ドライバーのリリースによって、NVIDIAはオープンソースのGPUカーネルモジュールへの移行を完了する。この動きはLinuxコミュニティーにとって利益となり、Linuxとの統合の改善が実現し、コミュニティーによる開発とサポートの強化が可能になるものと期待されている。

 しかし、この移行がNVIDIAのすべてのGPUに適用されるわけではない、という点に注意してほしい。オープンソースモジュールは、「NVIDIA Grace Hopper」や「NVIDIA Blackwell」などの最先端プラットフォームで必須となっている。NVIDIAは、「Turing」「Ampere」「Ada Lovelace」「Hopper」アーキテクチャーのGPUに関して、オープンソースモジュールへの切り替えを推奨している。「Maxwell」「Pascal」「Volta」アーキテクチャーの古いGPUは、オープンソースモジュールと互換性がないため、今後もプロプライエタリーなドライバーを使用する。

 自分のコンピューターにどのGPCが搭載されているか確認できない場合は、NVIDIAが提供しているシェルスクリプト「nvidia-driver-assistant」が役立つ。GPUを確認できたら、Linuxディストリビューションのパッケージマネージャーを使用して、「CUDA Toolkit」と適切なGPUドライバーをインストールしよう。

 NVIDIAのこの動きは、Linuxのユーザーと開発者にとって、よりオープンなエコシステムの構築に向けた一歩だ。また、NVIDIAはAMDとの競争で優位に立つことになる。AMDは長年にわたり、オープンソースへの友好的なアプローチがLinux分野で知られている。

 大きな進展ではあるが、NVIDIAのオープンソースへの移行は現在のところ、カーネルモジュールに限定されているという点に留意したい。ドライバーのユーザースペースコンポーネントは依然としてプロプライエタリーであるため、特にゲーミングアプリケーションに関しては、オープンソースへの完全移行はまだしばらく先になるだろう。

 テクノロジーコミュニティーがこのニュースを読み解いていく中で、これをきっかけにNVIDIAでオープンソース慣行に向けたさらに幅広い移行が始まり、Linuxユーザーにとっての互換性とパフォーマンスの向上につながってほしいと、多くの人が願っている。

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。