目次
cpuminer2.60で追加された --cpu-affinity
一つ前の記事で書いたbitzeny用cpuminer2.6.0
これには --cpu-affinity
というオプションが追加されています。
これは何かといいますと、CPUの利用しない・利用するコアを指定する事ができるオプションです。
ちゃんと指定すれば採掘効率があがる!?
自分もだからなんだ、ぐらいに最初は思っていたのですが、なんとなく調べていると気になる記事が同じCPUマイニングのmoneroでありました。
簡単に言うと、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貰ったので下記貼り付けます。
BitZeny 用の新しいcpuminer、CPU Affinity設定できるようになってたので、やってみた。i7 8700K なので、6コア12スレッド。 -t 6 –cpu-affinity 1365 にしてみた。HTのコアをよけてみたところ、かなり採掘数が上がりました。 https://t.co/PclzFJXqyL pic.twitter.com/L3y9OPrH0X
— いのびあ (@hk1v) 2018年1月27日
初代i7は厳しいですが、それ以降なら一定の効果がありそうです!
i7やi9を使ってる皆さんは是非とも試してみてくださいね。
コメント
使用コアをわざと減らした方がいいのはL3キャッシュの量に関連しているようですよ。
L3キャッシュ量÷スレッド数で1スレッド辺りに割り当てる事の出来るキャッシュ量が簡易的に計算できます。
当方の環境では6コア12スレッドのCPUのスレッドをフルに使い、
1スレッド辺り、最大で1.25MBのL3キャッシュを割り当ての状態で
半分のスレッドを使った場合より速度が向上します。
コメントありがとうございます!私の初代i7で効率があがらなかったのはそもそもL3キャッシュが少なすぎたことが原因ってことになりそうですね。これだとi7以外のCPUでも効果が出る可能性がありますね。後ほど記事修正させていただきます!