N-Body を CPU で

先日の記事に続きまして、今回はN-BodyをCPUで実行してみました。

CPUで実行する為には、下記のコマンドラインオプションを使って起動します。

・AMD CPU 又は NetBurst 世代のCPU(要:AMD APP SDK 又は Catalyst)
 -D AMD:CPU

・CoreMA 以降の Intel CPU (要:Intel OpenCL SDK/Runtime
 -D INTEL:CPU

動作要件は、下記のどちらかです。
(基本的にSSE2に対応していればOKです)
 ・SSE2に対応したCPU (AMD APP の動作要件)
  ※具体的には、Intel Pentium4世代以降/AMD Athlon64以降/VIA C7以降(要確認)
 ・Core2以降 (Intel OpenCL Runtime の動作要件)
  ※Core2以降でも AMD APP が動作しますので必須ではありませんが、
   AVX等を積極的に使いたい時は Intel OpenCL Runtime の利用をお勧めします。

Intel XEON 5050 DUAL (Dempsey = PentiumD x2 相当) @ AMD APP SDK 2.6
N-Body_XEON-5050-DUAL-2.jpg

Intel XEON E5450 DUAL (Harpertown = Core2 Quad x2 相当) @ Intel OpenCL
掲載当初はOpenCL実装系のIntel製とAMD製を逆にして掲載しておりました。謝罪して訂正致します。
N-Body_XEON-E5450-DUAL-3.jpg

Intel XEON E5450 DUAL (Harpertown = Core2 Quad x2 相当) @ AMD APP SDK 2.6
N-Body_XEON-E5450-DUAL-2.jpg

Intel XEON X5670 DUAL (Westmere-EP = Core i7 EE x2 相当) @ Intel OpenCL
N-Body_XEON-X5670-DUAL-2.jpg
この環境では若干CPUの負荷不足気味ですのでCPU以外の部分にボトルネックが有りそうです。

Intel XEON X5670 DUAL (Westmere-EP = Core i7 EE x2 相当) @ AMD APP SDK 2.6
N-Body_XEON-X5670-DUAL-3.jpg
上記のIntel OpenCL実装系よりは良い結果が出ますが、負荷が安定しません。HyperThreadの悪影響かもしれませんがグラフの通りピーク性能は良いのですが落ち込みが激しいです。
試しにカーネルをnaive4wayに変更してみましたら多少安定する様に成り落ち込みが減りスコアも改善し描画が若干滑らかに改善しました。
N-Body_XEON-X5670-DUAL-4.jpg
筆者は以前、大規模サイト(瞬間最大2万アクセス/分)のサーバアプリをチューニングしていた経験が有りますが、HyperThreadのチューニングは癖が有り負荷ピーク時にストール(失速)するケースなど、苦労する場合が有るかも知れません。


カーネルオプションを色々変えてみましたが、XEON X5670 以外は loop4way が最速です。 
逆に言うと、XEON X5670(Nehalemマイクロアーキテクチャ)の場合(恐らくSandyBridge世代も)は、最大性能を引き出す為には他のCPUとは異なるチューニング・・・と言うよりむしろGPGPU的なチューニングが適しているのかもしれません。

AMD Opteron 290 DUAL (Athlon64 X2 x2 相当) @ AMD APP SDK 2.6
N-Body_Opteron290-DUAL-2.jpg

AMD Opteron 2439SE DUAL (PhenomII X6 x2 相当) @ AMD APP SDK 2.6
N-Body_Opteron2439SE-DUAL-2.jpg
この結果からの推測ではMagny-CoursのDUAL構成(24コア)は恐らく175GFLOPS程度となりXEON X5670と同程度のスコアに成りそうです。

AMD Opteron 4280 DUAL (FX-8100 x2 相当) @ AMD APP SDK
N_BODY_OPTERON_4280-DUAL_2015062212384247d.jpg
同一クロック(ターボOFF)で上記K10とほぼ同一スコアですからターボONなら超えると思います。
この結果や下記などと比較して予想しますとAbuDhabiのOpteron 6386 SEですと200超えるのではないかと思います。
コア数が増えると負荷が不安定になるのかもしれず、最大性能を発揮できるかどうか?にかかっている気がします。

筆者的番外編
AMD FX-8120(定格動作) @ AMD APP SDK 2.6
N-Body_AMD-FX-8120-2.jpg
この結果からの推測ではInterlagosのDUAL構成(32コア)は恐らく 200 GFLOPS前後ではないかと思われます。
更に、負荷が安定している事から、HyperThreadを使った冒頭のXEON 5050や中程に掲載されているXEON X5670の様なグラフの大きな負荷変動が無く、ピーク性能を常に維持出来るという点(実は結構重要)で優れていると思います。
 
筆者的番外編2
VIA NanoX2 1.4GHz @ AMD APP SDK 2.6 & Intel OpenCL Runtime 1.5
VIA_NanoX2_nBody_BM.jpg
VIA VE-900 のオンボードGPUがOpenGLへの対応が弱いので描画が出来ませんでした。
そこでベンチマークモードで計測のみ行いました。
CPU利用率の赤矢印がAMD APP SDK 青矢印がIntel OpenCL での負荷状況です。

以下、余談ですが・・・

VIA NanoX2 のベンダ名が面白いですね。
 AMD APP SDK を使うと CentaurHauls(セントールテクノロジー)
 Intel OpenCL を使うと Intel(R)Corporation
にそれぞれ成っています。

CentaurHauls(セントールテクノロジー)はVIA傘下のCPU/GPU設計会社ですから合っているのですが、Intel OpenCL を使うと何故かIntelのCPUって事に成っています。
CPUIDがGenuineIntelを返しているのか、それともIntel OpenCLが強制的に置換しているのか、定かではありませんが、OpenCL経由で取得するCPUベンダ名がIntelに成ってしまうというのはどうなんでしょうね?
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

No title

N-Body をリンク先から入手しようとしましたが、リンク切れで、できませんでした。

N-Bodyのリンク切れの件について

先ほど、投稿したN-Bodyのリンク切れの件ですが、
AOCプランニングのホームページが移転していたようです。
早とちりですみません。

Re: N-Bodyのリンク切れの件について

> 先ほど、投稿したN-Bodyのリンク切れの件ですが、
> AOCプランニングのホームページが移転していたようです。

有難う御座います、リンク先を変更しておきます。
プロフィール

DualSocketTheWorld

Author:DualSocketTheWorld
自作を始めて20台目くらいになりますが、最初からデュアルソケット限定(始めた当時はデュアルスロット)で自作しており、近年になってAMD K6を試したくなりSocket7でK6-2+のシングル構成で組んだのがシングル初です。

シングルマザー(含:シングルソケットマルチコア)や4ソケット以上の自作は基本的にしませんし、メーカー製PCの改造も基本的にはしません(ノートPCのSSD化くらいはしますが・・・)

基本路線はワークステーションと呼ばれる分野での自作で、OSもWindows系であればProfesionalが主な対象に成ります。

ゲーマーの様なOverClockは行わず、WS路線としてハイエンドCPUとハイエンドGPUの組み合わせで定格或いはDownClockで発熱を抑えつつ、その時のアーキテクチャに置いて爆速かつ静音を目指し、30年以上の長期に渡り稼動状態をキープする事を目指します。

※基本的にリンクフリーです。どこでも自由にどうぞ。

※画像は時々変ります。

※お決まりの文章ですが、改造は個人の責任で行ってください。ここに記載された情報は間違いを含んでいる可能性が有り、それを元に製作や改造などをして失敗しても筆者は一切責任持てませんので悪しからず。

筆者略歴:
小学生時代にゴミ捨て場で拾ったジャンクテレビ数台を分解して部品を取り出し真空管アンプを自作、中学生時代にPC8801mkⅡsrでZ80アセンブラを始める。社会人になって初のプログラムは弾道計算、後に医療系・金融系プログラマ~SEを経て100~200人規模プロジェクトのジェネラルマネジャを数年経験、独立して起業。現在は不動産所得で半引退生活。
(人物特定を避ける目的で一部経歴を変更しています)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
アクセスカウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR