オルタナティブ・ブログ > 少しでもパラノイアになってみる >

知的好奇心を満たすために、いろいろなことにチャレンジする

いまさらながらHot Chips 22で公開されたAMDのBulldozerの資料を読んでみる

»

Hot Chipsは、夏に行われるCPU関係のカンファレンスです。そのArchivesは年明けぐらい一般に公開されます。このためいまさらながら、2010/8/22~24に行われたHOT CHIPS 22で公開されたBulldozerの資料を見てみました。一応、当時Bulldozerに関しては"AMDのBulldozerとBobcatの感想(Hot Chips 22)"でも書いています。

Bulldozerの資料は"“Bulldozer”A new approach to multithreaded compute performance"になります。比較する上でHot Chips 14(2002年)で公開されたK8の説明である"The AMD Hammer Processor Core"(HammerとはK8の開発コード)も構成を載せてみます。

・Bulldozer

・Hammer(K8)

全ての単語が同じでないため、それをそのまま比較することはできません。また、K8はL1以降のバス側(Memory Controller等のアンコア部分)がライバルのIntelとは大きく違いアピールする箇所だったため図が入っています。ですが、2011年になるとメモコンを搭載することもシリアルバスもマルチコア対応するための仕組みも一般化したため、省かれています。

BulldozerのK8との際立った違いの箇所は、2コア=1クラスタ構成でマルチスレッドに強くされている箇所です。また、浮動小数点演算(FP)が1クラスタで1FP構成のところです。

次は、decode数の違いです。K8は1コア3-issue(矢印が3つ)で、Bulldozerは1クラスタ(2コア)で4-issueです。数字だけ見れば退化しているようにも見えますが、BulldozerにはIntelのMacro-Fusionの様な機能もあるようで、decodeのラインが同時命令数にならないかも知れません(ついにベールを脱いだAMDの「Bulldozer」と「Bobcat」)。

上記の2つ以外に最も差があるのは、Decode前のFetchです。ここがフロント部分と言われています箇所です。Fetchの前のPrefetchが行われるようになっています。

6コア&3-issue(K10のIstanbul)と4クラスタ&4-issue(BulldozerコアのZambezi)では、前者の方が命令数の並列性が高くなります(Macro-Fusionライクな機能があると計算が違ってきますが)。後者の方がマルチスレッドの融通性はありますが、IPCが落ちるように見えます。それを補うのが予想分岐込みのPrefetchなのかも知れません。

IntelはSandy BridgeでuOPsキャッシュなどのフロントにも大きく手を入れています。AMDも構成に大きく手を入れていますが、フロントにも手を入れています。3-issue/コアはリッチすぎるのではないかと言われていましたが、キャッシュミスが減りdecoderを使い切るケースが増えれば4-issue/クラスタを使い切りIPCが向上しそうです。

それ以外にもBulldozerとK8では違う箇所がたくさんあります。

現在のところBulldozer(Zambezi)の性能はCore i7 950やPhenom II X6 1100Tの50%高速だと噂が流れています。それが正しいのかわかりませんが、ラディカルにマルチスレッドにふった構成、フロント周りの改善を見るとシュリンク&ダイサイズの縮小化で周波数を上げられる以外にも性能向上はありそうです。

ついでに、Hot ChipsでAMDはCPU構成を発表したのは近年では2002年のK8と2010年のBulldozer&Bobcatぐらいです。この間、デュアルコアK8、4コア&6コア K10、モバイルK8/K10等を軽く発表(ダイサイズやトランジスタの写真等)したぐらいです。このことがBulldozerはK8以来の大きな変換であることを証左になります。

ついでにHot Chips 22はAMDのBulldozer/Bobcat以外にも10コア(20スレッド)のWestmere-EXやARMv7-A等も公開されています。公開されるまで時間ががかかるとはいえ、資料をみてみるのもいいかも知れません(CPU関係は解説付きでないと読み取れないところがつらい)。

キーワード検索

bulldozer  AMD  CPU  Intel  GPU  NVIDIA  ARM 

Comment(0)