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

GK110ベースのGeForce GTX TITANをフィーチャしたGTC 2013

GeForce GTX TITANをフィーチャしたNVIDIA

 NVIDIAは現在、GPUコアアーキテクチャを2年に1回のペースでリフレッシュしている。2年に1回のファウンダリのプロセス技術の移行とともにアーキテクチャを変更するペースだ。今年(2013年)は、プロセス技術とGPUアーキテクチャの2年更新の狭間で、アーキテクチャ自体の刷新はなかった。そのため、先週、米サンノゼで開催されたNVIDIAの技術カンファレンスGPU Technology Conference 2013(GTC 2013)では、NVIDIAは、製品としてはグラフィックス向けで「Kepler」(ケプラー)の最高峰「GK110」を搭載したGeForce GTX TITANを大きくフィーチャした。

 NVIDIAは、2013年のフラッグシップモデルであるGeForce GTX TITANに、数字による型番ではなく“TITAN”という製品名。これは、昨秋のスーパーコンピュータカンファレンス「SC12」時に、スーパーコンピュータのトップ500リストのトップに輝いたNVIDIAのK20xベースのスーパーコンピュータ「Titan」(ORNL:Oak Ridge National Laboratory)にちなんでいる。GTCにおけるJen-Hsun Huang(ジェン・スン・フアン)氏(Co-founder, President and CEO)のスピーチでは、冒頭でOak RidgeのTitanが示された後、GeForce GTX TITANの紹介となり、両者の関係が強く示された。

GeForce GTX TITANとORNLのTitanを紹介するJen-Hsun Huang氏

風と波と船体の物理シミュレーションWave Works

 Huang氏は、Titanの膨大な演算パフォーマンスを示すために2つのデモを行なった。1つはは「Wave Works」と呼ぶ海洋のリアルタイムシミュレーションのデモ。風力の指標であるビューフォートスケール(Beaufort-Scale)に従って、海が荒れて行くさまを物理シミュレーションしたもの。風力が強くなると、海面がそれに対してリアクションし、海面を変形させる波動が強くなり、水しぶきや水煙が上がり、海面が泡立つ。

 デモでは荒海を進む船が、波の間で上下に揺れる様子をシミュレーション。船体に20,000個のセンサポイントが配置され、それぞれのポイントにかかる波による水圧を計算し、圧力によって船体が揺れ動くさまが算出された。波間で船が傾き、波頭を乗り越える時に大きく船首が上がる。船が進むベクトルによって波がかき分けられて、水しぶきが上がる様子も100,000ポリゴンの水しぶきで表された。ポイントは、風と波、そして波と船の相互作用を緻密に物理シミュレーションしている点で、単精度4.5TFLOPSの膨大な演算パフォーマンスを持つGeForce GTX TITANだからシミュレートできたとNVIDIAは説明する。

「Wave Works」と呼ばれるTitanによるリアルタイム海洋シミュレーション
ビューフォートスケール1の風の穏やかな状態
ビューフォートスケール6の時化った状態
ビューフォートスケール10以上の嵐の状態で波頭に船が乗り上げている

不気味の谷を越えるためのFace Works

 もう1つのデモは「Face Works」。これは、“不気味の谷”(Uncanny Valley)をどう乗り越えるかの研究だ。不気味の谷は1970年に日本のロボット工学者の森政弘氏によって予測された現象だ。ロボットは、人間に見かけが近づいて行くと、人が感じる親近感が増していく。しかし、ある一定の類似度を超えると、逆に人間に似ているのに人間らしくない部分が不気味に感じられるようになる。下のチャートは横軸が人間との類似性、縦軸が人が感じる親和感を示しており、類似性が高まると、一時、親和感が大きく落ち込んでいる。

「Face Works」と呼ばれる不気味の谷に関するデモ
ロボットと人間が一定の親和感を示す曲線。一定の類似度を超えたときに親和感が大きく落ち込む“不気味の谷”(Uncanny Valley)が生まれる

 不気味の谷は、数年前にこの問題を研究する大阪大学のロボット工学者 石黒浩氏が、自分そっくりのリモートロボットを作成したことで、メディアでも頻繁に取り上げられるようになった。下は、2009年の日本の半導体チップカンファレンス「Cool Chips XII」で「Future Robotics and the Key Components」と題したキーノートプレゼンテーションを行なった石黒氏で、スライドにあるのは石黒氏そっくりの「Geminoid」(特定の人物そっくりに作られた遠隔操作アンドロイド)だ。

大阪大学のロボット工学者 石黒浩氏。スライドは同氏に似せたアンドロイド

 不気味の谷は、人間の被験者を使った実証実験も行なわれているものの、まだ確立した法則ではない。疑似科学と批判されることもある。にも関わらず、広く信じられているのは、コンピュータグラフィックスの進化によって、人間ライクなキャラクターが身近になり、“人間と類似しているのに人間と違う”不気味の谷を多くの人が体験したからだ。

 そのため、不気味の谷は、ゲーム業界でもよく使われる言葉となっており、今週から米サンフランシスコで開催されるGDC(Game Developers Conference)でも、米Activision Blizzardが不気味の谷を越えるとしたキャラクターレンダリング手法の講演を行なう。

 不気味の谷は、提唱された当初は、むしろロボットは人間に似せない方がいいという提案だった。しかし、現在の研究のテーマは、ロボット工学でもコンピュータグラフィックスでも、不気味の谷を越えることになっている。NVIDIAがFace Worksで示したのは、その最新の成果だ。

待機状態の表情も表現するFace Works

 オリジナルの不気味の谷の研究では、動きが加わると親和度も不気味度も急増すると指摘していた。下がもともとのチャートで、点線は動きが加わった場合を示している。NVIDIAのチャートは、動きがある方のチャートだ。人間に似ているのに、人間と異なる動きをすると、ゾンビとまで感じるだろうとなっている。これは、不気味の谷の原因が、人間に姿が類似しているのに振る舞いが人間とは異なるため、という部分が大きいという予想を示している。

“不気味の谷”のチャート

 NVIDIAのFace Worksは、まさにそうした発想に従って作られたデモで、基本的には人間らしい表情の動きをCGーキャラクタに加える。Huang氏は、この研究はUniversity of Southern California(映画芸術学部で有名なロサンゼルスの大学)のPaul Debevec氏(Institute for Creative Technologies)との共同研究であると説明。Debevec氏が開発したパフォーマンスキャプチャシステム「Light Stage」で、156個のライトソースを使い、30の表情を精細にキャプチャ。それを、GPUでリアルタイムに再生している。

University of Southern CaliforniaのLight Stage

 このデモが素晴らしかったのは、人間の待機状態まで再現していたこと。不気味の谷の研究では、ロボットが何もタスクがない待機状態でも、自然に人間らしい仕草をすることが研究されている。Face Worksは同様に、コンピュータグラフィックスによる表情と表情の間を、自然に見える仕草でつないでいる。顔の筋肉がかすかに動き、眼はまばたきとサッカード(Saccade:視点が小刻みに動く現象)を行なうといった具合だった。

Face Worksのデモ

 表情のデモは素晴らしいものの、NVIDIAの限界も感じさせた。不気味の谷を越えるためには、人間らしい振るまいを人間らしい時に示さなければならない。インタラクティブなCGの場合は、刺激に対する反応自体が人間らしくなければ、豊かな表情も、不気味に感じられるだけだ。NVIDIAは、そうした知能側の部分に、並列プロセッサであるGPUがどう貢献できるかは一切示さなかった。

AMDから移籍したMike Houston氏を登壇させるためのデモ?

 GTCでのHuang氏のスピーチでは、さまざまなデモが行なわれたが、デモの意図がよく見えないものがあった。それは、画像検索のデモで、雑誌の中の女優の着ている服の柄をキャプチャ、類似の柄をGPUコンピューティングで検索するというもの。この手のデモは今更という感が強く、GTCでの内容も新奇性が見えにくかった。

 しかし、このデモの狙いは、別のところにあったという声もある。それは、デモに登場したNVIDIAのシニアエンジニアが、Mike Houston(マイク・ヒューストン)氏だったからだ。

 Mike Houston氏はつい最近までAMDのSenior System Architectであり、AMDの新GPUアーキテクチャ「GCN(Graphics Core Next)」開発で中心的役割を果たした一人だ。2011年のAMD Fusion Developer Summit(AFDS)で、GCNの説明を行なったのもHouston氏だった。Houston氏の移籍は、GPU業界ではある程度の衝撃で、キーノートスピーチのあとも話題となった。あるAMD関係者は「Mikeは突然AMDを抜けたので驚きだった。あのデモは、Mikeをステージに立たせて、彼がAMDからNVIDIAに移ったことを示したいためのものだったのでは」と勘ぐる。

NVIDIAのシャツを着て登場したMike Houston氏
2011年のAMD Fusion Developer Summit(AFDS)でGCNの説明を行なうMike Houston氏

 Houston氏は、もともとスタンフォード大学のStanford Graphics Labの出身。AMD/ATI Technologiesとは縁が深く、2005年のATIのRADEON X1800(R520)系の説明会や、2007年のRadeon HD 2900(R600)の説明会で、GPGPUの説明に登場した。スタンフォード大学では、ストリームプログラミング言語「BrookGPU」や、分散コンピューティング「Folding@Home」でのGPUクライアントなどのプロジェクトをリードした。また、プロセッサのメモリ階層をプログラミング言語の中でモデル化するためのプロジェクト「Sequoia(セコイア)」も研究していた。

