K75thunderbirdのブログ

どちらかというと自分の頭の整理用です。ネタとしてはモバイル、自動車、ロードバイク、電気関係やPC関係の突っ込んだ話題、ややデバイスやコンポーネント寄りの偏った内容になると思われます。

マイニングではGPUよりもメモリが重要である? 確認してみた。

マイナー そして マイニング。
この単語が聞かれるようになって久しい。
いや、個人的に知ったのは数ヶ月前なのだが、数年前から存在はしていた。

そんなマイナーな、いやマイナーに関する話。

 


細かい説明は省略。
自分としても、全てを把握しているわけではないので。
せいぜいが、ビットコインを採掘するにはASICが必要で、汎用機での採掘はコストに見合わないこととか、主戦場は電気代の安い中国であるとか、その他の仮想通貨の採掘が日本での流行りであるとか、RADEONが日本のみならず中国で買い漁られていることもあって世界レベルで流通量不足になっていることとか、まぁそんな程度だ。
それだけ知っていれば十分かもしれないが、それでも人に説明をするには知識が不十分である。
よって省略する。

今回この記事をおこしたのは、マイニングがGPUに求める性能に偏りがあるように思ったことと、自分なりに確認してみた結果をまとめておこうと思ったからだ。
一般的に、マイニングにGPUを使うのは省略した説明に含まれる範疇の情報なのであしからず。


GPUに求める性能が偏っているとはどういうことか。
それは、メモリアクセス性能を極端に要求するアプリケーションであるということだ。

それを示しているのが、Geforce GTX 1070 と1080のハッシュレートを測定したとき、1070の方が上位であるという結果である。
少し調べればベンチマークの結果一覧は出てくるので具体的な値は省略する。


なぜ、シェーダーの数で1.33倍上回る1080が1070の後塵を拝するのか。
その鍵はメモリの種類にある。
1070はGDDR5、1080はGDDR5Xである。


GDDR5とGDDR5Xの違いは何か。
詳しいことは調べれば出てくるが、ひっくるめるて一言で言えば、データーアクセス粒度の違いであると認識している。
1命令で読み出せるデーターの大きさが倍なのだ。
メモリクロックが「8GHz相当」のような表記になっているのは、データー転送時のクロックを示している。
読み出し命令(制御系)のクロックはもっと低い。
「8GHz相当」の場合、GDDR5が2GHzでGDDR5Xが1GHzである。

これが何を意味するか。

見た目上のデーター転送レートが高くとも、GDDR5Xの場合、データー読み書きの命令頻度が落ちるのだ。
そのため、細かい読み書きが苦手なのである。
本来の3Dグラフィックでは問題がないデーターアクセス粒度でも、マイニングで使用するには粒度が大きすぎるようだ。
その結果、1070と1080のハッシュレートが逆転するという現象が発生する。
シェーダーが多くてもメモリに足を引っ張られて性能が出ないということは、メモリアクセス性能が支配的であるということだ。

そのため、RADEONが人気である(性能が出やすい)というのも理解できる。
あれはGDDR5であり、メモリバス幅も比較的広い。
ただしコアクロックはそれほど高くないので、相対的にシェーダーの演算性能はそれほど高くない。

また、RADEONのL2キャッシュは同価格帯のGeforceのそれよりも多いのでハッシュレートが高いという話もある。
もっとも、最近のGeforceは昔よりもL2キャッシュを増やしているし、キャッシュよりレジスタの方が性能のためには重要であるという話もあるので、ここではメモリアクセス性能が重要であることを裏付ける情報である、という点を把握するにとどめたい。

 

実際のところ、GPUとメモリのクロックがハッシュレートに与える影響はどうなのか?
あまり、こういった視点でのベンチマーク結果は出ていないようなので情報がない。
よって調べてみた。

以下については、大雑把なテストであること、エビデンスをとっているわけではなく目視確認レベルであること、厳密に条件を整えているわけではないこと、などに留意して欲しい。
テスト環境では、Geforce GTX 1060 3GB を使用している。
採掘しているのは、一般的なETH(だったはず)。

コア1620MHz、メモリ8500MHzくらい
 ハッシュレート22.0MH/s

コア1780MHz、メモリ8500MHzくらい
 ハッシュレート22.2MH/s

コア1620MHz、メモリ8700MHzくらい
 ハッシュレート22.5MH/s

頑張ってコアをOCするよりも、メモリを少しOCする方が効果があるようだ。
コアをOCしないことで、不要な消費電力増を避け、ファン騒音の低減が実現できる上に、ハッシュレートは上がるという一石二鳥である。

余談だが、この1060で試したところコア2000MHz程度でも一応は動作するようである。
ファン100%で温度は75度くらいだったと記憶している。
当然電圧もそれなりに上がり、1Vを超えていたはずだ。
普段使用している1620MHz程度では、ファン75%で60度を下回っている。
電圧は0.8V程度で落ち着いている。
ちなみに1620MHzというのはパワーターゲットを60%に設定した結果である。結果としてほぼ定格であるが。


もっとも、メモリの動作温度がどうなっているかは測定していないので不明であるし、メモリの定格は8000MHzとなっているのでOCによる寿命短縮は避けられないはずだ。
今現在、9000MHzあたりまでは問題なく動作することを確認したうえで多少マージンをとっているが、いつかはマージンも無くなるだろう。
もし今回の確認結果を参考にする人がいるとすれば、それを踏まえたうえで使用すべきであることは承知されたし。

 

ということで、少々マニアックな話題を扱ってみた。
もし何か参考になることがあれば幸いだ。

それでは皆さん、ごきげんよう