“Bulldozer”アーキテクチャの最新Opteronのベンチマーク結果は?


 先日開催されたAMDのFinancial Analyst Dayでは、サーバーのロードマップに関して、大きな刷新が行われた。しかしロードマップが刷新されても、新たなサーバー向けCPUがリリースされるのは、順調にいって今年の秋、開発スケジュールが遅れれば2013年になってしまう。このような状況下では、当面の間AMDのサーバーCPUとしては、BulldozerアーキテクチャのOpteron 6200/4200シリーズを使うことになる。

 そこで知りたいのは、Opteron 6200/4200シリーズは、サーバー用途としてどの程度のパフォーマンスを示すか?ということだ。今回はAMDからはBulldozerアーキテクチャのCPUを、デルからはOpteron搭載のx86サーバーをそれぞれお借りできたので、実際に性能をテストしてみた。

 

AMDのBulldozerアーキテクチャとはどんなモノなのか?

Bulldozerアーキテクチャでは、演算ユニットが2つあるが、フェッチやデコード、2次キャッシュメモリなどが共有されている。2CPUコアが1Bulldozerモジュールとなっているため、CPUコアの拡張は2コアごとに行われる

 ベンチマークの結果をお伝えする前に、まずBulldozerアーキテクチャについておさらいしてみよう。

 Bulldozerアーキテクチャでは、1つのCPUモジュールに、2つの整数演算コア、2つの128ビット浮動小数点演算コアが搭載されており、1つのBulldozerモジュールでは、2つのスレッドが同時に実行できる。

 浮動小数点演算コアに関しては、128ビットの浮動小数点命令の場合は、2つのコアのリクエストに合わせて、同時に処理できる。ただし、命令のフェッチ、デコード、2次キャッシュメモリは、Bulldozerモジュールに1つしか用意されていない。頻繁に使用される整数演算コアには、整数演算コアごとに整数演算用のスケジューラーが用意されているが、浮動小数点演算コアには、2つの浮動小数点演算コアが1つの浮動小数点演算用のスケジューラーを共有している。

 整数演算コアの1次キャッシュメモリに関しては、コアごとに用意されている。2次キャッシュメモリは1CPUモジュール(2コア)で2MB用意されている。このため、4モジュール(8コア)では2MB×4で8MB搭載されている。

 3次キャッシュメモリはCPU全体で16MB(Opteron 6200)/8MB(Opteron 4200)となる。ただし、Opteron 6200はMCMで2つのCPUダイを内蔵しているため、3次キャッシュメモリが16MBといっても、1CPUダイで考えると8MBとなる。つまり、同じCPUパッケージに2つのCPUダイがパッケージングされているため、隣のCPUダイに搭載されている3次キャッシュメモリを、もう一つのCPUダイから利用することはできない。

 Opteron 6200シリーズは、最大8つのCPUコア(Bulldozerモジュールとしては4つ)を搭載したCPUダイを2つ搭載している。これにより1つのCPUで最大16CPUコア(4つBulldozerモジュール×2つ)を内蔵したCPUとなる。

 メモリチャンネルは4チャンネルをサポート。チャンネルごとに3枚のDIMMがサポートされ、最大12枚のDIMMが使用できる。これにより32GB DIMMを使用すれば、最大CPUあり384GBのメモリが搭載できる。


今回発表されたBulldozerアーキテクチャを採用したOpteron 6200シリーズは最大16コア、Opteron 4200シリーズは最大8コアのCPUとなっているOpteron 6200シリーズのG34ソケットは、クレジットカードを一回り小さくした大きさ。CPUダイが2つ入っているため、CPUパッケージとしては非常に大きい

 

ベンチマークテストのハードウェア環境

 まずは、今回のハードウェア環境を説明しよう。前世代のCPUであるOpteron 6164HEを搭載した2ソケットサーバー「PowerEdge R715」をデルから、またBulldozerアーキテクチャのCPU「Opteron 6274」はAMDからお借りし、CPUを筆者宅で入れ替えてテストを行った。


