DNN環境を構築しています。
先日、nvidiaのドライバを導入しましたが、以下のようにncidia-smiの結果のProcessesのところにXorgなど、ディスプレイするためのプロセスが外付けGPUとなるGTX 1080Tiで実行されていました。
※2017/03/17追記
事前にnouveaドライバを確認して、もし存在していたら、競合の可能性があるんで削除しておく必要があります。
$ nvidia-smi
Sat Mar 3 22:10:17 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 387.34 Driver Version: 387.34 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:01:00.0 Off | N/A |
| 23% 37C P8 13W / 250W | 502MiB / 11172MiB | 5% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1227 G /usr/lib/xorg/Xorg 312MiB |
| 0 1889 G compiz 97MiB |
| 0 2233 G ...-token=532F1718A85672DA26673917C31FD9C6 89MiB |
+-----------------------------------------------------------------------------+
私のPCは、Intel Core i7 7700Kを積んでいて、このCPUには、オンボードGPU(インテル® HD グラフィックス 630)が搭載されているので、ディスプレイ描画処理は、こちらに任せたい。
いろいろと調べた結果、ドライバインストール時にOpenGLを無効にしてインストールする日強yがあったようです。
以下に手順を示します。
#0.環境
- OS : Ubuntu 16.04 LTS
- GPU : NVIDIA GTX 1080Ti
- PC : DAIV-DGZ510(Intel Core i7 7700K搭載)
#1.インストール済みのnvidiaのドライバをアンインストール
以下の手順で先日インストールしたnvidiaのドライバ(nvidia-387)をアンインストールします。
$ sudo apt-get --purge remove nvidia-387
#2.nvidiaドライバのインストーラをダウンロード
aptパッケージでは、OpenGLの無効化ができない(?)ようでしたので、Nvidia Unix Driversより、nvidiaドライバのインストーラ(NVIDIA-Linux-x86_64-387.34.run ※NVIDIA-Linux-x86_64-390.48.run[2018/05/27更新、最新版にしました] )をダウンロードしてきました。
#3.Dynamic Kernel Module Support(DKMS)のインストール(※以下、2018/05/27更新)
カーネルのバージョンアップ時に自動的に再コンパイルされるようにするため、DKMSをインストールします。
$ sudo apt install dkms
#4.nvidiaドライバのインストール
X Window Systemを停止させます。
$ sudo systemctl stop lightdm
Ctrl+Alt+F2で仮想コンソールに切り替え、ログインします。
ログイン後、nvidiaのドライバインストーラを起動し、ドライバをインストールします。
この時、--no-opengl-files、--no-libglx-indirect及び、--dkmsを指定します。
$ sudo ./NVIDIA-Linux-x86_64-390.48.run --no-opengl-files --no-libglx-indirect --dkms
インストール後、リブートします。
$ sudo reboot
#5.確認
システムが起動したら、nvidia-smiでGPUの状態を確認します。
$ nvidia-smi
Sun May 27 12:58:14 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48 Driver Version: 390.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:01:00.0 Off | N/A |
| 23% 29C P8 9W / 250W | 9MiB / 11178MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1585 G /usr/lib/xorg/Xorg 6MiB |
+-----------------------------------------------------------------------------+
Processes項目が、「No running processes found」となり、他のプロセスがGTX 1080Tiで動作していないことが確認できます。
尚、intelのオンボードGPUの状況確認は、intel_gpu_topコマンドで確認できます。
$ sudo intel_gpu_top
#6.nvidia-settingsを利用可能にする
nvidia-settingsを使ったクロックやファンの制御を行うには、xorg.confを作成して、nvidiaのドライバを読み込む必要があります。
以下のコマンドでGPUのBusIDを調べます。
$ nvidia-xconfig --query-gpu-info
Number of GPUs: 1
GPU #0:
Name : GeForce GTX 1080 Ti
UUID : GPU-46bd0afa-863e-20ff-6c5e-6a2694391aa0
PCI BusID : PCI:1:0:0
Number of Display Devices: 0
以下の内容で、/etc/X11/xorg.confを作成します。
BusIDは、先ほど調べたBusIDを指定します。
Section "ServerLayout"
Identifier "Layout"
Screen 0 "intel"
Screen 1 "nvidia"
EndSection
Section "Device"
Identifier "intel"
Driver "intel"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration" "True"
Option "Coolbits" "12"
EndSection
以上です。
※2018/05/27追記
xorg.confの設定後、X Windowの端末を開くと、右上に寄って表示されるようになった。
どうもAllowEmptyInitialConfigurationが悪さをしている模様・・
このオプションを外すと、nvidia-settingsが正しく起動しない。
とりあえず、nvidia-settingsについては、保留。
#参考ページ