Mike Houston氏の経歴
スタンフォード大学で関わったストリームプログラミング言語「BrookGPU」
分散コンピューティング「Folding@Home」にも携わっている

 Stanford Graphics Lab人脈は、GPU業界の主流で有力な人物が各社にいる。NVIDIAで「CUDA」を産んだIan Buck(イアン・バック)氏も、NVIDIAでシェーディング言語「Cg」を作ったWilliam(Bill) R. Mark氏もそうだ。Bill Mark氏は、Larrabee(ララビー)の立ち上げに加わっていた。結局、スタンフォード/Stanford Graphics Labs人脈がGPU業界の中で動いているだけだが、Houston氏の移籍は、人材が抜けて行くAMDと、人材を引き寄せるNVIDIAを象徴するような出来事となった。もちろん、状況が変わればその逆も簡単に起こるのがIT業界だ。

GPU仮想化が抜けていたNVIDIAのGRID VCA

 NVIDIAはGTCのキーノートスピーチの中で、NVIDIAのグリッドコンピューティングソリューションのアプライアンス版「NVIDIA GRID VCA」の正式発表を行なった。これは、VAR業者を通じて販売されるスタイルのラックマウントサーバーで、XeonとKeplerを組み合わせている。概要はほかの記事にあるので省略するが、重要な点は、実は今回のNVIDIA GRID VCAでは、GPU仮想化が抜け落ちていた点だ。

グリッドコンピューティングのアプライアンス「NVIDIA GRID VCA」

 NVIDIAは、昨年(2012年)、同社のクラウドプラットフォームであるGRIDを発表する際に、GPU仮想化とリモートグラフィックスをセットにして説明していた。サーバーサイドでレンダリングした結果を、ネットワーク経由でクライアントに送ることで、クライアントのGPU性能に依存しない高度なリモートグラフィックスを提供する。その際に、経済的に多くのユーザーをサポートするために、サーバー側のGPUを仮想化して多ユーザーによる共有を可能とするGPU仮想化を行なう。これがシナリオだ。

 ところが、NVIDIA GRID VCAでは、MAXシステムはCPUコアが合計で16コア、GPUが各ボード2個の8ボードで合計16個。これでサポートできる同時ユーザー数は最大16ユーザーとなっている。BASEシステムはコア数とGPU数が半分で、最大ユーザー数も半分の8ユーザーだ。つまり、GPU仮想化は行なわず、1GPUに1ユーザーをマップしただけの、リモートグラフィックスシステムとなっている。そのため、1ユーザー当たりのコストがかなり高いソリューションとなってしまっている。

NVIDIA GRID VCAのイメージ

 NVIDIAでGRID系の製品を担当するWill Wade(ウィル・ウェイド)氏(Senior Product Manager, NVIDIA)はその理由を次のように説明する。

 「第1世代は、16GPUで最大16ユーザーだ。しかし、我々にはGPU仮想化技術があり、今年(2013年)遅くになれば利用できるようになる。そうすると、同じマシンで、同時32ユーザーあるいは64ユーザーといった使い方ができるようになる。」

 要は、GPU仮想化のソフトウェアサポートが整わないために、GPU仮想化とリモート抜きでリモートグラフィックスとしてスタートするわけだ。ちなみに、KeplerはGPU仮想化をサポートするが、推奨するのはグラフィックスだ。GPUコンピューティングで、GPU仮想化は推奨していない。それはプリエンプションがなく、スレッドの実行途中での切り替えができないからだ。

 GPUはプロセッサ数が膨大であるため、アーキテクチャルステイトの量が非常に多い。しかし、グラフィックスでは1フレームの描画を終えると、GPU内のアーキテクチャルステイトは基本的に不要なデータになり、メモリにセーブする必要がない。そのためグラフィックスでは、ステイトセーブのレイテンシなしに切り替えができる。

プリエンプションが可能になる次世代のGPU仮想化(PDF版はこちら)

 しかし、汎用のGPUコンピューティングでは、レジスタだけで数MBもあるGPUのステイトをセーブ/リストアする必要がある。これは難しいため、Keplerの第1世代のGPU仮想化では対応していない。Wade氏によると、「Maxwell」(マクスウェル)になると、プリエンプションが可能になるという。

 プリエンプティブな切り替えが可能になると、NVIDIAはGPU仮想化のソリューションを、GPUコンピューティングにまで拡大できる。NVIDIAの究極の目的は、クライアントだけでなく、サーバーにもGPUをまんべんなく入れさせることであり、そのためには、GPU仮想化も重要だ。

(後藤 弘茂 (Hiroshige Goto) E-mail