バジルは引っ越しました

distributed.net 使用CPUについて

投稿者: 無謀庵 / 2016年5月29日 - 13:52 / カテゴリー: distributed.net, PC

私が前からやってるdistributed.netの最短ゴロム定規探索なのだけど、今年からぼちぼち頑張っているので、ついにOGR-28ランキングで世界1000位を突破した。

現在のところ、総参加者は4万人弱。その中で1000位以内だったら、まあ上位2.5%くらいか。

とはいえ、2年3ヶ月のOGR-28プロジェクト実施期間のうち、私が稼働率を上げているのは今年に入ってからの5ヶ月くらい。そんなんで世界の上位2.5%とは、いかに盛り上がってないかがよくわかる。

まあ、誰か参加者増えたらいいなー、と思いつつ、今回の記事は、distributed.netをやるのに適したCPUの考察。

RC5-72に有力なCPU

自分ではRC5-72には興味がないので、細かいところは色々雑だけども。

 

RC5-72については、GPUを使うOpenCLクライアントが抜群に速い。

GTX750Ti程度でも960Mkeys/s。Core i7-3517U (実働2.8GHz / 2C4T / Ivy Bridge)で25Mkeys/s程度。文字通り桁が違う。

OpenCLクライアントは、グラフィックボードを増設しなくても、最近のCPU内蔵グラフィックなら利用可能。

Intelの内蔵グラフィックでも、Core i5-4440で54Mkeys/sと出た。Ivy Bridge以前のものだと、CPUよりGPUが速い可能性が出てくる。

ましてAMD Fusion APUだとGPUがより強力で、A8-7600のR7は368Mkeys/sと、まったくもってGPUらしいパワーをだしてくれる。

RADEONならStreamクライアント、GeForceならCUDAクライアントを使うともう少し速いかもしれない。ただしドライバーのインストールが必要だったりの手間があり、今回は省略。友人にベンチ取ってくれと頼むのにそこまでやれなくて。

 

CPUなら、16年2月にプレリリースされたクライアントver. 2.9112.521で、RC5-72用に追加されたAVX2対応コアが強力。実にこれまでの3.6倍という極端な高速化がなされた。

ただしあいにく、AVX2が使えるのはHaswell以降のCore i/Pentium/Celeronのみ。HaswellやSkylakeなら、GPUよりCPUの方が数倍のオーダーで速くなる。

Ivy Bridge以前だと、ハイエンド寄りのCPUだとかろうじてGPUより速い場合もあるかな、という程度と思われる。Fusion APUは比べるまでもなくGPUが速い。

 

よって、RC5-72をやるなら、予算や消費電力に見合うGPUを増設する。ノートなら、内蔵GPUの利用を試みる。そんなのが最適解。

GPUと、Haswell以降とが飛び抜けて高性能だから、それ以前の古いCPUの単体処理について細かな差を求めたって意味がない状態。

OGR-NGに有力なCPU

RC5-72は正直私は興味ないので、OGRが本題。

OGR-NGについては、以下の様な式で処理性能が出せる。

Pow = Cex × Clk × Cn × HTT係数

  • Pow : 処理性能(Mnodes/s)
  • Clk : CPU動作クロック (GHz)
  • Cn : 物理コア数
  • HTT係数: Hyper Threading有効なら1.2、無効なら1
  • Cex : CPUアーキテクチャによる1GHzあたりのシングルスレッド処理性能
    • Intel Core i (64bit) – 21
    • Intel Core i (32bit) – 17
    • Intel Core 2 (32bit) – 17
    • Intel Pentium M (32bit) – 12
    • Intel Atom (Silvermont – 32bit) – 9
    • Intel Atom (Bonnell – 32bit) – 5
    • AMD Fusion APU (64bit) – 13
    • AMD Fusion APU (32bit) – 9
    • AMD Phenom II (64bit) – 13
    • VIA Nano (32bit) – 11
    • VIA C7 (32bit) – 5

例えば、Core i3-6100 (3.7GHz / 2コア / HyperThreading有効) であれば、21×3.7×2×1.2 = 186.48Mnodes/sと出る。これは実効値と遠からぬ数字。

CPU選択の基本

ただただCPUの性能だけが問題になって、SSD/HDDとかメモリーとか、そういうI/O関係の性能はほとんど関係無い。

CPU内部も、廉価モデルと高級モデルの差になっているキャッシュの容量や、ベースクロックの違いなども影響がない。

はっきり影響があるのは、まず動作クロック。クロックには単純に比例して処理速度が速くなる。

長時間連続稼働が前提になるので無茶はしづらいが、オーバークロッキングもやっただけ効果が出る。

もちろん、実際に動作しているクロックが影響する。昔はCPUクロックは書いてる通りだったけど、最近のCPUでは温度や状況に応じてクロックが変わる。

