BitZenyやKOTOなどで使われている Yescrypt のアルゴリズムをGPUマイニングできるようになり、これまで使ったことのなかった ccminer を直接使用する機会ができました。
NVIDIAのグラフィックボードでGPUマイニングしているとき、ccminerというマイニングソフトが推奨されているのを見かけてはいましたが、Awesome Miner で間接的に使用しているだけだっただったものですね。
今回、もっとマイニングを効率化できる隠し技などがあるのでは?と思い、ccminerが「どのようなもの」で「何ができるのか」を少し調べてみました。
そこで分かったことを書いてみたいと思います。
そもそもccminerとは
ccminerについては NiceHash のサイトが端的に説明していたので、まずは引用して意訳します。
ccminer is used for mining on NVIDIA GPUs. You can get additional information on using ccminer at the ccminer.org homepage. Please note that the extranonce.subscribe feature is enabled by default. ccminer supports various algorithms (X11, X13, Quark, Lyra2REv2, etc.). Therefore, you can use one ccminer to mine various coins with various algorithms. However, you have to restart ccminer in order to switch to a different algorithm.
Nvidia mining – NiceHashccminerはNVIDIA製GPUによるマイニングで使用されます。追加情報はccminer.orgのWebサイトで入手してください。”Extranonce.subscribe”の機能はデフォルトで有効になっています。また、ccminerはX11, X13, Quark, Lyra2REv2などの様々なアルゴリズムをサポートしています。そのため、ccminerだけで様々なアルゴリズムの仮想通貨をマイニングできますが、異なったアルゴリズムの通貨のマイニングに切り替えるときはccminerを再起動させる必要があります。
感覚的に分かっていたことですが、理解が間違っていなかったことを確認できました。
ccminer は「色々な通貨をマイニングすることができるツール」ということですね。さらにNVIDIA製のグラフィックボードに対応しているということで、私自身もGeForceを使っているので目にする機会が多かったのだと思われます。
ccminer自体はオープンソースのため、これを基にして派生した独自開発のバージョンが色々とあります。
もう少し深掘りしていきましょう。
対応しているアルゴリズム
それでは、書かれている「様々なアルゴリムズ(various algorithms)」というのは、具体的に何があるのでしょうか。
・・・多いですね。
全て載せようと思いましたが、想像以上に多かったので、興味があれば下記のREADMEを確認してみてください。
/tpruvot/ccminer/blob/windows/README.txt
NVIDIAのGPUは、ccminerさえあれば何のアルゴリズムでもマイニングできそうです(最近ではBitZenyやKOTOをマイニングできるyescryptまで対応したものまで出ています)。
コマンドオプション
コマンドをコピペしてマイニングしてきた初心者にとって、「他に何ができるんだろう」というのが一番気になるところだと思います。
もう “ccminer.exe -a XXX -o XXX -d XXX -u XXX -p XXX ” は嫌になるほどコピペしてきたので、その次を知りたいですよね。
以下の説明は、README.txtにある項目を抜粋し、補足を入れながら意訳したものです。
-a (アルゴリズム)
マイニングを行うために使うアルゴリズムを定義(設定)するものです。
-a yescrypt
-a equihash
-d (デバイス)
使用するデバイス(ここではGPU)の番号をカンマで区切って指定します。デバイスの番号は0から始まり、番号の代わりにGPUの名称で指定することもできます。
-d 0,1
-d gtx780ti
-d gt640#2(gt640のGPUが2つある場合の2番目を指定)
-o (URL)
マイニングサーバーのURLです。
多くの場合、「 : (コロン)と数字4桁のポート番号」がURLとセットになっていると思います。
-o strutum+tcp://com.pool.hoge:1234
-u (ユーザー名)
マイニングプールに登録したユーザー名を指定します。
MPOSのマイニングプールの場合、「 . (ピリオド)」を付けて、その後ろにワーカー名を入力します。
NOMPの場合、マイニングする通貨のウォレットアドレスを入力するところですね。
-u UserName
-u UserName.WorkerName
-u WalletAddress
-p (パスワード)
マイニングプールで登録したユーザー名(ワーカーごと)に設定したパスワードを入力します。
マイニングプールでは、passwordかPasswordがプリセットされていることが多いです。
-p password
-p Password
-i (インテンシティ)
GPUにどれくらいの仕事量を割り当てるかを指定するもので、この数字によってthreads(一度に処理する量)が変わります。
-i 8
-i 11
数字を調整しながら最もハッシュレートが高くなるものを探せば良さそうですが、画面出力に使っているGPUの数値を大きく過ぎると、画面のレンダリングが怪しくなりますね(カクついたり)。
使用するアルゴリズムによって最適な数値が変わるようで、高くし過ぎると普通にccminerが落ちます。
-t (スレッド数)
cpuminerのコマンドを踏襲しているから用意されているだけで、CPUマイニングのチューニング以外では使用しないような…??
CPUマイニングの場合は使用するスレッド数を指定するのに使います。
GPUの場合は ” -i “ を使うようですね。
–no-cpu-verify
これはメモ書き程度ですが、下記のエラーが発生したときにCPUでのvalidationを外すコマンドのようです。
GPU #0: result does not validate on CPU!
実際にエラーは発生しなくなりました。
まとめ:調べれば色々とありそう
他にも色々とオプションはあるようなので、色々とチューニングしながらマイニング効率を高めることができそうです。
ただ、既に動かせている状態で満足しているので、それ以上の利用シーンが思い浮かびませんでした。
「チューニングこそマイニングの醍醐味」という人もいるようですが、ちょっと私は向いてなさそうです。興味ある人は、README.txtに載っているオプションを読んでみると、何か新しい発見があるかも知れません。
/tpruvot/ccminer/blob/windows/README.txt