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

CPUの設計思想の違いが反映されるKinectとPlayStation Move



●KinectはSF映画チックな夢を実現できるか

 MicrosoftがXbox 360に今秋もたらす新インターフェイス「Kinect」(キネクト)。コンピュータ科学として見ると、Kinect(コードネームProject Natal)は本格的なジェスチャと音声ベースのナチュラルユーザーインターフェイスを広く商業普及させる初の試みだ。「マイノリティ・リポート」のようなSF映画でしか見られなかった未来型のインターフェイスが、身近にやって来る。技術的には深度センサーとRGBカメラによって、ユーザーの形状を検出し、形状からユーザーの骨格を検出することで、ユーザーのジェスチャの検出を可能にする。

Xbox 360とKinect

 Kinectの重要のポイントは、Microsoftが、この「ナチュラルユーザーインターフェイス(NUI)」技術を、PCではなくゲームコンソールから採用することだ。そこにKinectの挑戦がある。

 ゲームコンソールでは、価格とコストの制約がきつく、ゲームのために緻密な制御が求められる。ゲームコンソールの周辺機器の価格は、99ドルを超えると成功しないと言われており、Kinectセンサーデバイスの単体で149ドルという価格はかなり厳しい。また、Xbox 360のユーザーの多くは、Kinectを、従来のゲームコントローラの置き換えとしての側面で評価する。ゲームのコントロールのし易さが評価の基準になるため、現行のKinectの精度でどこまでユーザーの支持を得られるかわからない。

 その一方で、Kinectにはゲームプラットフォームならではの利点もある。インタラクティブで体感性が強いゲームは、ナチュラルユーザーインターフェイスとの親和性がある。ゲームデベロッパは、スタイリッシュなユーザーインターフェイスを作り馴れているので、Kinectを活かせる可能性も高い。また、Kinectでの操作自体がエンターテイメントになりうる。子ども層が触れる可能性が高い点も利点だ。子どもの方が、一般に新奇なマンマシンインターフェイスへの抵抗が薄いと見られるからだ。

●Kinectに熱を入れるMicrosoftのXbox 360部隊

 MicrosoftのXbox 360部隊は、Kinectにかなり入れ込んでいる。Kinectを最初に発表した昨年(2009年)6月のE3では、映画監督のスティーブン・スピルバーグ(Steven Allan Spielberg)氏を壇上に上げて魅力を語らせた。今年(2010年)6月のE3でも、Kinect専用ブースを多数設けて、精力的に紹介していた。開発キットも比較的早い段階から出していた。

 Microsoft側の説明からわかるのは、Xbox 360の開発チームがこの技術を単純なゲームコントローラの置き換えとは考えていないことだ。Microsoftは、Kinectの真価がコンピュータ側への入力を大きく拡大、現実世界とコンピュータの相互作用を拡張することで、コンピュータと人間の相互作用の幅を大きく広げる点にあると考えている。そのため、KinectでOSのユーザーインターフェイスを含めた、総合的なマンマシンインターフェイスを改革しようとしている。実際、「ダッシュボード(Xbox 360 OSのユーザーインターフェイス)」やメディアプレーヤーにも、Kinectバージョンを作っている。

 SCEも、研究開発に関わるスタッフは同様のビジョンを語るが、Microsoftはそれが現場のスタッフにまで深く浸透している点が違う。MicrosoftスタッフのKinectに対する熱の入れようは、Microsoft社内で、強力にKinectに対する啓蒙が行なわれていることを示している。こうした「熱」が、必ずしも成功に結びつくわけではないが、熱がなければ成功はありえない。

 しかし、Microsoft Xbox 360部隊側の思い入れが、外部にうまく伝わるかどうかは難しい。ゲームコントローラという視点だけで評価されると、当初は、そうした革新性を理解されにくいのがKinectの難点だ。

 サードパーティソフトウェア会社への説得も同様だ。Wiiのように、標準でモーションコントローラが付属していれば、サードパーティも急速に対応する。しかし、プラットフォーム中盤での拡張デバイスで、しかも単体では149ドル(日本では14,800円)という値付けになると話は違う。ゲームパブリッシャ側は、デバイスの普及に疑問を感じるため、様子見をして開発ラインをあまり割かない可能性が出てくる。すると、タイトルが揃わない→普及しない→タイトルがますます揃わない、のネガティブスパイラルに陥る可能性が出てくる。

 そのため、Kinectデバイスの価格は重要だったが、ゲームデバイスとしては高価格につけた。Microsoftは、Kinectを低価格にしてソフトウェア開発を難しくするか、Kinectを高価格にしてソフトウェア開発を容易にするかの選択で後者を取った。それが吉とでるか凶と出るかは、まだわからない。

