UbuntuをNVIDIAとIntelのマルチGPU(デュアルGPU)搭載のPCで使う場合の使用方法を説明します。NVIDIAドライバーのインストールコマンドやバージョンの確認方法、ディスクリートGPU起動の方法も紹介しています。
Windows環境でのNVIDIAとIntelのマルチGPU
Ubuntuと比較するためにまずはWindowsでのNVIDIAの設定についてみてみましょう。
NVIDIAのRTXシリーズはSLI(Scalable Link Interface)やNVLinkの技術によりマルチGPUをサポートしています。BTOのPCなどではNVIDIAのRTXシリーズまたはGTXシリーズとIntelのGPUを搭載しているマルチGPUのPCをよく見かけます。マルチGPUにすることで負荷が分散され、パフォーマンスが向上します。非マルチGPUより高フレームレート、遅延減などの利点があります。
WindowsではNVIDIAドライバーのサポートが充実しています。マルチGPUを制御するのにはOptimus技術が使われています。Optimusはデフォルトではアプリケーションの毎にどちらのGPUを使用するのか自動で選択されて切り替わります。基本的にはIntelのGPUが使われ、高負荷時や高負荷アプリではNVIDIAのGPUが使われます。アプリケーション毎に手動でグラフィック設定を変更することも可能です。ゲームなどではグラフィック設定を適切に行うことで高フレームレート、遅延減が実現します。
Windows用NVIDIA Optimusの3D設定
参考までに以下はNVIDIA Optimusの3D設定になります。デフォルトでは「自動選択」になっていて、その下の設定は全てのアプリに適用されます。ここの設定でゲーム用の高パフォーマンス設定にしてしまうと全てのアプリに適用されて、アプリによってはPCに過度に負荷をかけることになるかもしれません。アプリ毎に設定することで、本来通常のパフォーマンスで機能するのに、無駄に高パフォーマンスで使われるのを避ける事ができます。

このアプリ(モンハンゲーム)の場合は下図の③のGPU選択リストではOptimusによってNVIDIAのGPUが選択されています。デフォルトでは④の設定は前の図のデフォルト設定が適用されているので個別に設定する必要があります。よくわからない謎の項目が並んでいます。

Ubuntu環境でのNVIDIAとIntelのマルチGPU
WindowsでのOptimus機能がわかったところで、本題のUbuntuではどうなっているか見てみましょう。
そもそもなんですが、LinuxOSでのNVIDIAサポートはWindowsと比べるとかなり弱いです。NVIDIAに対応していないOSも数多く存在します。その中でもUbuntuはサポートされている方だと思います。NVIDIA搭載PCでLinuxでゲームしたい場合はUbuntu、Debian、Arch Linuxの3択かなと個人的には思います。
WindowsではOptimus機能が使用されていましたが、LinuxではPrimeという機能を使用しています。Windowsでの3D設定のよくわからない謎の項目は、Linuxではプロファイルを作成することで細かな設定ができます。しかし、Windowsほどサポートされていない事に注意して下さい。また、マルチGPUもサポートされています。
Ubuntu ではデフォルトではIntelのGPUが使われています。手動でNVIDIAのGPUを使用して起動する事も可能です。また、NVIDIAのGPUだけを使うように設定することも可能です。
もしかしたらアプリケーションにより自動で割り当てられているかもしれませんが明確な設定個所はないので不明です。少なくともSteamの場合は、何も設定していなくてもNVIDIAの方が使われている可能性が高いです。
NVIDIAやRadeonなどの外付けGPUをディスクリートGPU(dGPU)といいます。逆にIntelのGPUはオンボードGPUと呼ばれることもあります。ノートの場合は厳密に外付けではなくマザーボードに両方のGPUがくっついているのでオンボードではあるんですが、一般的にノートの場合も「外付けGPU」や「ディスクリートGPU」と呼ばれます。
Linux用のNVIDIAドライバーのバージョン
UbuntuではデフォルトのOSのパッケージにNVIDIAのドライバーは付属しません。個別にインストールする必要があります。
Linux用Linuxのドライバーは「NVIDIA driver」と「NVIDIA server driver」が有り、前者は一般的なPC用で後者はサーバーやワークステーション用になります。
- NVIDIA driver:一般的なPC用
- NVIDIA server driver:サーバーやワークステーション用
執筆現在、以下のバージョンがあります。
- 470
- 535
- 550
- 570
対応するシリーズに合わせてバージョンを指定する必要があります。おそらく550か570に当てはまると思いますが、NVIDIA公式サイトでドライバーの対応バージョンを検索することができます。
GTX1070を検索してみます。

570が推奨されました。リリースされたばかりです。

NVIDIAドライバーのインストールコマンド
NVIDIAドライバーを個別にインストールすることもできますが、そのPCに合ったドライバーを自動でインストールするコマンドがあるのでそちらを使った方が楽かもしれません。
sudo apt update
sudo ubuntu-drivers autoinstall
UbuntuでインストールされているNVIDIAドライバーのバージョンを確認する
①アプリ一覧から「ソフトウェアとアップデート」を実行します。

②「追加のドライバー」タブで確認できます。違うバージョンをインストールしたい場合は他のバージョンを選択するとインストールできます。

UbuntuのNVIDIA X Server Settingsのドライバー設定
別の記事にしましたのでそちらをご覧ください。
ディスクリートGPUで起動する
明示的にディスクリートGPU(NVIDIA GPUを使う)でアプリケーションを起動することができます。コマンドで起動する方法とアプリの右クリックメニューから起動する方法があります。Ubuntuでは右クリックメニューがありますが、軽量Ubuntu系OSではこれはないかもしれません。因みにXubuntuではこれはなかったです。
- 右クリックメニューから起動する
- コマンドから起動する
コマンドでアプリをディスクリートGPU起動する
ターミナルから以下のコマンドでディスクリートGPUで起動することができます。prime対応ドライバーでないと機能しません。
- NV_PRIME_RENDER_OFFLOAD=1:ディスクリートにオフロードを許可する
- GLX_VENDOR_LIBRARY_NAME=nvidia:NVIDIAのGLXライブラリを使用する
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia アプリ名
私の環境では、Steam Proton経由のアプリの場合は上記のコマンドで起動すると画面が黒くなって表示されない場合がありました。その場合はSteamライブラリ→対象アプリのプロパティ→起動オプションに下記を入力し、アプリから起動してください。おそらくSteamの場合、これをしなくても自動でNVDIA GPUを使うようになっている可能性があります。
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
右クリックメニューでアプリをディスクリートGPU起動する
対象のアプリを右クリックで「ディスクリートグラフィックカードを使用して起動」を選択して起動します。

アプリケーションによってはメッセージが違うかもしれません。Steamでは「特定のグラフィックカードを使用して起動」になっています。

Ubuntu Live起動のNVIDIA対応
Live起動の場合はNVIDIA GPUは機能しないようです。ドライバーの自動インストールコマンドでもインストールされません。個別にインストールしましたが、NVIDIA X Server Settingsも制限されて情報のみ見ることができます。また、アプリを右クリックした時のディスクリートGPU起動も表示されません。
Comment