笠原一輝のユビキタス情報局

変貌を遂げるAMDを象徴するカスタムチップとMantle、そしてHSA

 アメリカ合衆国カリフォルニア州サンノゼ市にあるSan Jose Convention Centerにおいて開催されたAMDの開発者向けイベントAPU13で、AMDはいくつかの発表を行なった。PCユーザーに直接関係するのは、すでにレポートでも説明した、Kaveri(カヴェリ)の概要とリリース時期(別記事参照)、そして2014年前半にBeema(ビーマ)/Mullins(ムーリン)を投入(別記事参照)という2つの発表だ。

 だが、そうした華やかの発表とは別に、ひっそりと説明された内容がある。その2つが、MantleとHSAだ。いずれも、既に発表済みの技術で、今回のAPU13で初めて明らかになったものではないが、今回AMDは今後のPCや、PCだけでなくスマートフォンも含めたクライアント機器の仕組みを大きく変える提案を行なっている。本記事ではそうした内容についてまとめていきたい。

 そこから見えてきたのは、ロリー・リードCEOの着任以来、大胆に変わろうとしているAMDの新しい姿であり、その流れの中でMantle、HSAという新しい技術を武器に他社との競争に勝ち抜こうとしているAMDの元気な姿だ。

大胆に変わったAMDの基本戦略はSoCとカスタムチップ

 ここ1~2年筆者がAMDに対して強く感じていることは、AMDが大きく変わりつつあり、2003年にIntelに先駆けてx64のプロセッサを出荷するなど、Intelを技術的にリードしていた時代の雰囲気に似てきているということだ。今後それがもう一度来るのではないかと感じられる機会が増えた。そうしたAMDの新しい雰囲気を主導しているのが、2012年にAMDの社長兼CEOに就任したロリー・リード氏であることは論を待たないだろう。AMDに転職する前にはLenovoの社長兼COOだったリード氏は、AMDに移るや、着実にAMDを変えてきている。

 リード氏が第一の矢として放ったのが、AMDをSoCを開発するベンダーとして位置付けたことだ。従来のAMDは、Intelに対抗する為に、すべてを自社で開発し、それをIntelと同じように自社ファブで製造してPCベンダーに販売するというIntelと同じビジネスモデルだった。しかし自社ファブは、リード氏がAMDに着任する前にGLOBALFOUNDRIESとして独立し、AMDは最終的にその株式を手放すことで自社から切り離すことを決断していたが、それでもAMDの開発プロセスは自社ファブをもっている時代とあまり変わっていなかったのだ。

 しかし、リード時代になりこれは完全に変わった。リード時代のAMDは、CPUやGPUのデザインをIP(知的所有権)と捉え、自社のIPが優れている場合にはそれを利用し、他社のIPが優れている場合にはそれを他社から利用権を買ってきて組み込むという、ARM系の半導体メーカーが普通にやっているSoC開発モデルへと転換した。

 その代表例は、2012年の10月に発表されたARMとのパートナーシップによる、ARMv8(64bitのARMアーキテクチャ)を採用したサーバー向けARMプロセッサの開発だろう。AMDの内部コードネームでSeattleで知られる同製品は、間もなくテープアウトし、2014年にはエンジニアリングサンプルがOEMメーカーに配布される予定だ。サーバーCPU市場はかつてはAMDとIntelがシェアを分けあっていたが、今はほぼIntelの独占市場に近くなっている。AMDはARMとパートナーシップを組むことで、他のARM系のベンダーと束になってサーバー市場を奪回に行くというのがAMDのシナリオだ。

 そして、このSoC戦略は、汎用のプロセッサだけでなく、特定のベンダーに必要とされるカスタム製品を作りやすいというメリットもある。CPU、GPUなどの汎用プロセッサ時代には、とにかくハイパフォーマンスなチップを作っていれば、それをOEMメーカーが採用して……というのが勝利の方程式だった。だが、それは変わりつつある。

 SoC時代にも、依然としてCPUとGPUの性能が重要なことは言うまでもないが、それと同時にどのIPをSoCに統合するかも重要になっている。例えば、あるAというOEMメーカーはCPUだけでGPUは強力なものはいらないとか、BというOEMメーカーは強力なCPUとGPUに加えてオーディオDSPが必要だといった具合にSoCに統合する機能のニーズがOEM先によって異なっている場合が多く、そうしたニーズにも応えていかなければならない。

 AMDはそうした顧客別に“カスタムチップ”を設計する戦略をいち早く打ち出しており、すでにその成果として、すでに先週から米国で出荷が始まっているソニー PlayStation 4、今月出荷される予定のMicrosoft Xbox Oneという2つの次世代コンソールゲーム機にAMDのAPUが採用されることはよく知られているだろう。いずれもAPU(つまりCPUとGPUが1チップになっている)だが、内蔵されているIPはそれぞれの製品に向けて異なっているというカスタムチップになっている。

 AMDがこうしたコンソールゲーム機の市場を押さえることには2つの大きな意味がある。1つは、半導体の出荷数が増えることであり、それに従って売り上げも伸びることになる。もちろんそれが利益につながるかは別問題だが、とはいえ半導体ビジネスが規模のビジネスである以上、このことはAMDにとって大きな意味がある。そしてもう1つは、これから説明する2番目の矢に関係することだが、コンソールゲーム機のプラットフォームを押さえることは、コンソールゲーム機に向けたタイトルを開発する開発者とのつながりができることを意味する。

