2つのGPUで実行される複数のXorgプロセス

2つのGPUで実行される複数のXorgプロセス

次の動作は過去には一般的ではありませんでした。 Ubuntu 18.04システムには2つのGPUがあります。 1つはデュアルモニターディスプレイ用、もう1つはGPUコンピューティング用です。起動時にコンピューティングGPUでプロセスを表示できません。最近、2つのGPUのそれぞれで2つずつ、複数のXorgプロセスが実行されることがわかりました。また、gnome-shellが2つのプロセスを実行していることがわかります。これは問題ですか?どうやって解決しますか?

(コンピューティングGPUを一時停止した後、計算に使用できない理由を理解するために調査中です。)

$ nvidia-smi
Tue Aug 18 11:05:47 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  TITAN RTX           On   | 00000000:1A:00.0 Off |                  N/A |
| 41%   34C    P8    10W / 280W |     11MiB / 24220MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 207...  On   | 00000000:68:00.0  On |                  N/A |
| 22%   40C    P5    15W / 215W |    811MiB /  7979MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      2038      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A      5566      G   /usr/lib/xorg/Xorg                  4MiB |
|    1   N/A  N/A      2038      G   /usr/lib/xorg/Xorg                 73MiB |
|    1   N/A  N/A      2078      G   /usr/bin/gnome-shell              178MiB |
|    1   N/A  N/A      5566      G   /usr/lib/xorg/Xorg                481MiB |
|    1   N/A  N/A      5740      G   /usr/bin/gnome-shell               33MiB |
|    1   N/A  N/A     23000      G   ...AAAAAAAAA= --shared-files       41MiB |
+-----------------------------------------------------------------------------+

答え1

同様の問題であるUbuntu 20.04、2つのGPU、Tesla、GTXカードがありました.いくつかのアプローチを試しましたが、nvidia xorgドキュメントを確認することをお勧めします(https://download.nvidia.com/XFree86/Linux-x86_64/460.67/README/xconfigoptions.html)とxorgドキュメント(https://manpages.debian.org/jessie/xserver-xorg-core/xorg.conf.5.en.html) 彼らの目的を理解してください。

私の提案は最初このnvidia-xconfigツールを使用してデフォルトのxorg.confファイル(例sudo nvidia-xconfig -a:)を作成し、次のように変更/編集します。

いくつかの関連する変更:

Section "ServerLayout"
  (...)
  Option "AutoAddGPU" "false"
EndSection

オプション "AutoAddGPU" "boolean" このオプションを無効にすると、udev バックエンドから GPU デバイスが追加されません。デフォルトでは有効になっています。 (Xineramaを設定するには無効にする必要があるかもしれません)。

両方のカードで見つかったPCI IDを使用すると、lspci私の場合、Teslaは9.0.0、GTXは5.0.0なので、使用する必要があります。あなたの身分証明書あなたのユースケースに私のものを使用しないでください!次に、次のように各カードのエントリを作成しました。

Section "Device"
   Identifier     "Device0"
   Driver         "nvidia"
   VendorName     "NVIDIA Corporation"
   BoardName      "Tesla"
   BusID          "PCI:9:0:0"
   Option         "Accel" "false"
   Option "ProbeAllGpus" "false"
   Option "NoLogo" "true"
   Option "UseEDID" "false"
   Option "UseDisplayDevice" "none"
   Option "MultiGPU" "false"
EndSection

オプション "ProbeAllGpus" "boolean" このオプションを無効にすると、Nvidiaによる設定の構成に影響を与える可能性があります。 Xドライバは、現在使用されていないGPUやそれに接続されているディスプレイデバイスについて知らないからです。

また、「UseDisplayDevice」オプションに特別な値「none」を指定することもできます。この値が与えられると、ディスプレイハードウェアのすべてのプログラミングは無効になります。 NVIDIAドライバは、このX画面に対してモード確認やモード設定を行いません。これはCUDAで使用するためのものです。

Section "Device"
  Identifier     "Device1"
  Driver         "nvidia"
  VendorName     "NVIDIA Corporation"
  BoardName      "GTX"
  BusID          "PCI:5:0:0"
EndSection

次に、「画面」セクションで「Device1」をビデオ出力として使用するカードとして使用します。例:

Section "Screen"
    Identifier     "Screen0"
    Device         "Device1"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

私の場合は、GTXカードにマルチモニタ設定を接続したので、それより少し複雑ですが、良い出発点になります。

それでも問題があり、この設定を使用して一時停止/再開をデバッグしようとしています。

関連情報