●Kinectセンサーの仕様で揺れたMicrosoft

 前回レポートした通り、MicrosoftはKinectセンサーの仕様を何回か変えている。KinectをProject Natalとして紹介した昨年の6月時点では、Kinectセンサーにはスケルトンの認識を行なう専用プロセッサが搭載されていた。しかし、昨年夏以降の開発キット提供時には、センサー側に専用プロセッサを持たず、Xbox 360本体のCPUでソフトウェア処理する仕様へと変わった。そして、Microsoftは今年の夏前に、再度スペックを変更、センサー側にある程度の処理を行なうプロセッサを搭載することにした。

 Kinectの仕様に紆余曲折があったのは、KinectのデバイスコストとXbox 360本体のCPU負荷のトレードオフで、Microsoftが迷ったためだ。Kinectセンサーをダムセンサーにすればコストは下げられるが、Xbox 360 CPUの負荷が大きく上がってしまう。逆に、Kinectセンサー側に認識処理を行なわせると、Xbox 360 CPUの負荷はほとんどなくなるが、Kinectデバイスのコストがガンと上がってしまう。CPU負荷を下げてKinectゲームを作りやすくするか、Kinectの価格を下げて普及しやすくするか、Microsoftはその間で揺れた。

 最終的な判断をMicrosoftが下したのは、7月の米国価格発表より前の1~2カ月の間と考えられる。Microsoftは米国での価格を149ドルと発表し、先週の日本のカンファレンス「Xbox 360 Media Briefing 2010」で日本での価格を14,800円と発表した。しかし、仕様変更前は、米国で99ドル、日本で9,800円だったと推定される。実際に、マイクロソフト日本法人のWebサイトでのKinectセンサーの価格は、最初は「9,800円」と間違えて表示されていた。

更新直後のマイクロソフト日本法人のKinectサイト。Kinectセンサーの価格が9、800円となっている

 6~7月にMicrosoftが最終決定を下したのは、デッドラインがそこにあったからだ。生産に間に合うギリギリのラインがそこにある。発売予定の11月頭からわずか1四半期半前での仕様変更は、間に合うとは言え、かなりきつい。それ以前にチップやボードの設計は終えていたと見られるが、生産はかなり綱渡りのはずだ。

 そのため、Kinectの量産には、仕様変更の影響が出てくるものと予想される。通常、この手のデバイスは発売直後にドッと売れるため、発売前にある程度造り貯めをしておく。量産ラインをいきなり増やすことは難しいからだ。

 しかし、今回のように土壇場で仕様の変更が入ると、そうした仕掛けが難しくなる。おそらくMicrosoftは、今回Kinectセンサーを作り貯めておくことができず、市場への供給は、かなり綱渡りになっているはずだ。Kinect発売日程は、北米が11月4日、ヨーロッパが11月10日、日本が11月20日と、中途半端にずれている。これは、ホリデーシーズン前に投入したいが、同時に発売できるだけの量産体制にないことを示しているのかも知れない。

 もし、Kinectの供給量が当初限られているとすると、入手性に問題が出る可能性もある。Microsoftが期待するようにKinectがスタート時から人気となると、品薄になるかも知れない。しかし、Microsoftが恐れているように、Kinectがスロースタートになってしまうと、供給量に問題があっても、顕在化しないだろう。