AMDの社長兼CEOロリー・リード氏(2012年のイベント時に撮影)
APU13ではSony Computer Entertainmentのドミニク・マリソン氏が基調講演に登場し、AMDのAPUが採用されているPlayStation 4の紹介を行なった(内容としてはすでに発表されていた内容の再確認となっていた)

1~2%の性能向上ではなく皆が驚く性能向上を実現するMantle

 SoC戦略や、カスタムチップ戦略で成功を収めつつあるAMDは、今まさに第二の矢を放とうとしている。それが、9月にAMDがハワイで行なった発表会で発表した新しい3Dアプリケーション向けのAPIとなるMantleだ。WindowsやLinuxといった一般的なOSでは、現在3Dアプリケーション向けのAPIとしては、Direct3D(いわゆるDirectX)やOpenGLなどの存在がよく知られているだろう。Mantleはそれと同じレイヤーにあるAPIとなる。

 こうしたAPIの役割は、ハードウェアとアプリケーションソフトウェアの間にあって、ハードウェアの違いを吸収して、どのハードウェアであっても、同じアプリケーションが使えるようにすることができるようにすることだ。現代であれば、AMD、Intel、NVIDIAといったGPUベンダーがPCプラットフォームには存在しているが、アプリケーションベンダーはDirect3DないしはOpenGLに対応してアプリケーションをプログラミングすることで、異なるGPUであっても同じようにソフトウェアが動作する。

 しかし、実はこのDirect3Dにせよ、OpenGLにせよ、基本的な設計は1990年代にされており、その後下位互換性をある程度確保しながら、機能の拡張が続けられてきた。つまり、Direct3Dで言えば、最新バージョンのDirect3D 11に対応したハードウェアがあれば、Direct3D 9向けに書かれた3Dゲームが動作するといった具合にだ。しかし、その結果として、ある程度の互換性を確保するということは、どうしても"屋上屋を架す"という作業にならざるを得ず、必ずしも最新のハードウェアの機能をすべて活用するというモノになっているとは言えない側面がある。

 Mantleはそうした既存のAPIの弱点を補ったモノになる。APU13でMantleのセッションに登場したゲンナジー・リグール氏(Mantleのチーフアーキテクト)は既存のAPIには「APIのオーバーヘッド、適切なスレッド管理の欠如、メモリ管理の困難さ、直接GPUをコントロールする困難さ」などが課題としてあると指摘する。これらはDirect3Dなり、OpenGLなり基本的な設計が90年代のGPUに最適化されて作られたAPIを拡張してきた故の制限と言い換えてもいい。

 そこで、Mantleではこれらを解決する仕組みを導入する。例えば、メモリ管理、コマンドの実行やレンダリングなどをソフトウェア側からコントロールすることが可能になる。これにより、プログラマの自由度が増え、さらにGPUを効率よく利用できる。こうした部分が"現代のGPU"に最適化されたというMantleの真髄だ。ただし、プログラマの自由度が増えるということは、プログラマ側の負担が増えることは事実だが、コンソールゲーム機との共通点は増えるため、移植の手間は減り、トータルで考えればプログラマの手間も減るというのがAMDの主張だ。

 そのことから得られるエンドユーザーが得られるメリットは何かと言えば、シンプルに性能向上だ。リグール氏は「Mantleは全員に勧められるモノでは無いし、既存のAPIを置きかえるモノではない。性能重視の人、GPUをより効率よく使いたい人、異なるプラットフォーム間での移植を楽にしたい人、こうしたプログラマに向けたAPIとなる」と述べ、基本的にはMantleをDirect3DやOpenGLにとって変わるものではなく、性能重視やコンソロールゲーム機との移植性を重視するプログラマ向けだとした。

 気になるのは、ではそのパフォーマンス向上というは一体どの程度なのか? という点ではないだろうか。AMDは今回のAPU13では、この点について何も明らかにしなかった。当初は、最初のMantle版PCゲームになると見られている「Battlefield 4」を開発したDICEのヨハン・アンダーセン氏が行なう3日目の基調講演で何らかの発表があると考えられていたのだが、結局同氏の講演ではBattlefield 4のMantle版には数字どころか、ライブデモすらなかった。

 AMDがこれまでのところDirect3Dに比べてMantleにすることでどの程度性能が向上するかを語ったのは、前述のハワイのイベント後に配布したMantleのホワイトペーパーの中で語られた「Mantleは1、2%といった小さな性能向上を狙って設計したモノでは無い、現時点では発表しないが、実際に数字を見れば驚くだろう」と説明していることだけだが、これを素直に解釈すれば、少なくとも2桁、場合によっては2桁でもかなり大きな数字が実現されていると期待できる。

 今回DICEのヨハン・アンダーセン氏は、Battlefield 4のMantle版は12月の終わりにリリースする予定だと、従来12月としてきた予定をもう少し具体的にしている。仮に、そこで数十%もの性能向上があれば、それだけでGPUの性能が1グレード上がるだけに、インパクトは決して小さくない。このことは、NVIDIAとのGPU戦争において、非常に強力な武器となる可能性は高い。

Battlefield 4を開発したDICEのヨハン・アンダーセン氏
Mantle版のBattlefield 4は12月末のリリースを目指して開発が進められている
アンダーセン氏は、Battlefield 4のエンジンとして使われているFrostbite3エンジンを利用したゲームが今後Mantle対応版としてリリースされる計画だと明らかに
Mantleがターゲットにしているのは既存のAPIを置きかえるのではなく、ハイパフォーマンス向けとしての普及を目指す
Mantleを利用すると、マルチGPUもより効率よく利用できる、アプリケーションレベルでGPUの割り当てができるようになる
APUと単体GPUがあるような環境でも、単体GPUにレンダリングを、APUの内蔵GPUに物理演算をなどこれまでよりも柔軟な処理が可能に

HSAの開発環境はソフトウェアもハードウェアも来年の1月に出揃う

 そして、AMDが第3の矢として放とうとしているのが、2014年の1月に正式に発表予定のKaveriでサポートされるHSA(Heterogeneous System Architecture)だ。

 HSAは一言で言えば、CPU、GPU、DSPなどさまざまな異種プロセッサを1つの言語でまとめて扱えるようにしたプログラミングモデルだ。これまで、プログラマが、CPUとGPUを同時に扱うアプリケーションをプログラムしようとした場合には、CPUを利用して基本プログラムとしてはC++などを勉強し、それに加えてCUDAやOpenCLなどのGPUを扱うプログラミングモデルを別途勉強する必要があった。しかし、HSAは、CPU、GPU、DSPなどの複数のプロセッサの上に仮想ISAとでも言うべきレイヤーを設けることで、プログラマはHSAに対応したソフトウェアを自分の得意とする言語を利用して簡単にプログラムを書けるようになる。

 そうしたHSAのプラットフォームがようやく一応の完成を見る。AMDが1月に投入するKaveriはこのHSAを利用するのに必要なハードウェア機能が内蔵されており、プログラマがHSAを実環境でテストできる。AMDは、今回のAPU13において、HSAのプログラミング環境が年明けには正式版がそろうことを明らかにしており、プログラマは正式版のHSAの開発環境を、Kaveri上で試すことで、より開発を進めて行くことが可能になる。これはHSAにとって非常に大きな一歩だと言える。

 また、今回のAPU13では、AMDが業界各社と協力してHSAの普及を進めている業界団体HSA Foundationに新たなメンバーが加わったことが明らかにされた。それが、Webサービスや携帯機器向けOSで一般的に使われているプログラミング言語Javaの開発元であるOracleで、「コントリビュータ」というプロモーター(幹事企業)に次ぐ立場としてHSA Foundationに加入したことだ。Javaが重要な開発言語であるのは、今更論を待たないと思うが、AMDはそのJavaの仮想マシンにHSAの機能を実装するという取り組み(Project Sumatraというコードネームで知られている)を行なってきた。今後もそうした取り組みをOracleと共同して行なっていくというのが今回の発表の要旨だ。

Kaveriが動作しているシステム。HSAの開発環境で作られたHSA対応アプリケーションがすでに動いていた。Kaveriは来年の1月14日に発表予定
Project Sumatraのデモ。CPUで米国人の名前から該当する名前をカウントするプログラムを走らせるとCPUでは45秒かかるが、GPUを利用して演算すると10秒弱で処理が終了する。このようにJavaの高速化が可能になる
APU13の2日目の基調講演に登場したOracle Javaプラットフォーム担当副社長 ナンディニ・ラマニ氏は、OracleがHSA Foundationにコントリビューターとして参加することを発表

