【最新パーツ性能チェックVol.43】Conroe登場間近! 予想通りの爆発的高性能に影を落とす盲点とは?
|
2006年7月14日
7月中にはOEM向けに出荷するとアナウンスされたインテルの次世代CPU“Conroe(コンロー)”。対応マザーボードも発売され、あとはCPUの正式発表と店頭販売を待つのみとなった。2.93GHzの「Core 2 Extreme」と2.66GHzの「Core 2 Duo」を元に、その性能を多角的に評価してみた。
IDFではFX-62を大きく上回る性能を実演
インテルは今回、Conroe投入にあたって、異例の“事前性能公開”を行なっている。最初は今年春のIDF(Intel Developer Forum)。月刊アスキーの誌上でもレポートしたが、ここで行なわれた特別セッションで、ほぼ同条件にそろえたConroe-2.66GHzとAthlon 64 FX-62相当機(Socket 939/DDRベースのAthlon 64 FX-60を2.8GHzにクロックアップしたもの)を並べ、各種ベンチマークでConroeが圧倒的に高速であることを見せつける内容を披露した。この時の結果はグラフ1のとおり。その後、6月には都内で再度ベンチマークセッションが開催されてもいる。
Athlonとしては、DDR2対応のSocket AM2モデルによってキャッチアップが期待されたが、Vol. 40で見たように、同クロックのSocket 939版に比べ、めぼしい性能向上が見られなかった。この点ではConroeが有利だが、ベンチマークセッションではインテルがセレクトし、インストールしたテストしか実行が許可されていないため、基本的にはConroeに不利なものは入っていないのは当然と考えられる。したがってここでは、本コーナー恒例のテストプログラム群において、Conroeが実際にFX-62以上の性能を本当にコンスタントに出せるのかが注目される。
 |
“IDF 2006 Spring”でのベンチマークセッションでの結果のメモから。いずれも3Dゲーム。単位はfps、棒が長いほうが高速 |
|
 |
