考察

ということで、長々とAMD FXの内部分析を行ってきた。さて、前回のレポート以降、AMDの失敗作だの黒歴史だのと散々に貶されてきたAMD FXシリーズであるが、筆者はこれをどうみるか? というと、「デスクトップ向けにしたのが無茶」というのが結論である。

実のところ、(色々と問題はあるものの)BulldozerはAMDが期待した通りの性能を発揮していると思う。ではAMDが期待したものはなにか? というと、サーバーマーケットにおけるシェアを奪回できるようなアーキテクチャである。それはThroughput Computingと呼ばれるもので、要するに多数のスレッドをぶん回してNumber Crunchingを行う類の処理や、Webサーバーの様に多数のHTTPリクエストをハンドリングする処理、あるいはCloudのBackendとして多数のVirtual Machineを同時に動かす処理である。

こうした処理の場合、評価はThreadあたりの性能というよりは、トータルでどれだけの性能が出せるかという観点になる。今回IPCを下げてまでModule構造にしたことで、多数スレッドの場合は確実に向上した事は、たとえばSandraのProcessor Multi-Mediaの結果などからもしのばれる。

勿論こうした性能の向上には、メモリアクセス性能の改善も必要になる。これに関してはRMMTの結果からも明らかな様に、かなり向上させたと言って良いだろう。この点では、もうSandy Bridgeとほぼ同程度と言っても過言ではない。

このBulldozerコアを搭載したOpteron 6200/4200シリーズが本当に市場を奪回できるか? というのはまた別の問題がいろいろあるから単純には答えが出せないが、見た限りではIstanburベースのOpteron 6100/4100よりは良い勝負が出来そうに思える。本当ならばサーバーに適したベンチマークを行うべきなのだろうが、昨今の高性能化したプロセッサ相手では、サーバーのワークロードで十分に負荷をかけるための環境やツールを整備するのは一介のライターの手に余るので、残念ながらこれは見送らざるを得ない。

さて、問題はこれをDesktopに持ってこなければならなかった事だ。現状は、やっとPhenom II X6 1100Tと同等までなんとか漕ぎ着けたというレベルで、アドバンテージはほとんどない。こちらのマーケットはThreadあたりの性能が問題になるから、IPCを大胆に引き下げたアーキテクチャでそもそも勝負になる筈もないからだ。本来ならIPCが3→2に下がっているのだから、これを補うためには動作周波数を50%引き上げる必要がある。Phenom II X6 1100Tが3.3GHz駆動だから、これに見合うだけThread性能を引き上げるためには、5GHz駆動が必要になる。勿論その分コアは6コア(3 Module)にしてもいいが、現行の32nm SOIプロセスでこれを実現するとTDPは200Wを突破するだろう。とても現実的な案には思えない。

ただ実際に結果を見ると、確かにベンチマーク上は明確に見劣りするし、おまけにコストも高く消費電力も多いのだが、現行のAMD FX-8150のレベルで致命的に遅いという処理はほとんど無い。SYSMarkのスコアもPhenom II X6 110Tよりやや低い程度だし、ゲーム類も見たとおり、そう悪い訳ではない。エンコード系も結構健闘している。そういう意味では、ぎりぎり実用に支障がないレベルはちゃんと確保し、ただそこからの上積みがほとんど無いという程度の話である。もっとアプリケーションのMulti-Thread化が進めば、ここに性能の上積みが出現するが、当分のところ実現しそうにないのが残念である。

もっとも、現状はこんな程度の性能だからこそ、今後の伸びしろがたっぷりある、という見方もある。AMDは毎世代で性能の改善を約束している(Photo05)が、少なくとも2012年のPiledriverでやれることはたっぷりあるだろう。たとえばRMMAのテストで示した、妙に最適化が進んでいないというか、チューニングが不十分のまま見切り発車したと思わしき部分を改善するだけでも数%のIPC改善になりそうだ。また、特にL3 Cacheの遅さもまだ打つ手がありそうに思える。

Photo05: 10~15%というのはあくまでもPerformance全体の話で、IPCがここまで伸びるといっているわけではない。

Processに関しても同様だ。AMD FXは32nm SOIとしては2番目(1番目はLlanoことAMD Aシリーズ)にあたるが、AMD Aシリーズは3GHz未満の「低い周波数」での製品で、4GHz超えのAMD FXとはまた要求が異なってくる。このあたりは32nmのままでもまだプロセスの改善や、必要ならばステッピング変更などでもう少し消費電力を下げたり、あるいは動作周波数の上限を引き上げることができるだろう。特に消費電力のところで示したように、Static Powerがかなり大目という印象を受ける。これを多少なりとも改善すれば、100W未満のTDP枠の製品を出すことも可能だろう。

もっと長期的には、ALUの増加でIPCを改善することもそう難しくないだろう。問題はトランジスタ数とダイサイズの関係で、22nm世代では難しいかもしれないが、その先の世代では、たとえばFetchは32Bytes/cycleのままDecoderを5命令/Cycleに拡張、各コアはALU×3、Load×2、Store×1程度の構成にすることも不可能ではないし、この程度で大幅にIPCは改善するだろう。まぁ実際にそうなるか?というのは、その時点でのサーバー向けアプリケーションからの要求が、「もっと多くのThreadを」なのか「Thread数は今程度でいいので、もう少しIPCの改善を」なのかで決まってくると思われる。

そんな訳で、Bulldozerコアそのものは、第一世代としては比較的良くまとまった、それなりの完成度を持った製品だと筆者は評したい。勿論荒削りな部分はまだ残っているが、それは今後のブラッシュアップに期待である。ただ、それがDesktop向けにぜんぜん向いていない、というのが今の最大の課題であろう。