論理コア制限でbitzenyマイニングの効率をあげる

2月 2, 2018

cpuminer2.60で追加された --cpu-affinity

一つ前の記事で書いたbitzeny用cpuminer2.6.0
これには --cpu-affinity というオプションが追加されています。
これは何かといいますと、CPUの利用しない・利用するコアを指定する事ができるオプションです。

ちゃんと指定すれば採掘効率があがる!?

自分もだからなんだ、ぐらいに最初は思っていたのですが、なんとなく調べていると気になる記事が同じCPUマイニングのmoneroでありました。

https://steemit.com/cryptocurrency/@tobiasrieper/improve-cpu-monero-xmr-mining-by-disabling-hyperthreading-ht

簡単に言うと、HyperThreadingのコアを避けるとマイニング効率あがったよ!という内容でした。

HTを避ける指定とは

上の記事ではIntelの場合で、ということでしたが、「スレッド数を物理コア数と同じ」にして、--cpu-affinity オプションで「一つ飛ばしでCPUコアを利用する」設定で良さそうです。

--cpu-affinity の指定方法

まずは、2進数で利用する論理コアは1,利用しないコアは0で指定します。
4コア8スレッドなら10101010 といった指定です。これを10進数に変えて指定します。
2進数から10進数への変換は下記ツールがわかりやすいです。(入力して変換ボタンを押す)
https://hogehoge.tk/tool/number.html

例えば、4コア8スレッドのi7ですと、10101010 = 85 になるので、 minerd -a yescrpt -t4 --cpu-affinity 85 -o ... といった指定になります。

実際に早くなるの??

ここまで書いていたのですが、正直私のCPU(i7 870)では早くなりませんでした!
つけない時と比べて0.1Kh程度減少…

一方、いのびあ(twitter @hk1v)さんが他のCPUで検証して、無事早くなったというツイートがありました!
引用OK貰ったので下記貼り付けます。

初代i7は厳しいですが、それ以降なら一定の効果がありそうです!
i7やi9を使ってる皆さんは是非とも試してみてくださいね。