LinuxでのnVidia GPUのオーバークロック・電力チューニング方法

この記事のまとめ:
  • Linux (Ubuntu 16.04)環境でのnVidia GPUのオーバークロックの方法や、消費電力に対するパフォーマンスを最大化するためのチューニング方法をまとめています。
背景:

Linux (Ubuntu 16.04)環境でnVidia製GPUを使って仮想通貨のマイニングを行っていまして、収益を最大化するために供給電力やオーバークロックなどのチューニングをしてみました。なお、オーバークロックはGPUドライバーのクラッシュや最悪の場合、GPUの故障を引き起こす可能性がありますので、自己責任で実行してください。

下準備
  1. nVidia GPUドライバーのインストール nVidia GPUドライバーをインストールしておきます。もしインストール方法がわからなければ下記の記事をご参照ください。

  1. オーバークロックの許可 下記のコマンドを実行することでオーバークロックやファンコントロールが可能になります。
sudo update-grub
sudo nvidia-xconfig -a --cool-bits=12 --allow-initial-configuration
sudo reboot

cool-bitsの設定はほかの値でもよく、31ビットもよく使われる値です。

持続モード(Persistence Mode)の設定

持続モードを設定することでGPUアクセスがないときにも、nVidiaドライバーをロードし続けてくれます。消費電力は増えますが、nVidiaドライバーのロードにかかる時間が短縮化されます。この設定を予め実施しておかないと供給電力の設定変更ができません。この変更はnvidia-smiコマンドのpmオプションで1を設定することで変更できます。

sudo nvidia-smi -pm 1
供給電力の設定

定格電力に対して供給電力を抑えることができます。例えば、GTX 1060 6GBの定格電力は120 Wですが、動作電力は60~120 Wであり、その間で供給電力を変更することができます。また、供給電力を減らしたからと言って、減らした割合だけ処理能力が落ちるわけではなく、緩やかに処理能力が落ちていきます。この変更はnvidia-smiコマンドのplオプションで変更できます。

私はGTX 1060 6GBを70 Wで運用しています。

sudo nvidia-smi -pl 70
コアオーバークロックの設定

GPUコアのクロック周波数をオーバークロックします。あまりに大きすぎる値を設定すると GPUドライバーのクラッシュや、最悪GPUの故障 につながりますので、飽くまで自己責任で実行してください。

私の場合は、供給電力を70 Wに抑えた場合、下記の値で安定動作する限界でした。ただし、GPUを使用するアプリケーションによります。アプリケーションによってはもう少しオーバークロックしても安定動作するものもありますがすべてではありませんでした。

sudo nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[3]=100'
sudo nvidia-settings -a '[gpu:1]/GPUGraphicsClockOffset[3]=100'
メモリオーバークロックの設定

メモリの転送速度をオーバークロックします。コアオーバークロックと同様にあまりに大きすぎる値を設定すると GPUドライバーのクラッシュや、最悪GPUの故障 につながりますので、飽くまで自己責任で実行してください。

私の場合は、供給電力を70 Wに抑えた場合、下記の値で安定動作する限界でした。

sudo nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[3]=200'
sudo nvidia-settings -a '[gpu:1]/GPUMemoryTransferRateOffset[3]=200'
参考

本記事を書くにあたって下記を参考にしました。


今回は以上です。 最後まで読んでいただき、ありがとうございます。


コメント

このブログの人気の投稿

ネットワーク越しの RTL-SDR で SDR# を使う方法