後藤弘茂のWeekly海外ニュース

CPUとGPUの統合プロセッサのチャレンジ




●AMDとIntelのどちらもGPUコアの統合へと向かう

 AMDはCPUにGPUコアを統合した「FUSION」プロセッサを2009年にモバイルから投入し始める。対するIntelも、似たようなコンセプトのCPU+GPUを段階的に投入する。クライアントPC向けCPUでは、GPUコアの統合が大きなテーマになりつつある。

 実際には、GPUコアの統合が本当にCPUの未来として適切なのか、統合するGPUコアのアーキテクチャはどうするのか、回答はまだ出ていない。また、AMDは明確な確信を持って統合へ進んでいるのに対して、Intelは今のところAMDへの対抗以上の姿勢は明らかではない。状況はこのようにまだ混沌としているが、GPUコアの統合へと向かう現在のベクトルだけはほぼ確かだ。

 AMDは、FUSIONでAMDのCPUコアとATIのGPUコアを、オンダイ(On-Die)で統合する。それに対して、Intelが投入するのは、まずは単純にCPUとグラフィックス統合チップセット(GMCH)の2個のダイ(半導体本体)をワンパッケージに納めた製品になると見られている。この統合プロセッサは、バリュー市場狙いだと言われており、おそらくPenryn(ペンリン)世代のCPUをベースとしたものになると推測される。

 もっとも、IntelもFUSION型のオンダイ統合プロセッサのプランを持っていないわけではない。すでに開発は始まっており、デュアルダイの製品のさらに次のフェイズで投入されると言われている。

 興味深いのは、IntelのこのアプローチがデュアルコアCPUの時と同じである点だ。デュアルコア化では、AMDが先んじて2コアをオンダイ統合した設計を進めていた。それに対して、シングルコアのTejas(テハス)の開発を進めていたが、急きょTejasをキャンセル。2個のCPUコアを単純に接続したデュアルコアのPentium D(Smithfield:スミスフィールド)にプランを切り替えて、AMDに先んじて投入した。

 Pentium D系は、半導体的にはデュアルコアでも、コンピュータ科学的にはデュアルコアと言い難いソリューションだ。しかし、この荒技でIntelはスケジュール的にはAMDに先行することができた。CPUコア+GPUコアでも、Intelは同じパターンを繰り返すのかもしれない。

 いずれにせよ、こうした流れでAMDとIntelともにGPUコアの統合へ向かい始めている。

AMD Mobile Platform Roadmap(※別ウィンドウで開きます)
PDF版はこちら
想定される第1世代のIntelのCPU+GPU(※別ウィンドウで開きます)
PDF版はこちら
AMDの方向性(※別ウィンドウで開きます)
PDF版はこちら

●最大のポイントはGPUコアのプログラミングモデル

 FUSION型CPUのテクノロジ的なポイントは3つ。

(1)CPUコアとGPUコアをマイクロアーキテクチャ的にどのように統合するのか
(2)GPUコアのプログラミングモデルはどうするのか
(3)GPUコアのためのメモリアーキテクチャはどうするのか

 (3)のメモリは大きなボトルネックだが、選択肢が限られるため、よほどラディカルなアプローチを考えない限り議論の余地が少ない。(1)のマイクロアーキテクチャは、実際の製品の実装がどうなるかはわからないものの、方向性だけは明確だ。また、マイクロアーキテクチャは(2)に大きく影響される。そのため、最大のポイントは(2)のプログラミングモデルとなる。つまり、CPUに統合するGPUコアに、ソフトウェアがどうやってアクセスするのか。焦点はそこにある。

 GPUコアのプログラミングモデルについてのビジョンを明確に持っているかどうかは、GPU統合での重要なポイントだ。GPUをハードとして統合するだけでなく、それをソフトウェア側から使うための道筋を計画しているかどうか。

 CPUメーカーにとっては、これまでGPUコアはCPUと将来競合する可能性のある、つまりCPUの発展を阻害する可能性のあるやっかいな存在だった。そのため、CPUメーカーはこれまで、GPUのソフトウェア環境のビジョンは持っておらず、不鮮明だった。

 そして、今、GPU統合の時代を迎えて、AMDとIntelでは、この部分のビジョンで大きな差が出てきている。AMDはGPUコアのソフトウェアの将来についてビジョンを打ち出し始めたが、Intelはまだ沈黙だ。Intelはおそらく4月の「Intel Developer Forum(IDF)」あたりで何らかのアクションを起こすと予想されるが、それまでは見えない。

●グラフィックスソフトウェア上はシームレスなFUSION

 そもそも、CPUに統合するコプロセッサコアの候補はいくつもある。それなのに、PCの世界では、GPUコアの統合が流れとして定着しつつある。その理由は2つある。

 (A)1つは、Windows VistaによってPCの世界では高度な3DグラフィックスGPUが必須となり、CPUへと統合する価値が増したこと。必要な機能を取り込むなら文句は出ないという考え方だ。しかし、それ以上に重要なのは、(B)GPUならソフトウェアモデルが確立していること。現在のGPUのソフトウェアモデルで、OSとアプリケーションが走るため、初めからソフトウェア獲得に苦労する必要がない。

 つまり、すでにPCの中でデバイスとして定着しているGPUコアの統合なら、ソフトウェア面での移行が容易で、支持を得やすいというわけだ。そのため、GPUコアの統合では、AMDは既存のGPUとのソフトウェア上での互換性を非常に重視している。

AMDのPhil Hester氏

 「我々がまず心がけていることは、ソフトウェア互換性だ。これは、クリティカルに重要だと認識している。GPUをどのように統合しようとも、ソフトウェアからは透過的でなければならない。今日CPUとGPUの上で走っているソフトウェアの全てが、そのまま継続して走ることが非常に重要だと考えている。全てのレガシーコードが、破綻なく走る、これは、一種の宗教的信条と言っていいほど確信している。だから、(FUSIONでも)ソフトウェアは変更がない。単にパッケージが変わるだけだ」とAMDのPhil Hester(フィル・へスター)氏(Senior Vice President & Chief Technology Officer(CTO))は語る。

 現在の計画では、GPU上で走る既存のグラフィックスアプリケーションは、そのままFUSIONでも走る。ソフトウェア側に何の変更も必要なく、新しいソフトウェアスタックも必要としない。つまり、PCに挿したビデオカードやグラフィックス統合チップセットと全く同じように、FUSIONのGPUコアを使うことができる。

 「グラフィックスカードを入れるとデバイスドライバがロードされる。新しいハードウェアに対応する新しいドライバが、既存のアプリケーションを走らせる。全く同じことを(FUSIONでも)継続する。DirectXドライバの新しいセットが提供され、全てのDirectXインターフェイスを使うソフトウェアは、変更することなく走らせることができる」

 DirectX APIなどでGPUにアクセスする、既存のグラフィックスコードやシェーダプログラムはそのままFUSIONに持って行くことができる。グラフィックスソフトウェア側からは、全くGPUそのものとなる。

The Accelerated Processing Imperative
(※別ウィンドウで開きます)
PDF版はこちら
For Consumers:The Coming Era of Ubiquitous 3D Graphics
(※別ウィンドウで開きます)
PDF版はこちら

