Debian 9.3 Nvidia-Dockerでethminerを動かしてみる

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

これまでMonacoinのマイニングをメインに行ってきたのですが、せっかく環境があるので別の通貨であるEthereumのマイニングにも手を出してみることにしました。



Debian 9.3上のNvidia-Dockerでetheminerを動作させてみました。

環境

Monacoinのマイニングと同様、Debian上のNvidia-Dockerのコンテナ内でマイニングを行います。

  • OS: Debian Stretch 9.3.0
  • GPU: EVGA Geforce GTX 1070 FTW2 Gaming iCX
  • Nvidia-Docker: Cuda8.0-develをベースとしたイメージ
  • Miner: ccminer-v2.2-mod-r2
  • Pool: VIP Pool

DockerイメージについてはMonacoinのマイニング環境構築時のものと同様です。

ethminerのビルド

Ethereumのマイナーにはethminerを用います。

Dockerイメージにログイン後、以下のコマンドでビルドの準備をします。

$ git clone https://github.com/ethereum-mining/ethminer.git
$ cd ethminer
$ mkdir build
$ sudo apt install cmake

用意したイメージでは追加でcmakeのインストールが必要でした。

そしてビルド時にはいくつか設定項目が存在します。 cmakeのオプションでCUDAマイニングをOnに、OpenCLマイニングをOffにする必要があります。 デフォルトでは逆が有効になっているため、Geforceユーザーはこのオプションの設定を行いましょう。

また、このままのbuildするとnvcc fatal : Unsupported gpu architecture 'compute_70'とエラーが発生します。 Eteminerのissueにあるように、CUDA9.0にマシンが対応していないことが原因のようです。 しかし、Debian Stretch環境ではCUDA9.0は公式のリポジトリからはインストールできず、現在はCUDA8.0までの対応にとどまっているみたいです。 そこでcmakeのファイルetheminer/libethash-cuda/CMakeLists.txtを修正して対処します。 "-gencode arch=compute_70,code=sm_70"という行を削除すればOKです。

修正後、CUDAを有効、OpenCLを無効にするオプションを付けてMakeを行います。

$ cd build
$ cmake .. -DETHASHCUDA=ON -DETHASHCL=OFF
$ cmake --build .

これでbuildは正常に終了し、build/ethminerディレクトリにethminerの実行ファイルが作成できました。

マイニング

Ethereumのマイニングプール大手のEthemineを使ってみます。

特にユーザー登録は必要なく、振込先のETHウォレットのアドレスさえ指定すればマイニングが行えます。

ethminer --farm-recheck 200 -U -S asia1.ethermine.org:4444 -FS us2.ethermine.org:4444 -O <Your_Ethereum_Address>.<RigName>

上記オプションでは-UオプションでCUDAマイニングを指定し、asiaをメインサーバーに、US西海岸をサブサーバーにしています。 そのたehtminerのオプションについては—helpオプションを参照するとよいでしょう。

マイニングのハッシュレート

ethminerの表示上のハッシュレートは大体26MH/sあたりで安定しました。

他のサイトでも見てみると、Geforce GTX 1070の標準的な値といえそうです。 下記サイトでは28MH/sとありますし、チューニングすればもう少し効率化もできるのではないでしょうか。

ただ、PoolのHashrateを確認すると5.2MH/sとなっており正常に作動できていないように見えます。 詳しくサイトを見ていると、このハッシュレートの表示は直近の60分間のものなので、正確なものを見るなら2時間は見ないとわからないとのことでした。

しばらく放置していると大体20MH/sあたりで安定するようになりました。

GPU温度

動作中のGPUの温度を確認してみましたが、66℃程度でそれほど高くはなっていません。 Monacoinのマイニングとくらべてメモリ消費量が多い気がします。むしろMonacoinが消費していないだけとも取れますが。

$ nvidia-smi
Fri Jan  5 xx:xx:xx 2018
+-----------------------------------------------------------------------------+
| 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 |
| 23%   66C    P2   121W / 185W |   2439MiB /  8114MiB |    100%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     28487    C   ./ethminer                                    2437MiB |
+-----------------------------------------------------------------------------+

マイニング効率

大体20MH/sあたりで安定したので、収益計算をしてみます。 CryptoCompareでETHを20MH/sで計算してみたところ、Poolの最低送付額の0.05が貯まるにはほぼ1か月はかかりそうな感じです。 (以下の画像は消費電力と電気代は適当なので注意)

遊びレベルでやるならPC非稼働の時間も考慮し、1週間程度で送金してほしいところです。おとなしく3-4日で送金できるMonacoinのマイニングに戻ることにしました。

まとめ

以下がこの記事のまとめです。

  • Nvidia-Docker上でEthereumのマイニング環境を構築してみた
  • 実働ハッシュレートだと、最低支払額に1か月かかりそう
  • 最低支払額がすぐ貯まるMonaCoinのマイニングに戻ることにした