x86-64の夢よ再びとなるかHSAの取り組み

 このように、HSAの取り組みを着実に前に進めるAMDだが、果たしてその狙い通りにいくかかどうか、それは言うまでもなくHSAが世の中に受け入れられていくかにかかっている。それには、膨大な時間がかかるし、Kaveriが出て、HSAの開発環境が揃ってからそれで終了というものではない、むしろ大変なのはこれからだ。

 PCの世界で考えると、x86アーキテクチャのプロセッサにおけるAMDの市場シェアは20%弱に過ぎない。そして、GPUコンピューティングの世界では、今のところナンバーワンはNVIDIAのCUDAだ。IT業界には「業界のリーダーは性能こそすべてといい、黙ってプロプライエタリの仕様の製品を黙々と売る。それに対して2番手以降の企業は、オープンプラットフォームこそ重要だといい、弱者連合を作って対抗するが大体成功しない」という、ちょっとした格言がある。確かにそういう例は枚挙に暇がない状態で、業界の2番手以下が表明した“オープン”な規格がトップを駆逐した例というのは実はそんなに多くない。

スー氏が基調講演で示したスライド、HSA Foundationに加盟しているベンダーがかかわっているSoCの方が今や大多数

 では、AMDのHSAもその例に入ることになるのだろうか? 筆者はそうは考えていない、なぜなら、実のところHSA Foundationは弱者連合どころではなく、今や強者連合になっているからだ。初日に行なわれた基調講演でAMD上席副社長兼グローバルビジネス事業部 事業本部長のリサ・スー博士は次のようなスライドを見せて、HSA Foundationに属する企業の方が世界のクライアント(PC、スマートフォン、タブレット)市場の3分の2を占めており、IntelとNVIDIAは残りの3分の1でしかないと述べた。

 スー氏の言うところは正しい。今や、スマートフォンはPCの出荷台数を追い越しており、台数ベースで言えば今後もそちらが多いという状況は変わらないだろう。そのスマートフォン市場のリーダーは、半導体メーカーで言えばQualcommだし、CPUのアーキテクチャでいえばARMだし、GPUのアーキテクチャで言えばImagination Technologiesだ。いずれもHSA Foundationの幹事企業であり、確かにそれらのベンダーが提供するソリューションを数えていけば全市場の3分の2になるというのは決して誇張ではない(ただし、よりフェアに言うなら、ImaginationがGPUのIPデザインを提供しているとは言え、モバイルプラットフォームに非常に大きな影響力を持つiPhoneやiPadのプロセッサを設計しているAppleはHSA Foundationには入っていないので、ちょっとこのカウントはズルイ気もするが……)。

 では、HSAが次世代のプログラムの標準になるにはどうしたらいいのだろうか。答えを出すのは、プログラムを書く側、その代表とも言えるOSや開発環境を提供するOSベンダーがどんな選択をするか次第だろう。つまり、Microsoft、Google、AppleがHSAを選ぶのか、選ばないのか、それがすべてを決めるということができるだろう。

 実際、AMDは過去にその成功体験を持っている。2000年代の前半にAMDが、Intelが提唱していた64bit ISAとなるIA-64に対抗して、x86を64bitに拡張するx86-64(今のx64、AMD64、Intel64)を提唱してIntelとの綱引きを繰り広げていた時のことだが、結局勝負を決めたのはMicrosoftがx64を選択したことだった。筆者が今でも鮮明に覚えているのは、2003年のCeBITでMicrosoftがWindows XPのx64版を展示したときに受けた衝撃だ(興味がある方は2003年の記事を参照)。当時率直に「これは市場が大きく変わる」と感じたことを覚えている。その後、Intelもx64を受け入れることを表明(その名前をIntel64としたのは最大限の抵抗だが……)する羽目になり、x64の実装でIntelに先行したAMDは、サーバー向けプロセッサOpteronで、Intelのサーバープロセッサを性能で凌駕して、市場でもシェアを伸長させた。

 HSAでもそれと同じことが起これば、再びトレンドが大きく変わる可能性は十二分にある。そして、繰り返しになるが、すでにHSA Foundation陣営の方が市場ではリーダーなのだ。そうなれば、HSAの実装で先行しているAMDが先行者利益を得ることは充分に考えられ、それこそがAMDのHSAの狙いだ。果たしてそれは起こるかどうか(つまりOSベンダーがHSAのサポートを表明するかどうか)、それが次の焦点と言うことができるだろう。

(笠原 一輝)