また、distributed.netのベンチマークはシングルスレッドで実行されるので、この時だけTurbo Boostが効いて最高クロックで回ったりする。でも実際に実行する時は全コア同時稼働で、ベンチマークより低いクロックになる。

例えば、Lavie ZのCore i7-3517Uは公称1.9GHzだが、distributed.net実行中は2.8GHzで動いていた。Turbo Boost最高クロックは3.0GHz。VAIO Pro 11のCore i5-4200Uも、公称1.6GHzで、実働2.1GHzだった。Turbo Boostで2.6GHz。

モバイル用Core iシリーズは、実働クロックは実行してみるまでわからない。

それから、マルチコアであれば、コア数にほぼ比例する性能が出る。

ただし、Hyper Threadingは、せいぜい2割増。2割増せば無駄ではないが、劇的とも言いにくい向上。

Core iシリーズだと、モバイル用はi7でもi5でも2コアにHyper Threadingで4スレッド実行のものがほとんどなので、デスクトップ用のi3くらいの性能しか出ない。

このへんをひとつの計算式にまとめたのが上のやつ。

他に、x86 (32bit)クライアントより、64bit OSで、AMD64クライアントを使うと処理能力が上積みされる。64bit版WindowsならAMD64クライアントを使うべし。IntelのCPUでもAMD64を使う。

以上のことから、例え古いローエンドのCeleronでも、デュアルコアモデルならまずまずの戦力になる。かつてハイエンドだったCore 2 QuadやPhenom II X4なども、まだまだ強力。

新規にデスクトップPCを買うなら、クロック高めでデュアルコアのCore i3より、少しクロック低くてもクアッドコアのCore i5が有利。

CPUアーキテクチャについて

上の式にもある通り、CPUアーキテクチャの影響は大きい。

distributed.netのクライアントは、OGRやRC5の解読に使うアルゴリズムを複数持っている。CPUの特性によって最速のアルゴリズムは変わるので、最適なものを自動的に選んでくれる。

基本的には、新しいCPUが有利。RC5-72がAVX2対応で一気に3.6倍高速化したのは、Haswell以降の新しいCPUでしか恩恵を得られなかった。

ただまあ、ここまで極端に高速化することが、そうしょっちゅうあるわけでもない。

Core i / Core 2

OGRについては、Core iならSandy BridgeでもSkylakeでも、クロックあたりの性能は変わらないまま。

Core 2とCore iを比べてさえ、32bit版で比べるとほぼ差がない。Core 2で64bit OSを使ってる環境が手元になかったのでよくわからないが、64bit環境でも差がないのかもしれない。

同じコアのものなら、Core i7でもCeleronでも、クロックあたりの性能は変わらない。

よって、Core 2・Core iは、古いPCを復帰させて投入するにもオススメしやすい。ローエンド品でも、もちろんコア数とクロックなりではあるが、まずまず悪くない性能を出す。

Atom

Atomは、少しややこしい。初期のものは遅かったが、アーキテクチャが刷新された第三世代Silvermontになって、一気にクロックあたりの処理量が2倍近く上昇した。

またSilvermontには、4コアのものが広く使われているのも強み。消費電力も低いし価格も安い。発熱が小さいから、クーリングファンもさほど轟音を立てないし、部屋が暑くなったりもしにくいという大きなメリットがある。

Atom Z3735G (1.33GHz / 4C4T / BayTrail-T)だったら、モバイル用のCore 2 Duo Uシリーズくらいの処理能力を出してくれる。

最近激安WindowsタブレットやノートPCなどによく入ってる、Atom Z3000番台やCeleron J/Nは、そこそこの処理能力を出してくれる。

しかしAtom Z2000番台以前は、残念ながらイマイチ。クロックあたりの性能も低ければ、クアッドコアモデルも存在しない。

Fusion APU / Phenom II

IntelもCore i とCore 2で、クロック当たりの性能は差がなさそうに見えたが、AMDもどうやらPhenom IIとFusion APUとで差がなさそうだ。

シングルスレッド性能は、Fusion APUはCore iの3/5程度しかない。

その代わり、4コアのものを手に入れるには、Intelではi5以上のそこそこ上等な物が必要だが、Fusion APUはローエンド以外は4コア。

シングルスレッドでは負けるけど、コア数が多いものが割安に買えるので、中級以下のクラスだとAMDが優位。

Core 2 DuoとPhenom II X4もそういう関係だった。

その他

その他のCPU、Pentium MとかPentium 4まで古くなると、消費電力に見合った性能が出ないので、投入してもあまり旨味がない。

その世代だとOSもWindows XP以前でセキュリティに問題があるけど、distributed.netとのインターネット通信が必要なので、ネットに繋がっていないのも困る。

古いコンピューターであえて稼働させてみるという遊びはあるけれども。

 

 

 

 


コメントを残す

コメントは管理者の承認後に表示されます。


名前: