前回は、nvidia-smiを使ってPersistance ModeとPowerLimitの設定をしましたが、今回はより細かいチューニングとして、FANコントロールとGPUクロック、メモリクロックの設定をしたいと思います。
「チューニング編1」の最後でちょっと触れましたが、FANコントロールとGPUクロック、メモリクロックの設定には、nvidia-settingsを使います。
このツールは、X上で動作しているNVIDIAのドライバを叩いて、各種の設定を行いますが、設定を行う前にNVIDIAドライバの設定を変更しておく必要があります。
xorg.confに以下のような設定を追記して下さい。(追記部分は赤字。)
Section "ServerLayout"Screenセッション内にある、
Identifier "Default Layout"
Screen 0 "Screen0"
Screen 1 "Screen1" RightOf "Screen0"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 1060 3GB"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 1060 3GB"
BusID "PCI:2:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "AllowEmptyInitialConfiguration" "True"
Option "Coolbits" "31"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "AllowEmptyInitialConfiguration" "True"
Option "Coolbits" "31"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Option "AllowEmptyInitialConfiguration" "True"は、グラフィックカードにディスプレイが接続されていなくても、ドライバをロードする設定です。
これを記述しておかないと、ディスプレイが接続されていないグラフィックカードではドライバがロードされず、チューニングを行うことができません。
Option "Coolbits" "31"は、FANコントロールやGPU/メモリクロックなどの設定変更を許可する設定です。
xorg.confがない場合、
sudo nvidia-xconfig -a --allow-empty-initial-configuration --cool-bits=31とすることで、上記の内容に近いxorg.confのひな形を作成することができます。
設定が完了したら、システムを再起動させてxorg.confに設定した内容が反映されるようにしてください。
あとは、nvidia-smiと同じく、シェルから各種の設定をしていくだけです。
ただし、nvidia-settingsはXアプリケーションですので、ディスプレイが適切に設定されていないとエラーが発生します。
リモートからターミナルで接続して設定する場合は、下記のようにDISPLAYとXAUTHORITYを指定してから各種コマンドを発行します。
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \上記の3つの設定で、ファン速度を80%に固定します。
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1'
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:0]/GPUFanControlState=1'
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=80'
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \上記の設定では、GPUのコアクロックを100MHz分ダウンクロックします
nvidia-settings -a "[gpu:0]/GPUGraphicsClockOffset[3]=-100"
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \上記の設定では、GPUのメモリクロックの設定を2000MHz分ダウンクロックします。
nvidia-settings -a "[gpu:0]/GPUMemoryTransferRateOffset[3]=-2000"
GPUが複数ある場合には、設定値の頭の[gpu:X]の部分のXにデバイス番号を付与して下さい。(デバイス番号は「nvidia-smi -L」で出力されるものと同じものを設定します。)
GPUコアクロックは、マイニングの効率に直結する割に、ダウンクロックしても消費電力はさほど変わらないので、弄らなくてよいです。
一方、メモリクロックについては、「電力効率最適化のチューニング(メモリクロック編)」で書いた通り、下げた分だけ消費電力が下がるか、消費電力が下がって余裕が出た分ブーストが効いてマイニング性能が上がりますので、限界まで下げると良いです。
ただし、画面出力をしているグラフィックカードでメモリクロックを落とすと、描画の負荷が上がり、結果ハッシュレートが下がることがありますので注意して下さい。
上記のxorg.confは、マイニングに使うグラフィックカードで画面出力をする例ですが、CPUの内蔵グラフィックス機能で画面出力を行い、グラフィックカードにはディスプレイを繋がずマイニングに専念させるのが最も効率がよい使い方です。
この設定の仕方については、また別の機会で書いてみたいと思います。
0 件のコメント:
コメントを投稿