■後藤弘茂のWeekly海外ニュース■“Many-Core CPU”へと向かうIntel
|
●期待通りの部分とがっかりした部分
Patrick P. Gelsinger氏 |
【Gelsinger】 あれから3年半、期待通りの面と、がっかりしている面の両方がある。まず、全てのサブシステムのレベルで、多くの対策が進行している。トランジスタレベル、プラットフォームレベル、マルチコア化など、私がISSCCのスピーチで語った全てが今、進行している。その点では、うまく行ったと思っている。
しかし、うまく行かなかったと感じている部分もある。Intelも業界も、どちらも、もっと早くターンするべきだった。方向は正しかったのだが、全体で見ると、もっと素早くあるべきだったと思う。
いくつかは、よかった。例えば、我々はCentrinoのような素晴らしい製品を生み出した。高い電力/パフォーマンス効率、新しいフォームファクタの創造など、Centrinoは疑問なくベストな製品だと思う。それから、サーバー製品では、Itaniumグループも素晴らしい仕事を成し遂げた。しかし、うまく行かなかったものもある。いい結果と悪い結果の両方だ。
【Q】 特に、デスクトップCPUはうまく行っていないように見える。NetBurstアーキテクチャでは熱は限界に達しつつある。
【Gelsinger】 理解して欲しいのは、これはIntelだけのターニングではなく、業界全体のターニングであることだ。Dell、HP、IBMなどが、我々に特定のクラスの製品を作るようにプレッシャーをかける。Intelは、そうした要求に対して応えなければならない。
ノートPCの場合、市場は明確に、より小さく、より薄く、より軽い製品の方向へと(CPUを)押していた。だから、我々はそれにいい製品で応えた。サーバーでも、ブレードサーバーにおいて、もっともっと電力効率(Power Efficiency)のいい設計を求めていた。
しかし、デスクトップPCでは、市場の方向はそれほど明確なものではなかった。業界は大きな筺体でより高い熱設計枠(Thermal Envelope)へと向かっていた。そうした方向が、Intelにそれなりの圧力をかけていた。じつは、私がISSCCでああしたスピーチを行なった理由の1つは、Intelよりむしろ業界全体に影響を与えようとしたからだ。
その意味では、(小フォームファクタデスクトップが主流の)日本という市場は非常に例外的だ。日本は、世界に対して将来の方向性を示すいい指標だと考えている。
●1つのCPUコアでモバイルからサーバーまで対応
【Q】 CPUのマルチコア化によって、1つのCPUコアアーキテクチャで異なる熱設計枠に対応することが容易になるのではないのか。
【Gelsinger】 マイクロアーキテクチャの構築は、システム側に制約される。デスクトップの熱設計枠(Thermal Envelope)は約100W、一方モバイルのそれは40W程度までだ。
理想的には、この両方の枠に収まるプロセッサを設計したい。そのために、以前は電圧と周波数のスケーリングを行なってきた。しかし、100W枠にプロセッサを最適化すると、両方を満たすことは難しい。例えば、クロック周波数を速くするためには、パイプラインステージ数を増やし、より予測(実行)を行なうことになる。そうした設計は、一定の熱設計上の特徴(消費電力が高いこと)を生む。
そのため、我々は、将来的には、より低消費電力のコアを複製することで、異なる市場セグメントに対応することを考えている。例えば、我々が10W程度の低消費電力のCPUコアを開発すれば、2個か3個のコアを(ワンチップに)集めて40WのノートPC用のCPUを作ることができる。さらに多くのコアをまとめれば、ハイエンドのデスクトップやサーバー用になる。
【Q】 マルチコア化では、「ポラックの法則」(CPUの性能は増やしたダイサイズの平方根分しか向上しないという法則)を破ってCPUの性能を伸ばすことができる。
【Gelsinger】 これまで何年も、我々はムーアの法則に沿って性能を上げようとしてきた。ムーアの法則では2年でトランジスタ数が2倍になる、だから性能も2年で2倍を目指してきた。これは、実際にはかなり難しかった。全てが性能を落とす方向へ働くからだ。メモリレイテンシ、プログラム中の並列性の量など……、エンジニアはそうした困難をかき分けてムーアの法則に追いついてきた。
しかし、マルチコアとマルチスレッドでは、パフォーマンスのレベルが本質的に変わる。おそらく、ムーアの法則を上回るペースでパフォーマンスを向上させることができるだろう。こうした経験は、私の25年にわたる業界での経験でもほとんどなかった。非常にエキサイティングだ。
これまではCPUの周波数が、3.2GHzが3.6GHzになっても、アプリケーション性能はそれほど大きくは性能が向上しなかった。しかし、マルチコアでは、3.2対3.6といった比率ではなく、2倍3倍4倍といったペースでパフォーマンスがジャンプして行く。将来は、10倍といった性能が得られるようにもなる。
●次世代のアプリケーションのためのCPU
【Q】 ハードの並列化を活かすためには、ソフトウェア側の並列性が高くなければならない。そうなると、「アムダールの法則」による並列性の制約がパフォーマンスの壁になるのではないのか。
【Gelsinger】 アムダールの法則は、逐次実行(しなければならない部分)の比率が、タスク全体の実行時間を制約するというものだ。この法則を当てはめる場合には、注意深くする必要がある。
もし、あるタスクの80%が逐次実行で20%が並列実行(が可能な部分)だとしたら、たとえ、20%を0%にできたとしても、タスク全体で見ると20%の性能しか向上しない。ところが、20%がシリアルで80%が並列化可能だとすると、ずっと多くの性能向上が可能になる。すると、問題は、タスクの中で、どれだけがシリアル実行部分で、どれだけが並列化可能かという点になる。
今のアプリケーションは、シリアルストリームの実行を前提としてアルゴリズムが開発されている。こうしたアプリケーションを、並列実行することは確かに難しい。しかし、将来のアプリケーションのアルゴリズムは、もっと並列実行に適したものになるだろう。
我々が目指しているのは、今日のアプリケーションのためのアーキテクチャではない。今日のアプリケーションに対しては、すでに答を提供した。
【Q】 アプリケーション自体が大きく変わって行くことを前提としているわけか。
【Gelsinger】 多分、今日のアプリケーションでも、2列か4列の並列性は得られるだろう。いくつかのアプリケーションではもっといい結果になるだろうが、それでも、10倍のパフォーマンスにはならないだろう。
我々は、将来のアプリケーションに使われると見られる、何百ものアルゴリズムやカーネルの並列マシン上での動作を、システム的に分析してきた。その結果発見したのは、データセットの大きいタスクのほとんどは、ハイパフォーマンスが必要なワークロードであるということだ。つまり、性能が要求されるラージクラス(のデータセット)ほど、非常に並列化がしやすい。
アルゴリズムの中には、256、500、場合によっては1,000スレッドにも展開できる場合がある。その一例として、Intel Developer Forum(IDF)でレイトレーシング(光線を物理シミュレートしてリアルな陰影処理を行なうCG技術)を見せた。レイトレーシングでは、光源からのビームのトレースそれぞれが、非常に低い依存性で独立しており、ほぼ完全に並列化できる。レイトレーシングのような数千スレッドが存在するアプリケーションでは、ほぼ完全なスケーラビリティが得られる。
レイトレーシングほどではなくても、32から100(スレッド)のスケーラビリティは、広い範囲のアプリケーションで得ることができる。例えば、認識関係のアルゴリズムでは、非常にいいスケーラビリティが得られる。そのため、我々は非常にエキサイトしている。
●メニイコアCPUでテラフロップを目指す
【Q】 ソフトウェア側で、膨大な数のスレッドから並列性を抽出できるようになれば、プロセッサ側のコアの並列性を高めることができる。
【Gelsinger】 その通りだ。我々が今研究しているのは、多くのコアを使う並列化マシンだ。Intelはデュアルコアとマルチコアをアナウンスしたが、私が携わっているのはもっとCPUコアの数が多い“メニイコア(Many-Core)”だ(笑)。狙っているのは、メインストリームコンピューティングの世界で、最初のテラフロップマシンを実現することだ。
【Q】 テラフロッププロセッサはソニー・コンピューターエンタテインメント(SCEI)がIBM、東芝と共同開発しているCellプロセッサの目標でもある。
【Gelsinger】 これはたんなるコメントだが、Cellと我々のマルチコア/メニイコアの違いは何か。それは互換性だ。ソニーのCellは革新的な新アーキテクチャだが、何とも互換性がない。それに対して、我々は将来のアーキテクチャでも、数十年の価値があるソフトウェア互換性を維持する。それが我々のビジネスモデルのエッセンスであり、我々が提供してきた価値だ。我々のマルチコアやメニイコアのマシンでは、WindowsもLinuxもブートするし、全てのツールが動く。新しい仕様や新命令を加えても、互換性は維持する。
【Q】 SMT(Simultaneous Multithreading)技術であるHyper-Threadingはマルチコアと併存して実装されて行くのか。Hyper-Threadingの改良も継続して行なうのか。
【Gelsinger】 シンプルな答えはイエスだ。しかし、Hyper-Threadingとマルチコアの両方が全てに必要だと決めつけてはいけない。両者には異なる設計上のトレードオフがあるからだ。
例を示すと、もし、1.5コア分に十分なだけのメモリ帯域しかないとすると、4つのCPUコアを載せるのは意味をなさない。そのケースでは、Hyper-Threadingの方が適している。Hyper-Threadingで1つのコアの性能を1/3~1/2向上させるとしたら、メモリ帯域と合うからだ。逆に、他のシステム要素が阻害しないとしたら、Hyper-Threadingをデュアルコアの上に載せるというケースも考えられる。
我々がHyper-Threadingテクノロジを継続して改良することは確かだ。例えば、今のHyper-Threadingはシングルコアに2スレッドだが、4スレッド/コアも考えている。しかし、全てのアイデアは、それぞれの(CPUの)設計やシステムに依存する。
【Q】 SMTにはメモリレイテンシを隠蔽し、パイプラインをビジーに保つというデュアルコアとは異なる利点がある。互いに補完すると考えていいのか。
【Gelsinger】 その通りだ。それについてはあなたに2年前に話をした。あなたは、いい生徒だ(笑)。
●電力効率の高いCPUアーキテクチャの研究「PARROT」
【Q】 マルチコア時代のCPUコアのカギは電力効率だ。Intelの研究者が発表した「PARROT」と呼ばれるCPUアーキテクチャの論文を読んだ。PARROTは、電力/パフォーマンス効率を高める点では、非常に有効なアプローチだと思う。
【Gelsinger】 PARROTに見られるアイデアは、我々の現在のリサーチ活動全体を支配しているものだ。それは、電力効率だ。過去には、我々はマキシマムパフォーマンスを目指してプロセッサを設計していた。しかし、これからはオプティマムパフォーマンスのために設計をする。全てがシフトした。PARROTはその一例だ。
PARROTの基本となっている観測は、長いプログラムのうち、実際にクリティカルな部分は、じつは少ないという事実だ。80/20ルールがここでも当てはまり、ごく少数の命令が、全マシンの実行を大幅にスローダウンさせている。そのため、賢いアプローチは、それらを区分けして実行することとなる。PARROTでは、これをコールドパイプ(Cold Pipe)とホットパイプ(Hot Pipe)と呼んでいる。80%の(クリティカルでない)命令は、低パフォーマンスと低パワーをターゲットにしたコールドパイプに送る。一方、20%の(クリティカルな)命令は高パフォーマンスで高パワーなホットパイプに送る。これで、効率よく性能を向上させることができる。
我々は、PARROTについてはまだどんな決定も下していない。PARROTは私の部門のイスラエルのスタッフによる研究だ。しかし、まだ研究所でのリサーチ段階だ。だから、PARROTだけをあまり強調したくはない。また、PARROTは1つのアイデアで、我々の持つアイデアの全てではない(笑)
省電力化の研究からは、例えば、より優れた電力消費のモデル化を助けるツールも実現しつつある。(CPUの)設計では、消費電力の予測が非常に難しい。なぜなら、電力は(トランジスタの)スイッチングの発生回数に依存し、その動的な動きを予測する必要があるからだ。我々は、高消費電力の回路と低消費電力の回路を、命令(を実行するロジック)ごとに使い分ける。そのため、電力の見積もりが難しいと、設計も難しくなってしまう。より電力効率の高い新しいマイクロアーキテクチャモデルを作るだけでなく、電力特性を分析できるツールも実現しつつある。
【Q】 Processor ForumでTransmetaのDavid R. Ditzel(デビッド・R・ディツェル)氏(Co-Founder, Vice-Chairman and CTO)と話をした。彼は、PARROTは自分たちのアイデアと非常に似ていると指摘していた。Intelは(PARROTでの最適化を)ハードウェアで実装しようとしているが、彼らはソフトウェアで実装しており、それが利点だとDitzel氏は説明している。PARROTの場合はトランジスタ数が増え、電力の消費では不利になると。
【Gelsinger】 基本的にはデイブ(Ditzel氏)には同意しない。私の意見はシンプルだ。我々は、ハードウェアとソフトウェアの両方を非常に重要だと見ており、両者の協調を常に考えている。ハードウェアの方がソフトウェアより(実装に)適した部分と、ソフトウェアの方が適した部分がある。PARROTはホット実行とコールド実行を備える電力効率の高いマイクロアーキテクチャだ。このテクニックと協調することで、ソフトウェアスケジューラやコンパイラもずっとパワフルになるだろう。ある意味で、デイブはフレキシブルなハードウェアを彼が持たないことを、正当化しようとしたのだと思う。
□関連記事
【11月8日】【海外】Intel CPUの未来が見えるPARROTアーキテクチャ
http://pc.watch.impress.co.jp/docs/2004/1108/kaigai132.htm
【11月5日】【海外】ポラックの法則を破るためのマルチコア
http://pc.watch.impress.co.jp/docs/2004/1105/kaigai131.htm
(2004年11月12日)
[Reported by 後藤 弘茂(Hiroshige Goto)]