Core 2の裏面。パッケージ自体は現行のPentium 4と同じLGA775 |
|
“Conroe”=“Core 2 Duo”とは何か
“Conroe”ことCore 2 Duoの主な特徴は、すでに各所で解説されているが、性能に直結する部分と機能面で重要なものについてまとめると、以下の4点になる。
●共用の4MBキャッシュ
4MBもの2次キャッシュを1つのダイに内蔵している。これはPC用としては例を見ないゴージャスなものだ。Pentium 4 900番台は2MBのキャッシュを2つ、合わせて4MB搭載しているが、2MBキャッシュのCPUのダイを2つ乗せてくっつけたものだ。
●5命令解析&実行
CPUの性能は、クロック周波数と、1クロックあたりの命令実行数(IPC)に比例することはよく知られている。Core 2 Duoは、1995年のPentium Pro以来、ながらく変更がなかった「x86命令を3命令デコード、内部RISCエンジンで(デコード結果の)μopを5命令実行」というスペックを強化し、「x86命令を5命令、μopを6命令実行」とした。
歴史的にこれらがどのように変わってきたかを表にまとめてみた。80386では、2クロックにつき1命令の実行だったのが、486で1クロックに1命令となり、Pentiumで2命令、Pentium Proで3命令となったのが、今回ひさびさに増えたことがわかる。
Pentium IIIもCore DuoもAthlon(64)も、1次命令キャッシュからプログラムコードを読み取り解釈する能力(デコード)は1クロックにつき最大3命令だったのだが、Core 2 Duoではこれが5命令に増えている。この“入り口”の強化によって、1クロック当たりの実効平均命令実効数が大きく増えることが期待される。いくら命令実行ユニットがたくさんあっても、そこに命令を供給できなければ性能は上がらない。表では、CPUのポテンシャルとして、クロック周波数とデコード能力を掛け合わせた数値も並べてみた。
ちなみにPentium 4は、x86命令そのものを蓄えるキャッシュがなく、変換後のμopを1クロックにつき3つスケジューリングする構造だが、1つのx86命令は1つ以上のμopになるので、クロック当たり3μopsというスペックは、x86換算だともっと少なくなる。表のPentium 4欄でクロック×デコード数における“−α”はこれを意味している。
表1 CPUの同時命令実行数の推移
| | クロック | デコード IPC(x86) | パイプライン IPC(μop) | 命令発行 IPC(μop) | 性能指標 (クロック×x86デコード) |
| Intel 386 | 33 | 0.5 | 0.5 | 0.5 | 16.5 |
| Intel 486 | 100 | 1 | 1 | 1 | 100 |
| Pentium | 233 | 2 | 2 | 2 | 466 |
| K6 | 600 | 2 | 4 | 7 | 1200 |
| Pentium Pro〜III | 1400 | 3 | 3 | 5 | 4200 |
| Athlon (XP) | 2200 | 3 | 3〜9 | 9 | 6600 |
| Pentium 4 | 3800 | 3(μop) | 3 | 5 | 11400−α |
| Athlon 64 | 2800 | 3 | 3〜9 | 9 | 8400 |
| Pentium M | 2266 | 3 | 3+α | 5 | 6798 |
| Core Duo | 2166 | 3 | 3+α | 5 | 6498 |
| Core 2 Duo | 2933 | 4+1 | 4+α | 6 | 14665 |
|
※パイプラインにおける“+α”は、“μopsフュージョン”による実効値増加を示す。
●メモリの投機読み出し
RISCエンジンにおける性能向上の大きな柱に、時間的に先の命令であっても実行可能であれば実行してしまう“逆順実行”機能がある。しかしメモリの読み出しについては、その前にメモリへの書き込み命令があった場合、先に読むと間違った値をロードしてしまう可能性があるため、従来は逆順実行できなかった。Core 2 Duoではこれを行なえるようになり、パイプラインのストール(停止)の大きな要因である“メモリの読み出し待ち”を大きく削減できるようになった。ちなみにItanium2やEfficeonでも類似の機能の実装例はある。
●スループット1のSSE命令
従来、Intel CPUではSSE命令のスループット(命令を発行可能な間隔)は2(2クロックにつき1つ)だった。これがCore 2 Duoでは1になっている。SSE命令が集中的に並ぶマルチメディア処理では、大きな性能向上が期待できる。
Core 2 Duoは、ベースとしてはCore Duoの延長にある。Core Duoでさえ、Pentium 4やAthlon 64 X2のミドルクラスの性能であるのに、1命令当たりの実行可能命令数が劇的に増え、メモリレイテンシの影響を受けにくくなり、マルチメディア処理が高速化し、クロックも最大36%アップするのだから、考えてみればぶっちぎりの性能が出ても当然といえる内容だ。以下、実際の検証結果をお届けしよう。
|
|
左がCore 2 Extreme、右が1世代前に当たるCore Duoの「CPUZ」による素性表示画面。Core 2では負荷がかからないと自動でクロックを1.6GHzに落とされてしまうようだ。注目のCPUIDは“6F5”。Core Duoの“6E8”から、順当にモデルナンバーが1つ上がった。アーキテクチャに相当な変更を加えたため最上位の“ファミリ”が変わるかとも思ったが、律儀にPentium Proファミリーの“6”を守った。1次キャッシュは命令、データともに32KBでCore Duoと変わらないが、2次キャッシュが衝撃の4MB。FSBは1066MHzに上がっている。CPUの機能としては、SSE4とEM64Tのサポートが追加されている |
新アーキテクチャと65nmパワーの絶妙ブレンド
今回、Core 2はインテルの975Xマザー「D975XBX」を使用、メモリはDDR2-533で動作させた。本来DDR2-800対応のはずのプラットフォームだが、編集部のDDR2-800のメモリを装着しても、自動設定だとDDR2-533で起動してしまい手動で666MHzや800MHzにセットするとマシンが起動しない。CPUもマザーもサンプルのため、どちらかに問題があるようだ。DDR2-800を使用すればより高速になるが、Core 2のFSBが1066MHzであり、スループット的にはDDR2-533のデュアルチャネル相当なので、そう大きな差は出ないものと想定される。
比較対象はAthlon 64 FX-62とした。こちらはDDR2-800のメモリを18-5-5-5のタイミングで動作させている。Athlon 64においてはFSBによるメモリ性能の制約がなく、メモリを533MHzに落とすと性能面にかなりのインパクトがあるため800MHzでの計測とした。
Core 2については、2.93GHzのExtreme、2.66GHzのDuoのほか、2.4GHz品のシミュレーションとして、Extremeのクロックを2.4GHzに落とした状態での結果も計測した。
なお、Core 2のラインナップは表2のとおり。
表2 Core 2のラインナップと主な仕様(価格は現時点では不明)
| CPU名 | クロック周波数 | FSB | 2次キャッシュ | TDP |
| Core 2 Extreme X6800 | 2.93GHz | 1066MHz | 4MB | 75W |
| Core 2 Duo E6700 | 2.67GHz | 1066MHz | 4MB | 65W |
| Core 2 Duo E6600 | 2.4GHz | 1066MHz | 4MB | 65W |
| Core 2 Duo E6400 | 2.13GHz | 1066MHz | 2MB | 65W |
| Core 2 Duo E6300 | 1.86GHz | 1066MHz | 2MB | 65W |
|
グラフ2〜13の結果から一目でわかるように、Core 2の速さには感嘆させられるばかりだ。Extremeはまさに無敵、Core 2 Duoの2.4GHz版でも、悪くてFX-62程度、多くのテストではFX-62よりワングレード上の性能を見せている。
特に大きな差がついた「Superπ」は、シングルスレッドのタスクなので、4MBのキャッシュを使えることが効いたものと思われる(Athlon 64では1MBしか使えない)。このほか、従来Athlon 64勢が強かった「Final Fantasy」や「Commanche 4」で大きくスコアを伸ばしたのは、アーキテクチャ面の強化に加え、これも4MBキャッシュの効果が大きいものと思われる。90nmで作ったらとんでもないダイサイズになってしまう、こうした大容量キャッシュを1ダイに詰め込める65nmプロセスの力である。
Core 2 Duo 2.4GHzは、位置づけとしては(エクストリームでない)メインストリームの上から2つ目だから、手が出ないような高価格にはならないことが期待される。これで10万円オーバーのプレミアムCPU、FX-62をしのぐ速度を得られるのだから、コストパフォーマンスはすばらしい。また消費電力面でも、アイドル時こそFX-62と同レベルだが、負荷をかけた状態ではCore 2が圧倒的に低い(グラフ14)。ワット当たり性能ではさらに大きな差がついていることになる。
 |