●CPUアーキテクチャとアルゴリズムで実現するPlayStation Move

 ソニー・コンピュータエンタテインメント(SCE)も、画像認識技術を使ったナチュラルユーザーインターフェイス「PlayStation Move」(コードネームArc)をKinectにぶつける。SCE側の利点は、Microsoftのような、デバイスコストとCPU占有率のジレンマを、ほぼ持たない点。SCEはPS3の心臓であるCell Broadband Engine(Cell B.E.)の搭載する7個のサブCPUコア「SPU(Synergistic Processor Unit)」をたった1個使うだけで、PlayStation Moveの4プレーヤーまでの認識を可能にしている。CPUの演算能力の1/8しか使っていない。

 PlayStation Moveのシステムは、PlayStation EyeカメラでキャプチャしたPlayStation Moveモーションコントローラのスフィアで、深度データを算出している。スフィアは、PlayStation Moveモーションコントローラの先端についている、光るボールだ。PlayStation Moveでは、カメラでキャプチャしたスフィアのピクセルを補完して、スフィアのエッジを算出して、より正確な深度を検出している。ピクセルの濃淡からアンチエイリアシングの逆のような手法でエッジを割り出している。そのため、サブピクセル単位でスフィアのサイズを測り、より正確な深度を算出できている。

 こうした処理の演算量は膨大になるが、Cell B.E.の特性とそれを活かしたソフトウェアアルゴリズムで、占有率を抑えている。Cell B.E.のSPUは3.2GHzで動作する128-bit SIMDエンジンで、認識処理のようなストリーム処理に最適化されている。PlayStation MoveのRGBカメラからのデータは8-bit RGBデータ(各色8bitsの3値)なので、RGBを16要素づつ1サイクルで処理できる。データをコンバインすることで、演算スループットを引き上げている。

 このように、PlayStation Moveは、特徴的なCPUアーキテクチャと、独創的なソフトウェアテクニックを、巧妙に組み合わせている。それによって、余計な機能を一切持たないダムなRGBカメラと、なんの変哲もないスフィアを使うことで、高精度の3次元位置検知を実現(モーションコントローラ側のセンサー類は別として)している。そのため、Kinectとある程度似たようなこと(画像処理によるモーションの認識)をやっても、コストを抑えることができる。

PlayStation Move光球のエッジの明るさから距離を検出する

●CPUアーキテクチャの思想の違いが反映

 この問題は、Microsoftとソニー・コンピュータエンタテインメントのCPUアーキテクチャに対する思想の違いを反映している。CPUの思想の違いのため、ナチュラルユーザーインターフェイスでは、Microsoftはデバイス側を高機能にして高価格にせざるをえなくなり、SCEは最小のコストで実現できている。

 MicrosoftはXbox 360にPC的なホモジニアス(同種)マルチコアを採用し、SCEはPLAYSTATION 3(PS3)にヘテロジニアス(異種混合)型マルチコアを採用した。ヘテロジニアス型のCell B.E.は、従来型のスカラ性能を重視した中型のCPUコアPPU(Power Processor Unit)を1個と、スループット重視で小型のCPUコアSPUを8個ダイに載せている。サブのCPUコアを演算に最適化してシンプルにすれば、より多くのCPUコアを載せられるというのがヘテロジニアスの発想だ。シンプルコアの方が、ダイ当たりのパフォーマンス効率はずっとよくなる。

 PCなど従来型コンピュータと同様のホモジニアスマルチコアの方がプログラミングがし易いが、ダイ(半導体本体)当たりのCPUコア数が少なくなる。汎用コアと演算に最適化したコアを組み合わせたヘテロジニアスマルチコアの方がダイ当たりのCPUコア数が多くパフォーマンスが上がるが、プログラミングは複雑になる。結果、PS3の方が演算パフォーマンスは格段に高いが、Xbox 360の方がプログラミングが容易となった。

 この選択の違いは、当初はプログラミングのし易さの面でMicrosoftにプラスに働いた。しかし、ナチュラルユーザーインターフェイスのように、コンピューティングパフォーマンスが重要な処理が加わると立場が逆転する。この手の処理で重要なのは整数のSIMD(Single Instruction, Multiple Data)演算パフォーマンス。PS3のCell B.E.は、128-bit幅のSIMDエンジンを各CPUコアに1個づつ合計8個持っている計算になる。それに対して、Xbox 360は同じ3.2GHzで動作するSIMDエンジンを各CPUコアに1個づつ合計3個備えている。単純に考えると、Xbox 360 CPUが1/3のCPUパフォーマンスを使う処理を、PS3は1/8でできることになる。

 しかも、幸か不幸か、PS3のSPUは、元もと使い切れてないデベロッパが多くて、余っているケースが多い。だから、PS3ではPlayStation MoveでSPU 1個、画像認識でSPU 1個、さらにこの先、もし音声認識を導入してSPU 1個を消費したとしても、まだアプリケーションを走らせる余裕が充分にある。それに対して、Xbox 360では、Kinect認識、音声コマンド認識と、次々にCPU処理を取られて行くと、あっと言う間にCPUリソースがきつくなってしまう。

