ethOSでGPU単位にEthereumマイニングの設定をチューニングする!

ethOSでGPU単位にEthereumマイニングの設定をチューニングします。同じメーカの同じ品名であっても内部的には使用しているメモリなどのパーツが異なり、GPU単位での設定が必要になることがあります。

使用した環境

  • ethOS 1.3.1
  • ZOTAC GEFORCE GTX 1060 3GB

設定値の初期化

NVIDIAのコマンドで、チューニングを行うベースの設定に変更します。以下のコマンド例は、GPU0のパラメータを変更していますが、4枚のグラフィックボードを使用しており、nvidia-settingsでは、GPU0の指定がGPUの最後の番号になるために「3」を指定しています。GPUのUUIDを指定するほうがわかりやすいかもしれません。

$ sudo nvidia-smi -i 0 -pl 80
$ sudo nvidia-settings -a '[gpu:3]/GPUGraphicsClockOffset[3]=0'
$ sudo nvidia-settings -a '[gpu:3]/GPUMemoryTransferRateOffset[3]=0'
$ sudo nvidia-settings -a '[fan:3]/GPUTargetFanSpeed=75'

以下のコマンドでGPU0のコアクロック数とメモリクロック数を確認します。5秒おきに値を取得しています。

$ nvidia-smi -q -d CLOCK -l 5

以下のコマンドで、供給電力とFANの回転速度を確認します。5秒おきに値を取得しています。

$ nvidia-smi -l 5

以下のコマンドでハッシュレートを確認します。値は、自動で更新されていきます。wwコマンドが使用できない場合は、show minerコマンドを使用します。

$ ww

以下、チューニング結果を表にしてみました。メモリクロックを決めて、供給電力とFANの回転速度を調整します。*をつけた値が前回のチューニング値から変更したパラメータです。メモリクロックを変更すると自動でコアクロックが変わっていく事象が発生しています。また、Ethereumではコアクロックを下げてもハッシュレートがかわらず、チューニングのポイントではないようです。

No cor mem pwr fan hashrate
1 1721 3800* 80 75 20.03
2 1695 3900* 80 75 20.58
3 1683 4000* 80 75 21.10
4 1657 4100* 80 75 21.72
5 1632 4200* 80 75 22.29
6 1620 4300* 80 75 22.82
7 1594 4400* 80 75 23.40
8 1392* 4400 80 75 23.40
9 1506 4400 69* 50* 23.31

全く同じメーカの同じ品名ですが、ハッシュレートが全く異なるボードがあり、チューニングを試みます。※インターネット上の情報では、hynicsのメモリを積んでいるグラフィックボードのようです。

No core mem pwr fan hashrate
1 1797 3800* 80 75 15.78
2 1733 4000* 80 75 17.54
3 1683 4200* 80 75 18.49
4 1759 3650* 80 75 17.33
5 1556* 3650 80 75 17.42
6 1227 3650 62* 60* 17.71

メモリクロックを3650MHzあたりまで下げるといきなりハッシュレートが上がり、コアクロック数を下げると微増、供給電圧を下げるとまた微増するという不思議なグラフィックボードです。ワットパフォーマンスを考慮して、少ない供給電力で稼働させることにしました。

おわりに

GPU毎に個別にチューニングを行うことで、ハッシュレートの改善を行うことができました。同じ品名の製品であっても使用しているパーツが異なり、グラフィックボード毎にチューニングを行うことで、より最適なチューニングを行うことができます。