グラフ2 棒が短いほど高速。CPUの、主に浮動小数点演算の性能がわかる「Superπ」。キャッシュサイズが大きく影響することがわかっている。シングルスレッド |
 |

グラフ3 棒が短いほど高速。可逆の高性能圧縮アーカイバ「DGCA」によるファイル圧縮時間。シングルスレッド |
 |

グラフ4 やや旧世代の3D描画テスト。伝統的にAthlon 64が強かったが、今回Core 2が一気に逆転して差を広げた。シングルスレッド |
 |

グラフ5 大ヒットゲーム「Final Fantasy XI ver.2」の快適度を見るためのテスト。Athlon 64は従来大きくリードしていたが、ついにここでも逆転を許した。おそらくシングルスレッド |
 |

グラフ6 Direct X9世代の描画テストだが、この「CPU」スコアは、ビデオカードではなくCPUによるレンダリングを行なう。また、AIや物理シミュレーションを同時に行なう、マルチスレッド対応3Dテストでもある。Athlonはやや苦手としていたが、ここで大きく差が開いた |
 |

グラフ7 最大4スレッドまでの同時実行を行なう、オフィスワークシミュレータ的なテスト。ここでもCore 2の優秀さが光る |
 |

グラフ8 マルチスレッド対応の3D CGのレンダリングテスト。FX-62をCore 2-2.4GHzがかわした。Core 2-9.33GHzのスコアは、ちょっと前までは「デュアルコアCPU×2」のシステムでなければ出せない水準だ |
 |

グラフ9 棒が短いほど高速。2スレッドまで対応する「Windows Media Encoder 9」によるビデオの圧縮時間。Core 2勢が上位を独占した |
 |

グラフ10 棒が短いほど高速。「Windows Media Encoder 9」のうち、唯一2つ以上のスレッドに対応する“Advanced Progile”でのテスト。ここではFX-62がCore 2-2.4GHzと同スコアとなった |
 |

