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のマイニングに戻ることにした