PowerEdge R715は、G34パッケージのOpteron 6000シリーズのデュアルソケットサーバーを2Uサイズで実現している。Opteron 6000シリーズは、1ソケットで2つのCPUダイを搭載しているため、いわば2Uサイズで今までの4ソケットサーバーに相当するといえる。また組み込み型のハイパーバイザーを動かすために、内蔵HDDとは別にデュアルSDモジュールを搭載し、SDカードからハイパーバイザーを起動することも可能だ。SDカードはデュアル化されているため、耐障害性も高い。リモートマネジメント機能もiDRAC6にバージョンアップされ、リモートからのメンテナンスがより簡単にできるようになっているのも特徴

 Opteron 6164HE(開発コード名:Magny-Cours)は、Opteron 2400シリーズ(開発コード名:Istanbul)をマルチチップモジュール(MCM)で2個搭載したモノだ。このため、1つのCPU内に6コア×2チップで12コアを搭載しており、PowerEdge R715は2ソケットサーバーのため、サーバー全体では24コア(12コア×2)のシステムとなる。

 動作クロック数は1.7GHzと低めだが、動作クロック数を押さえることで、85Wと低消費電力化を果たしている。

 一方のOpteron 6274は、BulldozerアーキテクチャのCPUをやはりMCMで2個搭載したモノだ。このため、1ソケットで8コア×2チップで16コアを搭載し、サーバー全体では32コア(16コア×2)のシステムとなっている。

 動作クロックは2.2GHzで、TDPは115WとOpteron 6164HEよりも高い。

 

ベンチマークソフトのBenchmark Factory for Databaseを利用

 ベンチマークソフトとしては、クエスト・ソフトウェアが提供している「Benchmark Factory for Database」(以下、Benchmark Factory)を使用した。

 Benchmark Factoryは、OracleやSQL Serverなどのデータベースを搭載したサーバーに対して、クライアントPCから負荷をかけてベンチマークを行うソフトウェアだ。特に、Benchmark Factoryでは、AS3AP、Scalable Hardware、TPC-B、TPC-C、TPC-D、TPC-H、TPC-Eなどの業界標準に準拠したベンチマークが行える。

 今回は、すべてのベンチマークを行うわけにはいかなかったため、Scalable Hardware、TPC-Hの2つのベンチマークを行った。サーバーのデータベースとしては、マイクロソフトのSQL Server 2008 R2を使用した。

 なお今回は時間の問題もあって、Benchmark Factoryの試用版を利用したため、100仮想ユーザーまでの負荷しかかけられなかった。

 ベンチマークとしては限定された状況下での結果であるから、Opteronの性能をすべて表しているとはいえない。ベンチマークとしては、参考程度に考えてほしい。ただ、Bulldozerアーキテクチャを使用したOpteron 6200シリーズの得手不得手、方向性などがある程度分かってくると思う。

 ベンチマークに使用したハードウェアの仕様、ベンチマークの条件などは、記事の最後に明記しておく。


クエストのBenchmark Factory for Databaseは、データベースのベンチマークを容易に実行できるBenchmark Factory for Databaseの画面。今回は、試用版を使用したため、仮想ユーザー数が100人と制限されている

 

Scalable Hardwareのベンチマーク

 Scalable Hardwareのベンチマークは、ANSI(American National Standards Institute)が規定したリレーショナルデータベース向けのベンチマークAS3APのサブセットだ。特に、CPU、ディスク、ネットワークなどを中心にしてテストを行う。今回、CPU以外は差がないため、出た差異はほぼCPUの性能差と考えられるだろう。

 なお両CPUともに、すべてのCPUコアに負荷がかかっていた。32コアを持つOpteron 6274サーバーであっても、これは同じだ。


Opteron 6164HEのScalable Hardwareベンチマーク結果Opteron 6274のScalable Hardwareベンチマーク結果

 100仮想ユーザー時の結果、Opteron 6274は38,957.18TPS、Opteron 6164HEは33,298.19TPSとなり、Opteron 6274はOpteron 6164HEの約1.17倍の性能を有していることになる。

 トータル エグゼキュションでは、Opteron 6274は7,012,269回、Opteron 6164HEは5,993,275回と、TPSと同じく約1.17倍だった

 総バイト数vs仮想ユーザー数では、100仮想ユーザーまで10人刻みでテストを行ったが、Opteron 6274とOpteron 6164HEともに、グラフとしては同じ伸びを示している。数字では、Opteron 6274が100仮想ユーザーの場合438,900バイト、Opteron 6164HEは375,100バイトと、こちらも1.17倍だった。


