■後藤弘茂のWeekly海外ニュース■アムダールの法則を巡るIntelとAMDの戦い |
●マルチコア時代のカギとなるアムダールの法則
ここへ来て、CPU業界から、「アムダールの法則」という言葉が頻繁に聞こえてくるようになった。それは、マルチコア化路線の展望が、この法則に深く関わっているからだ。CPU業界の将来は、アムダールの法則を巡る戦い、または論争へと発展しつつある。
アムダールの法則というのは、ラフに言うと、コンピュータの処理性能は全体のコンピュテーション時間のうち機能の拡張によって高速化される部分の比率に依るというもの。ポイントは、実行するタスクの中の並列化できない=逐次実行するしかない部分に、タスク全体の実行時間が制約されると指摘している点にある。
そのため、アムダールの法則は、マルチコアの有効性に強く結びつく。CPUをマルチコア化して多くの並列処理ができるようにしても、全体のタスクのうち並列化できない部分の比率が多いと、結局CPUが逐次実行をしている時間が長くなってしまい、アムダールの法則によってCPU性能が上がらなくなるからだ。つまり、並列化できる部分が多い→アムダールの法則の制約が弱まる→マルチコアによる並列化によって性能をアップできる。並列化できない部分が多い→アムダールの法則の制約が強まる→マルチコアによる並列化で性能があまりアップできない。といった論理となる。
そして、PC業界にとって興味深いのは、2大CPUベンダーのIntelとAMDが、それぞれアムダールの法則に対して、ある意味で相反する見方をしている点だ。両社は、アムダールの法則について、プレゼンテーションや論文、インタビューなどで語り始めている。対立構図を単純化すると次のようになる。
Intel=今後のアプリケーションでは並列化できる部分が大幅に増える→アムダールの法則の制約が弱まる→マルチ/メニイコアによる並列化で性能が大幅にアップできる。
AMD=現状のアプリケーションでは並列化に限界がある→アムダールの法則の制約が強い→マルチ/メニイコアによる並列化には現状ではある程度の限界がある。
そのため、両社の描くマルチ/メニイコアの展望は食い違っている。当面の、デスクトップ/モバイルPCのデュアルコア化とサーバーでの4~8way程度のマルチコア化については、両社の路線は一致している。しかし、その先では、Intelが10個以上のコアを搭載するメニイコアへと急ぐのに対して、AMDは急激なコア数の増加については懐疑的な姿勢を崩さない。Intelが、アーキテクチャを簡素化したコアを組み合わせてまでコア数を増やそうとしているのに対して、AMDは、ハイパフォーマンスなCPUコアアーキテクチャを維持しようとしているように見える。
●アムダールの法則が制約ではなくなると見るIntel
Intelの研究部門を統括するPatrick P. Gelsinger(パット・P・ゲルシンガー)CTO兼上級副社長(CTO & Senior Vice President)は、アムダールの法則のポイントはタスクの中の並列化可能な部分の比率にあると指摘する。
「もし、あるタスクの80%が逐次実行で20%が並列実行(が可能な部分)だとしたら、たとえ、20%を0%にできたとしても、タスク全体で見ると20%の性能しか向上しない。ところが、20%が逐次実行で80%が並列化可能だとすると、ずっと多くの性能向上が可能になる。すると、(アムダールの法則の制約についての)問題は、タスクの中で、どれだけが逐次実行部分で、どれだけが並列化可能かという点になる」
つまり、CPUが実行する全タスク中の並列実行できる部分が増えれば、コア数を増やしても有効になるというわけだ。Justin R. Rattner(ジャスティン・R・ラトナー)氏(Senior Fellow, Corporate Technology Group, Senior Director, Systems Technology Lab)は、その問題はプログラムサイズの規模と関連すると指摘する。
「並列化では、アムダールの法則が課題となる。しかし、将来のアプリケーションでは、アムダールの法則が制約要素になるとは思わない。それは、プログラムサイズが大きくなると、逐次実行部分より、並列化が可能な部分の方が急激に増えるからだ。そのため、大きなプログラムになればなるほど、(並列性の)効率がアップする。だからこそ、大規模な並列スーパーコンピュータがこれだけ成功している」
「アムダールの法則はプログラムのサイズが固定されていると仮定しているように思う。確かに、プログラムサイズが固定されていれば制約になるが、将来のアプリケーションではプログラムサイズも拡大するため、並列性が高まる」
Intelは将来のアプリケーションでは、プログラムサイズが大きくなると予測している。そのため、全タスクのうち並列実行できる部分が増えて、その結果、マルチ/メニイコアの恩恵を受けやすくなると見ている。つまり、アプリケーション側がこれからは変わってくるから、並列化できるようになると言っているわけだ。
「今のアプリケーションは、シリアルストリームの実行を前提としてアルゴリズムが開発されている。こうしたアプリケーションを、並列実行することは確かに難しい。しかし、将来のアプリケーションのアルゴリズムは、もっと並列実行に適したものになるだろう」(Gelsinger氏)
Intelは、明瞭にメニイコアが現在のアプリケーションのためのアーキテクチャではないと言っている。では、どんなアプリケーションを予想しているのだろう。Intelは、マルチ/メニイコア時代にターゲットとするアプリケーション分野を「RMS」と呼んでいる。RMSは「Recognition」「Mining」「Synthesis」のイニシャルを取ったもので、認識・マイニング(分析&抽出)・合成、ということになる。RMSは、IntelのStephen L Smith氏(Vice President, Desktop Platforms Group)がアジアプレス向けに12月に行なったマルチコアブリーフィングなどに出てきたキーワードだ。Intelは、この領域のアプリケーションのスレッド並列性についてこのところ研究を重ねているという。
「我々は、将来のアプリケーションに使われると見られる何百ものアルゴリズムやカーネルの並列マシン上での動作を、システム的に分析してきた。その結果発見したのは、データセットの大きいタスクのほとんどは、ハイパフォーマンスが必要なワークロードであることだ。性能が要求されるラージクラス(のデータセット)ほど、非常に並列化がしやすい
「アルゴリズムの中には、256、500、場合によっては1,000スレッドにも展開できる場合がある。その一例は、レイトレーシング(光線を物理シミュレートしてリアルな陰影処理を行なうCG技術)だ。レイトレーシングでは、光源からのビームのトレースそれぞれが、非常に低い依存性で独立しており、ほぼ完全に並列化できる。レイトレーシングのような数1,000スレッドが存在するアプリケーションでは、ほぼ完全なスケーラビリティが得られる。レイトレーシングほどではなくても、32から100(スレッド)のスケーラビリティは、広い範囲のアプリケーションで得ることができる。例えば、認識関係のアルゴリズムでは、非常にいいスケーラビリティが得られる」とGelsinger氏は言う。
IntelのSmith氏は、RMS分野のアプリケーションのスレッド並列性について、下のような図も示している。これを見ると、数10スレッドの並列化によってリニアに性能向上を望むことができるアプリケーションが多数存在することになる。
【図】RMSとマルチコアの資料 PDF版はこちら |
|
●AMDは現状のソフトでは8コアまでと指摘
こうしたIntel側の見解に対してAMDのそれは異なる。下は、AMDのFred Weber(フレッド・ウエーバ)氏(Corporate VP and CTO)が2004年12月に「Lehman Brothers T4 Conference」で行なったプレゼンテーションのスライドだ。このスライドでAMDは、アムダールの法則を引き合いに出して、既存のx86ソフトウェアでの並列性とマルチコアの問題を取り上げている。
【図】AMDプレゼンテーション資料 PDF版はこちら |
それによると、今日は非常に小さな数のジョブだけが8以上のコアで恩恵を受けるだけで、HPC(High Performance Computing)が有効な分野だと図式している。そして、デスクトップでは多くのエンタープライズコンピューティングジョブは、1個のハイパフォーマンスコアからしかほぼ恩恵を受けない状態が続くと説明している。サーバー&ワークステーションのエンタープライズジョブが、2~8コアで恩恵を受けるというのがAMDの見解だ。
このプレゼンテーションを見る限り、AMDは8コア以上への拡張は当面は有効ではないという立場を取っているように見える。ソフトウェアの並列性の度合いによって、アムダールの法則の制約を受けるため、有効なコア数が現状では限られるというわけだ。クライアント側は1~2コア、サーバー&ワークステーションで2~8コアが適切なソリューションとAMDは考えているようだ。
こうしたAMDの見解は常識的で、CPU業界でも、現状のソフトウェアベースについては、AMDと同じ見方を取る人が多い。もっとも、AMDもメニイコアの可能性を完全に否定しているわけではない。AMDは既存のx86ソフトウェアの世界ではアムダールの法則のために、8コア以上は有効ではないと言っているわけだ。一方、Intelも現状のアプリケーションをメニイコアで高速化できると言っているわけではなく、将来のアプリケーションと言い切っている。
すると、ポイントは、Intelが描くような並列性の高い将来アプリケーションがどれだけ急速に一般化するかという点になる。10年で一気に並列性の高いソフトウェアへと移行すれば、Intelのアプローチが有効になる。だが、そうでなければラディカルなメニイコアに走らずにいた方が無駄な研究開発投資を抑えられる。
●繰り返されるIntelとAMDのビューの違い
カギは、ソフトウェア側が、シングルスレッド性能については現状で十分、今後の高速化はスレッド並列化でもたらすと考え始めるかどうかという点になる。Intelは「我々が目指しているのは、今日のアプリケーションのためのアーキテクチャではない。今日のアプリケーションに対しては、すでに答えを提供してきた」(Gelsinger氏)と考えている。CPU側のアーキテクチャ変革とともに、ソフトウェア側も変革しなければならないというメッセージだ。
この意図は明瞭だ。Intelはハード側がマルチ/メニイコアへと急進するとぶち上げて、ソフトウェア業界を牽引しようというわけだ。逆の言い方をするなら、CPU側から強引に引っ張らない限り、ソフトウェア側の変革が望めないと考えている。CPUで最大シェアを持つIntelらしい考え方だ。Intelは、ハードの変革がソフトをひっぱる型の戦略を取ることが多く、AMDと比べるとソフトウェア側の慣性を軽視するきらいがある。
AMDの意図も明確だ。AMDは常にIntelよりも、ソフトウェア資産の慣性が強いと見なす。そのため、AMDは、現状のソフトウェアの性能を上げるためのアプローチを続けると言い続けてきた。それによってユーザーの支持を得て行こうというわけで、これも納得できる。市場シェアが相対的に小さいAMDは、Intelほどソフトウェア業界を牽引する力が強くなかった(AMD64以降それも変わりつつあるが)という事情もその背景にありそうだ。
こうして見ると、アムダールの法則&マルチ/メニイコアの問題は、これまでも何度も繰り返されてきたIntel対AMDの対ソフトウェア戦略の違いの新バージョンという切り方もできる。Intelはソフトウェア側の対応による性能向上を求め、AMDはソフトウェアの変化は最小に抑えて性能を向上させる方向へ向かうという図式だ。例えば、64bitアーキテクチャでは、Intelは命令セットアーキテクチャ(ISA)を根底から切り替えたIA-64への転換を求め、対するAMDはIA-32を拡張した64bit化へと進んだ。結果的には、64bit化ではIntelもAMDに追従した。
また、この構図は、技術的飛躍へとジャンプしたがるIntelと、素直に技術進化を続けるAMDというパターンの新バージョンにも見える。
一般に、Intelは、中間解が嫌いで、飛躍した技術へと向かう傾向がある。ISAに限界があると言ってIA-64を開発したり、パラレルバスに限界があるといってシリアルバスへと向かうといった具合だ。それに対して、AMDは、中間解の現実的なソリューションを選択するきらいがある。ISA自体は限界ではないと言ってAMD64へ向かい、パラレル型バスも高速化が可能だと言ってHyperTransportを開発する。
というわけで、アムダールの法則を巡る2社の見解の違いは、CPUの方向性を示す重要なカギとなりつつある。CPUだけでなく、ソフトウェアのアーキテクチャや方向性にも影響する。それも、サーバーやデスクトップなどのアプリケーションだけでなく、ゲームなどもっと広汎なソフトウェアにも影響を与える。というのは、Cellプロセッサも、おそらく、Intelに近い考え方をベースにしているからだ。
□関連記事
【2004年12月28日】【海外】マルチコア/メニイコア時代のCPUアーキテクチャ
http://pc.watch.impress.co.jp/docs/2004/1228/kaigai146.htm
【2004年11月5日】【海外】ポラックの法則を破るためのマルチコア
http://pc.watch.impress.co.jp/docs/2004/1105/kaigai131.htm
【2004年10月30日】【海外】3ステップでマルチコア化を進めるIntelのサーバー&ワークステーション系CPU
http://pc.watch.impress.co.jp/docs/2004/1030/kaigai130.htm
【2004年10月6日】【海外】AMD、デュアルコア版Opteronの詳細を公開
http://pc.watch.impress.co.jp/docs/2004/1006/kaigai124.htm
【2004年6月9日】【海外】AMDが2005年にデュアルコアCPUを投入
http://pc.watch.impress.co.jp/docs/2004/0609/kaigai095.htm
(2005年1月12日)
[Reported by 後藤 弘茂(Hiroshige Goto)]