単純なマルチコアCPUの比較
※PDF版はこちら
マルチコア化と理論上のパフォーマンス
※PDF版はこちら

●ホモジニアスとヘテロジニアスのアーキテクチャの違い

 このように、コンピューティング偏重の処理になると、突然PS3のヘテロジニアスアーキテクチャが有利になる。逆にXbox 360のホモジニアスな対称型マルチコアは不利になる。Microsoftがこの問題を解決するには、どこかに余計なプロセッシング能力を加えるしかない。Kinectセンサーへのプロセッサ搭載が、まさにその解答で、その結果、コストと製品価格が上がってしまった。

 つまり、PS3はヘテロジニアスマルチコアだからナチュラルユーザーインターフェイスなどを低コストに導入できる。Xbox 360はホモジニアスマルチコアだからコストをかけないとナチュラルユーザーインターフェイスを導入しにくい。最初のCPUアーキテクチャ選択が、両社の明暗を分けている。

 もっとも、SCEは、PlayStation Moveでその利点を、まだ完全には活かしていない。例えば、PlayStation Moveのワールドワイドでの低価格攻勢や本体への標準添付といった戦略だ。PlayStation Moveに必要なコントローラとカメラ、ゲームをセットにしたスタータキットは、日本では5,980円(「PlayStation Moveスターターパック」)と割安だが、米国では99.99ドルの小売り価格(「PlayStation Move Bundle」)と慎重な値付けとなっている。

 CPUアーキテクチャとコストの問題は、一見、PlayStation MoveとKinectの違いに見えるかも知れないが、そうではない。もし、SCEがKinectと同じような技術を採用したとしても(実際にSCEもMicrosoftが提携したPrime Senseと交渉していた)、CPU全体での負荷の比率はXbox 360よりはるかに小さかっただろう。逆に、MicrosoftがPlayStation Move方式を使ったとしたら、やはりCPU負荷に苦しんだだろう。純粋に、画像認識処理とCPUアーキテクチャの関係の問題だ。

 また、この件は次世代ゲームコンソール(あるとすればの話だが)にどんなアーキテクチャを採用しなければならないかを示している。ゲームコンソールが、ユーザーインターフェイスの改革に向かった以上、今後、ゲームコンソールのCPUはデータ並列処理のスループットを上げて行く必要がある。GPUのようなデータ並列コアの塊を、どうCPUに統合して行くのかが、次世代ゲームコンソールのカギとなる。

 それは、必ずしもコアレベルでのヘテロジニアス結合である必要はない。Intelが「Larrabee」(ララビ)でいったん構想し、AMDが第2世代の「FUSION」で計画していると見られるような、既存CPUコア内部への広いベクタユニットの統合も、有効かもしれない。

 もっとも、MicrosoftとSCEの両社とも、現在はまだ次世代コンソールの具体的な動きがない。次世代のメインチップは、32nmプロセスには間に合わず、早くても20nm台のプロセスになるだろう。SCEは携帯型の方を急いでおり、今年から来年(2011年)はPSP系の攻勢で忙しい。近くPSPにスマートフォン機能を融合させた「PSP Phone」の概要を発表すると見られている。さらに、来年中盤の次世代PSPでも活発に活動している。両機ともゲーム性能というより、汎用性を求めた結果のハードウェアで、これまでのゲーム機とは違う方向へ向かっている。

PS3 CPUのダイアグラム
※PDF版はこちら
Xbox CPUのダイヤグラム
※PDF版はこちら