Opteron 6274における総バイト数vs仮想ユーザー数のグラフOpteron 6164HEにおける総バイト数vs仮想ユーザー数のグラフ

 次に消費電力を見てみよう。

 Scalable Hardwareのベンチマークを動かしている場合の消費電力の変化をグラフ化した。両CPUとも、最初はデータベースにデータを作成するため、HDDへのアクセスが非常に頻繁に起こっている。同じPowerEdge R715を使用しているため、この部分に関しては、消費電力はそれほど違わない。

 ベンチマークが動作している最中は、やはりTDPが高いOpteron 6274の方が消費電力も高く、300Wから最大430Wまで使用している。

 一方Opteron 6164HEは、200Wから最大340Wまでで変動している。

 アイドル時の消費電力は、Opteron 6274が164W、Opteron 6146HEが150Wと、両CPUとも変わらない。これは、Opteron 6274がC6ステートをサポートしているためだろう。C6ステートでは、動作していないCPUコアへの電力供給をストップすることで、アイドル時の消費電力を非常に小さくしている。


Opteron 6274の消費電力グラフ。ピークでは430W近くの電力を消費している。ただし、アイドル時は170Wにまで下がっているOpteron 6164HEの消費電力グラフ。TDPが85WのOpteron 6164HEだけあって、アイドル時の消費電力は小さい

 

TPC-H準拠のベンチマーク

 TPC-Hは、意思決定支援システムやビジネスインテリジェンス(BI)などのデータベース環境をシミュレーションするベンチマークだ。つまり、同時アクセスするユーザー数を増やすのではなく、膨大なデータウェアハウスを構築することでデータベースに負荷をかけている。

 今回は、環境の都合で20仮想ユーザーでのテストを行った。


Opteron 6274におけるTPC-H準拠ベンチマークの結果Opteron 6164HEにおけるTPC-H準拠ベンチマークの結果

 Opteron 6274は0.31TPS、Opteron 6146HEは0.28TPSと、約1.1倍のパフォーマンスとなっている。最終結果だけ見ると、両CPUもそれほど変わらないパフォーマンスを示している。個々の仮想ユーザーごとにデータキューブを作成するTPC-Hのベンチマークの特性として、CPUよりはディスクアクセスの方がウエイトが高いようだ。

 より詳細なデータを確認してみると、Opteron 6274は、最高1秒あたり10137700バイト処理されている。一方、Opteron 6146HEは最高1秒あたり60835200バイト処理されている。

 また、最終的な処理時間はOpteron 6274は1時間15分、Opteron 6146HEは1時間32分ほどかかっている。このデータを見ると、Opteron 6274は単位時間の処理速度が高く、短時間で処理が終わっていることが分かるが、大きな差にはなっていない。


Opteron 6274におけるTPC-H準拠ベンチマークの処理バイト数のグラフOpteron 6164HEにおけるTPC-H準拠ベンチマークの処理バイト数のグラフ

 続いて、TPC-Hのベンチマークを動かしている場合の消費電力の変化をグラフ化した。両CPUとも、最初はデータベースにデータを作成するため、HDDへのアクセスが非常に頻繁に起こっている。ただ、同じPowerEdge R715を使用しているため、この部分に関しては消費電力はそれほど違わない。

 CPUに負荷がかかった場合は、Opteron 6274は300Wから445Wの間を変動している。TPC-Hの処理が終了し、アイドルになれば160W近くにまで低下している。

 Opteron 6146HEは、200Wから336Wの間を変動している。アイドル時は、170Wほどになっている。


Opteron 6274の消費電力グラフ。ピークには、445Wの電力を消費している。ただし、Opteron 6164HEよりも短時間で処理が終了しているOpteron 6164HEの消費電力グラフ。TPC-Hのベンチマークが終了するまで時間がかかっている。ピークの電力消費は336Wになっているが、長時間処理が終わらない

 