●GPUコアへのダイレクトなアクセスがポイント

 しかし、AMDがFUSIONでGPUコアを統合する目的は、グラフィックス機能の統合だけではない。むしろ、GPUコアをより汎用的に使って、さまざまなアプリケーションを走らせることの方が目的として大きい。GPUコアを、多用途のベクタプロセッサとして使うことで、x86コアのマルチコアでは得られない大きな性能ブーストを得ようというのがアイデアだ。そして、そのためには、GPUコアをよりソフトウェア的に開けたプラットフォームとして行く必要がある。

 AMDのFUSION戦略で重要な点は、AMDがこの点についても明快なビジョンを備えている点だ。単なるGPUハードの統合だけでなく、ソフトウェア的にGPUをどう扱えるようにして行くかについて、ロードマップを持っている。

 例えば、Hester氏は2006年、次のようにGPUコアのソフトウェア上の統合化について説明していた。

 「一般論として言うと、GPUコアをソフトウェア上で透過的に統合することにいったん成功したら、次のステップが見えてくるだろう。それは、CPUとGPU、それぞれの命令セットの連携だ。今後は、GPUの命令セットに、より汎用的な手法でアクセスできるようになるだろう。実際には、オープンスタンダードの方法を確立することになると思う。それが、時間とともに起きることだ。

 これは、x86の32-bitバージョンからx86-64(AMD64)を産み出した時と似たような拡張と考えることもできる。(CPUの)64-bit化では、我々は全ての32-bitコードを変更なしに走らせながら、64-bit命令セットの拡張を実現した。これと同じようなことができると思う」

 従来のGPUでは、プログラマがネイティブ命令セットに直接アクセスすることができなかった。最近でこそ、AMD(ATI)の「Close to the Metal(CTM)」やNVIDIAの「CUDA (クーダ:compute unified device architecture)」のように、ダイレクトまたはダイレクトに近いアクセスが可能な方法が提供されるようになってきた。しかし、それまではGPUにアクセスするためには、DirectXやOpenGLなどのグラフィックスAPIを通じた、間接的な方法しか提供されていなかった。

 GPU上で汎用性の高い非グラフィックスアプリケーションを実行する場合の最大の障壁はそこにあった。そのため、AMDはFUSION上で非グラフィックスアプリケーションを花開かせるために、CPUライクなダイレクトアクセスを、将来に渡っても一貫した方法で提供する必要がある。

G80 Programming Model
(※別ウィンドウで開きます)
PDF版はこちら
The Accelerated Processing Imperative(2)
(※別ウィンドウで開きます)
PDF版はこちら

●ソフトウェアから見ればAMDにとって必然的なGPUコアの統合

 AMDは現在のGPUのソフトウェアモデルを維持しながら、同時にGPUコアの命令セットにダイレクトにアクセスできるようにすることでこの問題を解決しようと考えている。x86の64-bit化と同じモデルだ。Athlon 64上で既存の32-bit x86コードがそのまま走るように、FUSION GPUコアでも既存のグラフィックスソフトウェアが走る。しかし、Athlon 64でx86-64も走るのと同様に、FUSION GPUコアでダイレクトアクセスのソフトウェアも走る。こうした構図だ。

 すでにグラフィックス面ではプログラミングモデルが確立しているGPUコアを統合する利点はここにある。ソフトウェア側は、既存のモデルで走らせつつ、次のより進んだモデルへと移行ができる。例えば、物理シミュレーションミドルウェアベンダーなら、シェーダプログラムで書いたソフトウェアをDirectXドライバ上でそのまま走らせつつ、GPUコアにダイレクトにアクセスするソフトウェアへと切り替えて行くことができる。

 もし、FUSIONで統合するコプロセッサコアが、Cell Broadband Engine(Cell B.E.)のようにストリームプロセッシング専用の新アーキテクチャのコアだとしたらどうだろう。その場合、ソフトウェアベンダーは、一からソフトウェアを開発しなければならないため、移行に時間がかかってしまう。つまり、PLAYSTATION 3(PS3)でのソフトウェア開発と同じハードルを背負うことになってしまう。

 こうした点を考えると、GPUコアを統合しようとするAMDの戦略は、非常に同社らしいものであり、利にかなっている。ソフトウェアコミュニティを強引に引っ張る方向へは向かわず、緩やかで段階的な移行を進める。それが、AMDがx86-64で成功した理由であり、FUSIONでも全く同じことを計画している。

 しかし、AMDの前のハードルは高い。それは、AMDがさらに高度なレベルでGPU命令をCPUに統合しようとしているからだ。次回は、その点を説明したい。

□関連記事
【2007年2月15日】【海外】Intelの次世代CPU「Wolfdale」と「CPU+GPU」
http://pc.watch.impress.co.jp/docs/2007/0202/kaigai333.htm
【1月22日】【海外】AMDが“Fusion”プロセッサとオクタコアに進む理由
http://pc.watch.impress.co.jp/docs/2007/0122/kaigai330.htm

バックナンバー

(2007年2月27日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved.