5月に入り、これから仮想通貨のマイニングを行う場合は発熱に気を使う必要がありそうです。

以前CPUクーラーやケースファンの増設で冷却効率の改善を行いましたが、今回はGPUの出力を下げて発熱自体を減らしてみます。

はじめに

これまでDebian9上のNvidia-dockerでccminerを使ってMonacoinのマイニングを続けてきました。

しかし、気温の上昇につれて発熱と冷却効率が無視できなくなっており、ケースファンとCPUクーラーの増設で冷却効率の改善を行いました。

今回はGPUの電力効率を最適化することで、発熱そのものを減らしてみます。

対象の環境

以下の記事で作成したLinux自作PCが今回の検証環境です。

  • CPU: i3 7100
  • CPU cooler: Scythe 虎徹MarkII SCKTT-2000
  • GPU: EVGA GTX1070 FTW2 iCX
  • MB: MSI H270 PC Mate
  • Mem: CFD Crucial W4U2400CM-8G DDR4-2400 8GBx2
  • Case: Fractal Design Define C
    • Front Fan1: ENERMAX T.B.Silence PWM UCTB14P
    • Front Fan2: Fractal Design Dynamic X2 GP12
    • Rear Fan1: Fractal Design Dynamic X2 GP12
  • HDD: WD Red WD20EFRX
  • Power: Corsair CMPSU650HXJP

現在のマイニング稼働状況

上記の環境で、Debian9.3にNvidia-dockerを導入してccminer-v2.2-mod-r2によりMonacoinのマイニングを行っています。

現在のハッシュレートは38MH/s程度で、GPU本体の消費電力は150W程度となっています。

(※ccminerはdocker上で動いているため、JSTではなく時刻がずれています)

この状況からGPU設定を変更して消費電力を調整していきます。

nvidia-smi

基本的にLinux上でNvidiaのGPUを制御する場合はnvidia-smiコマンドを使って調整します。

plオプションで消費電力を制限できますが、この設定はccminer終了時や再起動時にデフォルトの値に戻ることに注意が必要です。

今回使用するGeforce1070では92.5W~208.00Wの間で調整が可能な模様です。

120Wに変更

まずは150Wの80%となる120Wを上限として変更してみます。

$ sudo nvidia-smi -pl 120
Power limit for GPU 0000:01:00.0 was set to 120.00 W from 185.00 W.

Warning: persistence mode is disabled on this device. This settings will go back to default as soon as driver unloads (e.g. last application like nvidia-smi or cuda application terminates). Run with [--help | -h] switch to get more information on how to enable persistence mode.

All done.

デフォルトの上限値180Wから120Wに上限が変更されました。

ただし、persistenceモードがOffなので、CUDAアプリケーション(ccminer)が終了したらデフォルトに戻るとも記載されています。

これで大体36.5MH/s、消費電力120W程度、GPU温度70℃程度、FAN35%あたりまで抑えられました。

Persistence Modeの設定

GPUの接続モードを変更することでGPUの消費電力設定を維持し続けてくれるようになります。

$ sudo nvidia-smi -pm 1
Enabled persistence mode for GPU 0000:01:00.0.
All done.

この設定を行わないとccminer終了後に設定がデフォルトの値に戻ってしまいます。

注意事項

pmオプションによるPersistence Mode、plオプションによる消費電力上限の値は、OS再起動によってデフォルト値に戻ります。

そのため、OS起動時にコマンドを再び入力する必要があります。

私はNvidia-dockerの起動スクリプトの先頭2行にこれらのコマンドを追加することで対処しました。

消費電力調査

さて、上記のコマンドを用いて複数の消費電力上限値を対象に、ハッシュレートと実際の消費電力を調べてみました。

plオプションの対象としたGPU消費電力は95~150Wとして、システム全体の消費電力はワットチェッカーを用いて調査し、以下の表に結果を記載しました。

使用したワットチェッカーはサンワサプライのTAP-TST8(現行:TAP-TST8N)で、コンセントからシステム全体へ流れる電力量を調査しています。

また、電力効率は消費電力あたりのハッシュレートで計算しています。

GPU消費電力(W) システム全体(W) HashRate(MH/s) GPU電力効率(MH/s/W) システム電力効率(MH/s/W)
150 208 38.06 0.254 0.183
140 195 37.33 0.267 0.191
130 184 36.94 0.284 0.201
120 173 36.44 0.304 0.211
110 160 35.22 0.320 0.220
100 150 34.70 0.347 0.231
95 142 33.79 0.356 0.238

上記の表を見てわかるように、電力効率はGPU単体・システム全体ともに消費電力を下げるにつれて改善されて行くことが分かります。

また、GPU電力を下げてもGPUを除いたシステムの消費電力はおおむね50W程度となっていることもわかります。

GPU消費電力が150Wの時と比べてGPU消費電力を95Wとすると、システム全体の消費電力が31.7%減少しているのに対し、ハッシュレートは11.2%の減少となっており、電力効率が改善していることが分かります。

GPUの消費電力が減ることで発熱量も減るので、これからの気温上昇を踏まえて電力効率を可能な限り上げておいて損はなさそうです。

電気代を踏まえた収支計算

plオプションによる消費電力を95Wとするのが効率が良いという結論が得られましたが、マイニングの採算についても計算してみましょう。

以前と同様に、全国家庭電気製品公正取引協議会の定めた値である1kWh単価27.0円で計算してみます。

GPU消費電力が95Wとの時のシステム全体の消費電力が142Wで、直近のマイニングプールの採掘量を見てみると0.174Mona/24Hとなっています。

また、モナコインの価格を現在の値の410.89円/Monaで計算しています。

期間(日) 採掘量(Mona) 採掘量相当の価格(円 電気代(円) 利益(円)
1 0.174 71 92 -21
7 1.218 500 644 -144
30 5.22 2145 2761 -616
365 63.51 26096 33586 -7490

…赤字ですね。

以前の計算では1000円/Monaで計算したため利益は出ていましたが、コインチェックNem流出以来で価格が長らく下落トレンドにあったため、かなり価格が下がっています。

同時に1日当たりの採掘量が減少していることもあって、基本的には現在の価格で取引した場合は赤字になっています。

とりあえず現状の採掘効率のままなら530円/Monaくらいになってプラマイゼロといったところでしょうか。

今後モナコインが上昇すると予想する人か、遊びでマイニング環境作って維持したいという人でもない限り現状ではマイニングを続けない方がよさそうという悲しい結果となりました。

とりあえず私はいろいろ環境弄って遊びたいのでこのまま続けてみますけど。

まとめ

  • nvidia-smiでMonacoinマイニングの電力効率を改善した
  • 同時に現在価格で採算計算したら赤字となった
  • 今後の価格上昇を前提とするor遊びでやる場合以外は非推奨