Bulldozerは妥当な性能、Zenで40%向上するIPCは見掛け上のパイプライン本数が増えた事に起因するのでは?


 Y-cruncherは逸早く最新のアーキテクチャに対応したチューニングを施す任意精度演算ベンチマークと言えると思いますが、同時にIA32(x86)の基本命令だけで動作するバイナリが有るのも特徴です。しかし問題点もあり、実行の都度、タイムが結構変わる事です。その為、幾度か計測して最速値を採用する事にしました。メモリの速度にかなり依存しますので、メモリの設定(インターリーブやECCなど)を変更すると速度が結構変わります。

 表を見ると判りますが、Bulldozer(表はBulldozerとPiledriver)は他のアーキテクチャと比較して妥当な性能が出ていると思います(基本的にクロックはTB/TCをOFFにしてIntelは3GHz、AMDは2.8GHzに固定して計測しています)。が、売り方として1コア2スレッドを2コア1モジュールとしてアピールした事がマーケティング上の敗因ではないか?という気がするのです。これがもしIntelであれば2コア1モジュールとしてマーケティングしても50%以上のシェアは取れたのではないか?と思います(それがブランド力という見えない力だと思うのです)。もちろん、それを何年も続けたらさすがにシェアは落ちてゆくとは思いますが・・・

※当初掲載していたものは17号機をIvyBridge-EPとして記載していましたが、SandyBridge-EPにて計測しています(但しコア数、クロック、LLC容量などは同一です。IvyBridgeに交換予定でしたが実際には交換しませんでした)。また20号機をSteamrollerとして記載していましたが誤記ですので改定しました。VIA QuadCoreの物理構成はシングルCPUの4コア品ですが、論理構成はシングルコアCPUのマルチソケット構成(FSB共有型)で、OSインストール初期には1コア4ソケット(又は1コア2ソケット)として認識されます。

y-cruncher-x64-A.png
設定の見直し等で、表の値を若干修正しました@2016/1/20

y-cruncher-x86-C.png

 表中のメモリ速度は Memtest86 4.3 でメモリチェック中に測定された物ですが、正確に測定出来ているか?と言えばSIMDを使った測定はしていないと思いますので、実際の速度と乖離している可能性大です。

 表を見ていると1モジュール2コアで8本あるパイプラインを1コアとして全て使える設定がもしあればZenで言われている40%のIPC向上が可能ではないか?と思いますし、遅すぎる(メインメモリより遅い=クロック耐性を高めた)LLCを通常速度に戻して3~4GHz前後をターゲットにすれば概ねZenコアなんじゃ?とさえ思ってしまいます。なぜなら、1モジュール1コア4パイプラインの結果に対して1モジュール2コア8パイプラインの結果が、まさに40%ほど速いからです。もちろんZen世代ではAVX2やSMT等の差分対応があるとは思いますが、全く新規といいつつも実態は上記の小改良を積重ねた物をシュリンクしたダイ上に詰め込んだのでは?という気がしているのです。(そんな気がするだけですが)

 アーキテクトが替わった場合、基本設計も変わる事がありますが、全て刷新してしまうと物凄い時間が掛りますから開発期間との関係で現実的にはかなりの部分を流用しているのではないか?と思うのです。

 表の数値は、Broadwell-EPの推測値(Haswell-Eの結果を元に推測)を除きBIOS/UEFIにて高精度タイマ( High Precision Event Timer / 旧 Multimedia Timer )をEnableにした状態のWindows7環境下で可能ならNode-Interleaveを有効にして3回実行した時の最速の結果を少数以下四捨五入して記載しています。但し、1GHz以下のCPUに付いては物凄く時間が掛るので1回しか実行していませんし、それらは高精度タイマを搭載していません。空欄は追々追記します。

 視点を変えてパイプライン本数から見ると、K10では1コア6本でしたから、Bulldozerは1モジュールでは6から8に増えたのですが、1スレッドでは6から4に減ったのでシングルスレッド性能が低下したのも当然です。しかしBulldozerと同規模の8本のパイプラインで1コア2スレッドをSMT実装出来ていたらSMT-OFF状態のシングルスレッド性能は向上する訳ですからシェア逆転も有ったのではないか?という気がします。もちろんその場合はコア数ではIntelに負けている訳ですが、AMDという存在に期待される製品はこういった物だと思うのです。

 ここまで書いた内容は、Zenでは2コアで浮動小数ユニットを共有しない事とも整合性がとれています。(しかし2スレッドでは共有する)

 他にZenで何か新しいイノベーションがあるとすれば3D化をどこまでするか?だと思います。HBM又はHBM2をAPUに内蔵する事は概ね確定事項だと思いますがhUMAの事があるので、必然的にHBMはGPU専用メモリではなく、そのままメインメモリの延長線上にあると思うのです。では利用される事が概ね確定している外付けのDDR4とHBMの関係がどうなるのか?ですが。L3の代わりにHBMを使い、L3面積分をGPUその他に割り当てるか、L3ではなく物理メモリのうちGPUが使うアドレスを中心としてHBMが下位アドレスに利用され、上位アドレスに積み上げる様にしてDDR4を追加し主にメモリマップドファイル向けにI/Oキャッシュ的な位置づけかもしれませんね。


関連記事
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

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