IntelオンボードGPUとNVIDIA GPUがあります。 Ubuntu 18.04を実行しています。
IntelオンボードiGPUがモニターを駆動し、NVIDIA GPUをMachine Learning CUDA作業専用に残すようにデュアルGPUセットアップを構成するにはどうすればよいですか?
このガイド に従って、NVIDIAドライバーとCUDAパッケージを最初にインストールしました。ただし、再起動後、/usr/lib/xorg/Xorg
の出力にnvidia-smi
が表示されました。すべてのNVIDIA GPU RAMを作業に使用できるようにする必要があるため、これは良くありませんでした。
いくつかの調査の後、私の問題を解決する解決策を見つけました:
次の内容で/etc/X11/xorg.conf
を作成しました:
Section "Device"
Identifier "intel"
Driver "intel"
BusId "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
(同じことをしようとする場合は、GPUがどこにあるかを確認してください。私のものは00:02.0
にあり、PCI:0:2:0
に変換されます)
% lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Device 3e92
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 (rev a1)
再起動後、xorgおよびその他のプログラムはnvidia-smi
の出力に表示されなくなりました。そして、CUDA-10.0でpytorchを使用することができました。
NVIDIAドライバーはすべてインストールされていますが、干渉しません。
Arch LinuxとGnomeデスクトップ環境を備えたRazer Blade 15ラップトップで私を助けてくれたレシピを共有しましょう。
当初、Gnome with Waylandセッションを開始しましたが、当時はNVIDIAドライバーと互換性がなかったため、ディスプレイ用のグラフィックアダプターとディープラーニング用のNVIDIA GPUが統合されていました。しかし、最近の更新の後、GDMセッションは、NVIDIA GPUをプライマリGPUとしてXorgにフォールバックし始めました。問題はそれでした:
起動後にnvidia-smi
を実行しました。 No running processes found
が表示されると思っていましたが、NVIDIA GPUを使用したXorg
プロセスのリストが表示されました。つまり、Gnome Display ManagerはNVIDIA GPUとのXorgセッションをプライマリGPUとして使用しました。
/var/log/Xorg.0.log
を調べました:
(II) xfree86: Adding drm device (/dev/dri/card1)
(II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 11 paused 0
(II) xfree86: Adding drm device (/dev/dri/card0)
(II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 12 paused 0
(**) OutputClass "nvidia" ModulePath extended to "/usr/lib/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules"
(**) OutputClass "nvidia" setting /dev/dri/card1 as PrimaryGPU
(**)
は、設定が設定ファイルから読み取られたことを意味します!設定ファイルは/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
であることがわかりました。構成ファイルを変更して、Intel統合グラフィックスアダプターをプライマリGPUとして設定しました。
Section "OutputClass"
Identifier "intel"
MatchDriver "i915"
Driver "modesetting"
Option "PrimaryGPU" "yes" # <<<<<< add this string
EndSection
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
# Option "PrimaryGPU" "yes" # <<<<<< comment this string
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection
現在、Nvidiaカードがディスプレイを処理できないようにする別の方法を追加したいと思います。 Xorgの代わりにWaylandを選択して、単にgnomeを起動しています。 NvidiaはWaylandをサポートしていないため、ログイン後、nvidia-smiは実行中のプロセスを表示しません。
ただし、TensorflowなどにはNvidiaを使用できます。
私はコメントする評判がありませんので、ここでMaksym Ganenkoの答えに関連する結果を共有します。私は、kde-plasmaまたはubuntuでgdm3を実行するubuntu 18.04で解決策を試しました。あなたが/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
と言ったファイルは/usr/share/X11/xorg.conf.d/11-nvidia-prime.conf
と呼ばれる私のシステムにあります。おそらくnvidia-primeがしばらくインストールされていたからでしょう。このファイルを編集する際の問題は、新しいxsessionの起動時に/ usr/bin/gpu-managerがこのファイルを生成するため、すべての編集が失われるという事実です。ここで説明されているように、 プラズマでXorgのnvidiaカードを使用しない ここで与えられたアドバイスに従います gpu-managerはxorg.confを上書きします 解決策は、生成されたファイルを
chattr +i /usr/share/X11/xorg.conf.d/11-nvidia-prime.conf
Chmod 444でも同じことができますが、 gpu-manager overwrites xorg.conf で提案されているソリューションを使用しました。