ディープラーニングのメモリ節約にメイン出力切替 (Linux自作PC 16)

当サイトではアフィリエイト広告を利用しています

Debian 9.3 Stretchで構築したディープラーニング用マシンで、メモリを節約するためGPUとオンボードのメイン出力の切替を行います。



GPU(Geforce 1070)には画面描写よりも計算資源として有効に活用するため、メイン出力をMB側に切り替えます。



前回のにGPUの設置を行いった続きです。

概要

グラフィックのメイン出力は現在GPUになっていて、オンボード側に映像端子をつないでも認識されません。

設置したGPUはディープラーニングなどのGPGPU向けなので、グラフィック出力に計算資源は割かずに計算だけに使ってほしいものです。そこで、グラフィック出力はCPUオンボードで行い、GPUはフリーにしておきます。

基本的にはマザーボードからBIOSの設定でどうにかなりそうです。

現状確認

まずは現状のGPU状態の確認をnvidia-smiコマンドにより行います。

$ nvidia-smi
Sat Dec 16 xx:xx:xx 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.82                 Driver Version: 375.82                    |
|-------------------------------+----------------------+----------------------+
| 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 1070    Off  | 0000:01:00.0      On |                  N/A |
|  0%   29C    P8    11W / 185W |     97MiB /  8113MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0       548    G   /usr/lib/xorg/Xorg                              95MiB |
+-----------------------------------------------------------------------------+

Geforce GTX 1070が正しく認識されており、温度も表示されています。

また、Xorgとしてウィンドウマネージャーの表示に95MBほどGPUのリソースが割かれていることも確認できます。

MBのBIOS設定

利用しているマザーボードはMSI H270 Pro Mateで、拡張項目→総合グラフィック構成で設定が行えました。グラフィックアダプタの開始はPEG(Pci Express Graphics)で、IGD(Integrated Graphics Device)マルチモニタは無効となっていました。

これでグラフィックアダプタをIGDとするとマルチモニタは選択不可になり、GPU側ではなくオンボード側から出力されるようになりました。

GPUの確認

lspciを実行してみるとこの状態でもGPUは正常に認識されています。強制認識させるダミープラグなどを使う必要はなさそうです。

$ lspci | grep NVIDIA
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

また、nvidia-smiも正常に動作。

$ nvidia-smi
Sat Dec 16 xx:xx:xx 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.82                 Driver Version: 375.82                    |
|-------------------------------+----------------------+----------------------+
| 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 1070    Off  | 0000:01:00.0     Off |                  N/A |
|  0%   33C    P0    31W / 185W |      0MiB /  8114MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

これでGPUは計算にのみ最大限活用できるようになりました。

今後

GPUの設置と出力の切り替えはこれで完了しましたが、GPU設置に伴う問題がいくつか発生しています。そのため、これらへの対処を次回から行っていきます。