グラフ11 棒が短いほど高速。マルチスレッドに対応する「DivX 6.1」Codecでの動画圧縮時間。Core 2勢が強い |
 |

グラフ12 棒が短いほど高速。日本の定番エンコーダ「TMPGEnc 4」で、MPEG2形式での圧縮処理をおこなった際の時間。マルチスレッド対応。ここもCore 2が上位を独占 |
 |

グラフ13 棒が短いほど高速。「TMPGEnc 4」が内蔵するMPEG4圧縮エンジンによる圧縮テスト。シングルスレッドだが、ノイズ除去フィルタをかけているので2スレッドが動いている。Core 2の強さが目を引く |
 |

グラフ14 システムレベルの消費電力。電源は同じものを使っている。Athlon 64は“Cool'n'Quiet”を有効にしている。高負荷時でもCore 2の消費電力が上がらないのがよくわかる |
ついに対応した64bitモードに弱点あり
ここまでの結果はCore 2の圧勝だったが、実は意外なところに弱点があった。64bitである。
といっても、64bitのWindows XP上で今回テストしたようなプログラムを走らせる場合には、目立った性能の変化はない(これはAthlon 64でも同じ)。問題は、64bit Windows用にコンパイルされた、いわゆる64bitネイティブアプリだ。
とくに、ほぼ同機能のアプリが提供されている「Panorama Factory」(複数の画像をつなげて360度の写真を作るソフト)や「sakura editor」(テキストエディタ)、「7-Zip」(高性能圧縮ソフト)の結果を見ると事態がよく把握できる(グラフ15〜17)。Athlon 64はいずれも64bitネイティブ版のほうが性能がアップしているのに対し、Core 2 Duoはよくて横ばい、場合によっては40%も、ネイティブアプリのほうが低速になっている。その結果、「7-Zip」では32bitだとCore 2-2.4GHz程度の速度だったFX-62が、64bitだとCore 2-2.93GHzに迫る数値になり、「Panorama Factory」でも、Core 2-2.4GHzはFX-62に抜かれ、「sakura editor」に至っては、32bitではラスだったFX-62が一気に逆転トップを飾っている。
 |

グラフ15 棒が短いほど高速。64bit対応アプリとしてはもっとも早期に登場した「Panorama Factory」で、6枚の画像を360度のパノラマ画像に変換するのに要した時間。Athlon 64では64bit版を使ったほうがぐんと高速化するのに対し、Core 2では逆に大幅な速度ダウンが見られる |
 |

グラフ16 棒が短いほど高速。エディタソフト「sakura editor」で、526000回の置換を行なうのに要した時間。ここではCore 2における速度低下が著しく、64bit版についてはFX-62がトップの成績を収めた |
 |

グラフ17 棒が短いほど高速。高性能圧縮ソフト「7-Zip」による圧縮時間。Athlon 64ではいくらかスピードアップしたが、Core 2ではほとんど性能が上がっていない |
原因はおそらく、Core 2のアグレッシブな設計と、64bit対応への着手の遅れだろう。
すでに述べたように、Core 2は1クロックにつき最大5命令を命令キャッシュから取り出し、解析することができる。しかし、この際のデータバスは20バイトとなっている。5命令取り込むためには、1命令あたり平均4バイト以下である必要がある。x86の命令は典型的な例だと、レジスタ間での演算で2バイト、メモリアクセスが2〜4バイト、サブルーチンコールが5バイト、条件分岐で2〜6バイト、オペランドに32ビットの数値をダイレクトに参照すると、プラス4バイト必要といった具合で、処理によってかなりばらつく。それでも平均4バイトというのはそんなに無茶な設定ではないように思われる。
しかし、64bitのネイティブアプリにおいては、レジスタを「64bitレジスタとして使う」場合、あるいは「64bitで拡張されたR8〜R15、XMM8〜XMM15などのレジスタを使う」場合に、命令の途中に“REX”という拡張符号(プリフィクス)が追加される。64bitネイティブアプリの高速化の大きなポイントは、この拡張レジスタを使用する点にあるため、これが出てくる頻度はきわめて高いと考えられる。5つの命令中、仮に4つでこれが出てくると、それだけで命令長は4バイト増えてしまう。これによって、32bitモードでは1クロックにつき5命令取り込めたのに、64bitモードでは4つ以下しか取り込めない、という事態も発生するだろう。
64bit版Vistaへの影響が気がかり、フォローの余地はあるか?
最初から64bitを前提に設計していればよかったのだろうが、Core 2の源流とも言うべきPentium M(Banias)のコアは、もともとモバイル向けだ。消費電力削減に精力を傾ける一方で、「4GBオーバーのメモリの搭載」は用途として想定しておらず、64bit対応へのインセンティブが低かったのではないか。実際、64bitのWindows XPは2年以上も前からβテストが始まり、昨年春には正式版も発売されているのに、今年1月に登場した(Pentium M後継の)Core Duoは64bitに対応していなかったことからも、64bit対応にとりかかったのが比較的最近であることを伺わせる。
もっとも「VirtualDub 64」上での64bit「Xvid」による圧縮とか、「Shade 8.5」によるレンダリング、といった64ビットアプリでの処理においては、Core 2-2.4GHzでもFX-62を上回るスコアを出している(グラフ18、19)。Shadeにおいては、64bit版のほうが若干高速になってもいる。Athlon 64だと劇的に高速化しているのに比べると、相当な逆風を受けていることは確かだが、おそらくはSSE命令を多用するプログラムだけに、SSEのスループット向上効果でリカバーできたのだろう。いずれにしろ「sakura editor」を例外とすると、64bit環境ならAthlon 64系のほうが高速、と言えるほどではない。
 |