Bulldozerの性能が劇的にアップしているとはいいにくい

 今回行ったベンチマークの結果と消費電力の変化を見ていると、Opteron 6274はOpteron 6146HEよりも約20%の性能向上を示している。ただし、Opteron 6274(2.2GHz)はOpteron 6146HE(1.7GHz)と比べ、動作クロックが30%ほど高くなっていること、Opteron 6274が16コア、Opteron 6146HEが12コア(サーバー全体ではOpteron 6274が32コア、Opteron6146HEが24コア)ということを考えれば、性能が劇的にアップしているとはいいにくい。

 これはBulldozerアーキテクチャになり、1コアあたりの性能が落ちていることが影響しているのだろう。

 AMDでは当初、CPUコアがシンプルなデザインになって、使用するトランジスタ数が少なくなり、動作クロックをより高くすることが可能になると、Bulldozerアーキテクチャのメリットをこのように説明していた。また、1モジュール(2CPUコア)が必要とするトランジスタ数が少なくなることで、製造プロセスやCPU設計のチューニングが行われることで、より多くのCPUコアが1つのCPUに搭載できるとしていた。

 しかし、実際にOpteron 6200シリーズが完成すると、半導体製造の関係からか、高クロック製品は膨大な電力を消費するようになった。このため、Opteronは、スタンダード製品で115W、ハイパフォーマンス製品で140Wの消費電力に合う動作クロック数に制限しているのだろう。

 実際、消費電力を気にしなければ、デスクトップ用のAMD FX8100シリーズは、高いオーバークロック性能を示している。液体ヘリウム冷却などを使えば、8GHzオーバーの動作クロックが記録されている。

 ただ、安定性を重視するサーバーにおいて、こうしたオーバークロックが行われるわけではないし、最近のデータセンターは、できるだけ集積密度を高めてコンパクトにする動きが一般的なため、高クロック製品であっても、発熱が高いCPUは嫌われる。また、データセンター全体の消費電力も低く抑える必要があるため、CPUあたりの消費電力は小さくなければならない。

 今回のベンチマークを見ると、現状のOpteron 6200シリーズは、こういったニーズを満たしているとはいいにくいようだ。

 また将来的な問題としては、アプリケーションのコストが問題になってくる。マルチコア化が進むのを受け、ソフトウェアのライセンス体系において、コア課金を採用するベンダーが増えているのだ。例えばデータベースでは、すでにコア課金になっている日本オラクルのOracle Database Enterprise Editionに加えて、2012年のリリースが予定されている日本マイクロソフトのSQL Server 2012も、従来のソケット課金からコア課金へと変更される。

 データベースがコア課金になると、1コアあたりの性能は低い代わりに多数のコアを搭載し性能を向上させる、スループットコンピューティングを目指したBulldozerアーキテクチャにおいては、コスト的に不利になる。

 また将来的には、OSやほかのミドルウェアなども、コア課金に変更される可能性もないとはいえず、スループットコンピューティングはコストがかかるようになるかもしれない。今後は、ある程度CPUコア自体の性能をアップしていく必要があるだろう。

 AMDでは、Bulldozerアーキテクチャの次世代アーキテクチャであるPiledriverで、よりCPUコアの性能を向上する予定にしている。さらに、第3世代のSteamrollerアーキテクチャ、第4世代のExcavatorアーキテクチャでも、CPUコアあたりの性能アップを目指している。これから数年のAMDでは、CPUコア数が増えるよりも、CPUコア性能の向上に力が注がれることになる。

利用ハードウェア
デル PowerEdge R715
 メモリ DDR3 1333MHz 64GB(1ソケットあたり32GB)
 ディスク PERC H700 RAID5で構成。HDDはSAS 2.5型(15000rpm) 146GB×6台

Benchmark Factoryのベンチマーク設定
・Scalable Hardware
 バーチャルユーザー:1~100人(10人刻み)
 スケール:10000

・TPC-H
 バーチャルユーザー:20人(User Load Scale×5倍)
 スケール:20

関連情報