Ubuntu 19.10にNvidia独自のドライバーをインストールしました。
プライムプロファイルセクションには、3つのオプションがあります。
* NVIDIA(パフォーマンスモード)
* NVIDIA On-Demand
* Intel(省電力モード)
最初と最後のオプションは非常に明白ですが、2番目のオプションがどのように機能するかわかりません。どのアプリケーションがNVIDIAドライバーを必要とし、どれを必要としないかをどのように検出しますか?
From: パートI.インストールと構成の手順
PRIMEレンダーオフロードは、1つのGPUでX画面をレンダリングする機能ですが、そのX画面内の特定のアプリケーションを選択して、別のGPUでレンダリングします。これは、パフォーマンスに敏感な特定のアプリケーションをレンダリングする必要がある場合を除いて、NVIDIA GPUの電源をオフにしたままにする動的電源管理と組み合わせると特に便利です。
X画面の大部分をレンダリングするGPUは「シンク」と呼ばれ、特定のアプリケーションレンダリングが「オフロード」されるGPUは「ソース」と呼ばれます。レンダーオフロードソースは、レンダーオフロードシンクに表示されるコンテンツを生成します。 NVIDIAドライバーは、PRIMレンダーオフロードソースとして機能し、GLF + OpenGLまたはVulkanのレンダリングをオフロードして、xf86-video-modesetting Xドライバーによって駆動されるX画面に表示できます。
NVIDIAのPRIMEレンダーオフロードサポートでは、X.Org Xサーバーで次のgitコミットが必要です。
7f962c70-xsync:SyncCreate内にリソースを追加し、SyncCreateをエクスポートします
37a36a6b-GLX:クライアントごとのベンダーマッピングを追加
8b67ec7c-GLX:送信クライアントを使用してXIDを検索する
56c0a71f-GLX:クライアントベンダーリストを変更する関数を追加
b4231d69-GLX:GlxServerExports :: {major、minor} Versionを設定します
これを書いている時点では、これらのコミットはX.Org Xサーバーのマスターブランチにのみあり、公式のX.Org Xサーバーリリースにはまだありません。
わかりました。やっとわかりました。この瞬間、NVIDIAはOpenGLアプリとVolkanアプリのレンダリングをオフロードできるようです。
このオフロードレンダリングを有効にするには、Primeプロファイルを「オンデマンド」にする必要があります。次に、volkanオフロードの場合は、この変数をetc/environment
ファイル:__NV_PRIME_RENDER_OFFLOAD=1
OpenGLアプリの場合、次の変数を配置する必要があります。__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia
再起動後、レンダリングのオフロードが開始されます。
使用されているグラフィックカードを確認するには、ターミナルで次のコマンドを入力します。glxinfo | grep vendor
Md Narimani answer の拡張として:これは、nvidiaドライバーバージョン440を使用するkubuntu 19.10で実際に機能していることを確認できます
いくつかの背景情報は にあります第34章PRIMEレンダーオフロード
gUIでも「オンデマンド」オプションを設定できます:Nvidia X Server Settings - PRIME Profiles: NVIDIA On-Demand
その後、再起動します。
その後、コマンドラインから直接、環境変数を使用してアプリケーションを起動できます。これにより、必要に応じてGPUを切り替えることができます。
stefan@stefan-Zen:~$ glxheads :0
Name: :0
Display: 0x556081a45d40
Window: 0x7000002
Context: 0x556081a64a70
GL_VERSION: 3.0 Mesa 19.2.8
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)
stefan@stefan-Zen:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxheads :0
Name: :0
Display: 0x55f6dd9097a0
Window: 0x7000002
Context: 0x55f6dd944878
GL_VERSION: 4.6.0 NVIDIA 440.64
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: GeForce RTX 2060/PCIe/SSE2