web-dev-qa-db-ja.com

xserver用のiGPUおよびCUDA作業用のnvidia GPUの構成方法

IntelオンボードGPUとNVIDIA GPUがあります。 Ubuntu 18.04を実行しています。

IntelオンボードiGPUがモニターを駆動し、NVIDIA GPUをMachine Learning CUDA作業専用に残すようにデュアルGPUセットアップを構成するにはどうすればよいですか?

7
stason

このガイド に従って、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ドライバーはすべてインストールされていますが、干渉しません。

7
stason

Arch LinuxとGnomeデスクトップ環境を備えたRazer Blade 15ラップトップで私を助けてくれたレシピを共有しましょう。

当初、Gnome with Waylandセッションを開始しましたが、当時はNVIDIAドライバーと互換性がなかったため、ディスプレイ用のグラフィックアダプターとディープラーニング用のNVIDIA GPUが統合されていました。しかし、最近の更新の後、GDMセッションは、NVIDIA GPUをプライマリGPUとしてXorgにフォールバックし始めました。問題はそれでした:

  • 利用可能なGPU RAMが減少した
  • ニューラルネットワークのトレーニング中にシステム全体が動かなくなる
  • 消費電力が増加します(=バッテリー寿命が短くなります)

起動後に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
1
Maksym Ganenko

現在、Nvidiaカードがディスプレイを処理できないようにする別の方法を追加したいと思います。 Xorgの代わりにWaylandを選択して、単にgnomeを起動しています。 NvidiaはWaylandをサポートしていないため、ログイン後、nvidia-smiは実行中のプロセスを表示しません。

ただし、TensorflowなどにはNvidiaを使用できます。

1
user890178

私はコメントする評判がありませんので、ここで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 で提案されているソリューションを使用しました。

0
A Roebel