グラフ18 棒が短いほど高速。64bitの動画編集ソフト「VirtualDub64」上で、64bit対応のCODEC「Xvid64」を使ってファイルを圧縮する際の時間。これはCore 2が高速だ |
 |

グラフ19 棒が短いほど高速。64bit対応のCGレンダリングソフト「Shade 8.5」に付属のベンチマーク用データ“rex”のレンダリング時間。Athlon 64では64bit版を使うことで大幅な速度向上が見られるが、Core 2ではごくわずかな差しかない。とはいえ、速度的にはCore 2のほうが上回っている |
ただ、Vistaのラインナップのほとんどすべてに64bit版が用意され、来年はいよいよ64bitがデフォルトになろうかという勢いなのに、「64bitアプリのほうが遅いことが多々ある」というのでは意気阻喪してしまう。「メモリを4GB以上積む必要にも迫られていないし、デバイスドライバやアプリの互換性にも不安があるし、まして、遅くなるんだったら、64bit OSを使う必要はない」と考える人が増えると、OSの64bit化への流れにも水を差すことにもなりかねない。実際困らないのなら何も64bit OSを使う必要はないともいえるが、ソフトとハードは車の両輪として、互いに刺激し合いながら進化していくものだ。ソフト環境の一大ステップアップにブレーキがかかるのは、PCの世界全体にとってマイナスだろう。
CPUの設計をそう簡単に変えることはできないだろうから、残る期待はコンパイラのCore 2向け最適化と、ソフトハウスの再コンパイルということになる。まあ、そもそもCore 2ではSSE4命令(という名前かどうかは不明だが、ベンチマークセッション時の取材によると、エンコード時のメモリアクセスを高速化するなどの拡張命令を含むという)も追加されているし、マルチメディア処理ルーチンにおいては、SSE命令のスループットが1になってもいるため、最適性能を達成したければアプリの微調整と再コンパイルはどうせ必要なのかもしれない。また、幸いまだ64bitアプリの数はごく少ない。今ならまだソフトは出荷前にCore 2対応を施すことも可能というタイミングかもしれない。
Core 2で64bit Windowsを使う場合には、使いたいアプリの32bit版と64bit版のどちらがより高性能か知りたくなるだろう。いちいち調べるのは面倒ではあるが、Core 2の導入でそのくらいの手間を補ってもはるかに余りある高性能・低消費電力マシンが実現できるのは確かだ。昨年、デュアルコアCPUの登場によって、マルチスレッドアプリは画期的な性能向上を享受するようになったが、これはまあ、CPUが2個入っているんだから当然、という面があった。それに比べると、Core 2による性能のブレイクは、久しぶりに“設計が持つ力”を見せてくれた。
【関連記事】
(月刊アスキー編集部 野口岳郎)
|