お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2014/08/21 18:19

ニュース

[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート

SIGGRAPHの一般展示セクション。ベンチャー企業から大手半導体メーカーまで,さまざまな企業が出展している。写真の左上にはAMDの看板も見える
画像集#004のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
 SIGGRAPHは,コンピュータグラフィックスとそれに関連するインタラクティブ技術(※仮想現実など)をテーマにした学会なのだが,PlayStationの登場や映画におけるCG活用の普及といった要因によって,1990年代以降は産学連携が進み,今では商業イベント的な側面も強くなっている。その象徴が「Exhibition」(以下,一般展示セクション)だ。
 同じSIGGRAPHで開かれる展示会の「Emerging Technologies」は,論文を提出して運営側の審査を通らなければ出展できないのに対して,一般展示セクションは費用さえ払えば,基本的にどんなグループでもブースを出展できるという違いがある。

 そしてこの一般展示セクションには,IntelやNVIDIA,AMDといったゲーマーにもお馴染みのプロセッサメーカーはもちろんのこと,QualcommやImagination Technologiesといった,組み込み向けプロセッサやGPUのメーカーも,ブースを出展するようになっている。半導体企業の領域が,グラフィックスやインタラクティブ技術の最先端に関わっている現状を示しているといえよう。
 そこで本稿では,一般展示セクションの中から,組み込み用途向けのSoC(System-on-a-Chip)やGPUを手がける企業ブースの展示を中心に,展示の見どころをレポートしたい。


GPGPU技術を活用するライトフィールドカメラにQualcommのSoCが採用に


 まずはQualcommブースから見ていく。今年のイチオシは何かといえば,Lytro製ライトフィールドカメラ「LYTRO ILLUM」である。なぜQualcommのイチオシがカメラなのかといえば,LYTRO ILLUMは同社製のSoC「Snapdragon 800」を採用しているからだそうだ。

画像集#002のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート 画像集#003のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
Snapdragonの統合GPUをアピールしていたQualcommブース(左)。イチオシはSnapdragon 800を搭載するライトフィールドカメラ「LYTRO ILLUM」だった(右)

LYTRO ILLUM
画像集#005のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
 Lytroやライトフィールドカメラという言葉に馴染みがない4Gamer読者も少なくなさそうなので,簡単に説明しておこう。まずLytroは,スタンフォード大学のライトフィールド技術研究グループが興した,ライトフィールドカメラ専門のベンチャー企業である。
 第1世代の製品「Lytro Light Field Camera」を2012年に約3万円で発売。Qualcommブースで披露されたLYTRO ILLUMは,製品出荷が始まったばかりの第2世代製品である。直販価格は1599ドルと,デジタルカメラとしてはお高い製品だ。

 普通のデジタルカメラは,レンズで捉えた情景に焦点(ピント)や露出を合わせて,CMOSセンサーなどの撮像素子で撮影するものだ。シャッターを切る前ならば,遠景にも近景にもピントを合わせられるのだが,シャッターを切った途端,情景が持つ光のごく一部だけが選択されて撮像素子に取り込まれているのである。
 一方,ライトフィールドカメラは,視野の範囲にあるすべての光を可能な限りカメラに取り込んで記録するという機械だ。遠景から近景まで,ありとあらゆる焦点距離の情景を一度に記録する。そのため,PCの画面上で写真を見るときに,任意の被写体にフォーカスを当てることができ,若干の視差調整も可能だ。金網越しに撮影した写真から金網だけを,フォトレタッチではなく光学的なポストプロセスで消し去ることもできてしまうのである。


 文章で読んでもイメージしにくいかと思うので,Lytroが公開している写真ビューワーのデモと技術解説動画を下に掲載しておこう。任意の部分をクリックするとそこにピントが合うという面白い体験ができるはずだ。


 LYTRO ILLUMの撮像素子には,無数の微細なレンズが整列したマイクロレンズアレイ(MLA)が取り付けられている。そして,大きなレンズを通過して飛び込んできた無数の光線は,MLAによって分散されて撮像素子の各画素に記録されるという仕組みだ。
 初代機は,約1100万本の光線を記録していたのに対して,スペックが強化された第2世代機であるLYTRO ILLUMは,4000万本の光線を記録可能になったという。撮影データを2次元の写真として出力したときの解像度は,2450×1634ピクセルで,初代機(1080×1080ピクセル)に比べて3.4倍も向上している。
 感覚的には,2000年代前半のデジタル一眼レフカメラ程度の解像度が得られるようになったと,説明員は話していた。ちなみに,撮影データの容量は1枚あたり約50MB近くにもなるという。

画像集#007のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
一見すると,ミラーレスタイプのデジタル一眼レフカメラのように見えるが,レンズは固定式で光学8倍ズーム(※35mm換算で30〜250mm相当)に対応する
画像集#008のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
LYTRO ILLUMで撮影した写真を現像するカメラ付属のアプリケーション。写真の保存はSDカードのほか,カメラ内蔵の無線LAN機能を使ってPCに転送することも可能だ

 さて,このLYTRO ILLUMでは,Snapdragon 800に統合されたGPUコアの「Adreno 330」をGPGPU演算用途に用いて,ライトフィールドの処理をしている。AdrenoシリーズのGPGPU向け活用をアピールするQualcommにとっては,格好の宣伝素材ということなのだろう。

カメラ本体でのプレビューには,Adreno 330によるGPGPUでレイトレーシング的な計算をこなす必要がある。複雑な演算をしているわりには,表示速度はまずまずの速さだ。ただし,写真1枚あたり50MBものデータをSDカードに書き込まなくてはならないので,それには多少時間がかかる
画像集#009のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
 撮影したデータを写真として見るときは,データからライトフィールドを再構築して,仮想的なカメラで撮影処理を行うという処理が必要だ。仮想カメラによる撮影処理とは,「撮像素子上の各画素(撮影データ)→MLA→実際の光線」をトレースする計算処理に当たる。写真を表示するために,シンプルなレイトレーシングの演算をしているようなものと考えればいいだろうか。
 当然ながら,こうした処理にはかなりの演算能力が必要となるため,今のところLYTRO ILLUMで撮った撮影データは,PCで見るのが基本的な使い方となっている。しかし,LYTRO ILLUM本体の液晶パネルでも,ピントや被写界深度を調節したプレビュー表示は可能だ。この処理負荷の高い演算処理をLYTRO ILLUMでは,Adreno 330によるGPGPUで処理しているというわけだ。

 余談だが,後日に「OpenGL」や「OpenCL」などを策定する団体であるKhronos Group(クロノスグループ)関係者とLYTRO ILLUMについて話をしていたところ,「同機はOSにAndroidを使用しており,GPGPUの処理にはOpenCLを活用しているそうだ」という裏話が聞けた。

 NVIDIAは演算能力を強化した「Tegra K1」で,組み込み用途にもNVIDIA独自の「CUDA」をGPGPUソリューションとして展開しようと積極的だ。Qualcommとしても,自社のGPUとオープンAPIを使ったGPGPU採用製品が実際に製品化されていることを,SIGGRAPHの場を通じてアピールしたい。そうした狙いがLYTRO ILLUMの展示に表れていたのではないだろうか。


64bit Android上で64bitゲームを披露していたARMブース


一般展示セクションでは今や常連のARMブース
画像集#010のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
 ARMアーキテクチャの総本山であるARMも,一般展示セクションにブースを構えている。展示の目玉は,64bitアーキテクチャ「ARMv8-A」ベースの開発キット「Juno ARM Development Platform」(以下,Juno)による実動デモだ。

 Junoとは,ARMの64bit CPUコアで,2基のCPUコアを備える「Cortex-A57」と,4基のCPUコアを備える「Cortex-A53」をbig.LITTLEで集積したSoC(Juno SoC)を搭載する開発キットだ。通常時は性能重視のCortex-A57側が稼動して,低負荷時には消費電力の少ないCortex-A53側が稼動する仕組みとなっている。なお,GPUコアには,4基のシェーダコアを搭載する「Mali-T624」を採用しているそうだ。

画像集#012のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート 画像集#011のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
ARMが公開しているJunoの全体写真(左)とブロックダイアグラム(右)

 ブースで展示されていたJunoでは,試作版の64bit版Androidを動作させたうえで,64bitプログラムで作られたシューティングゲームを試遊できるようになっていた。
 デモの様子を動画で掲載しておこう。正直にいえば,64bit版だからここが違うといったデモではないのだが,64bit版アプリケーションの開発も可能になっていますよ,ということを開発者にアピールすることはできたかもしれない。


ARMブースで披露されていた,OpenGL ES3.1のCompute Shaderによる布の挙動シミュレーション
画像集#014のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
 ARMブースで筆者の目に留まったもう1つのデモは,GDC 2014に合わせて発表された「OpenGL ES 3.1」の新機能を実装したものだ。
 詳しくはGDC 2014のレポート記事してほしいが,OpenGL ES 3.1は基本的に「OpenGL ES 3.0」のマイナーチェンジ版であり,新機能としてGPU演算用の「Compute Shader」が搭載されたことが特徴だ。ARMブースでは,このCompute Shaderを使った布の挙動シミュレーションを,ARMアーキテクチャ搭載のデモ機材で動作させていた。


 また余談だが,こうした物理シミュレーションでは,これまでOpenCLの活用が奨励される傾向にあった。しかし,実装がシンプルで,グラフィックスパイプラインに強く連携するようなシミュレーションであれば,Compute Shaderのほうが実装しやすい面もある。そういった理由で,OpenGL ES 3.1のCompute Shader採用はゲーム開発者からおおむね歓迎されているのだそうだ。


モフモフした猫の毛をOpenGL ES 3.0の機能で描く

Imaginationが新作デモ「Soft Kitty」を披露


Imagination Technologiesのブース
画像集#016のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
 組み込み向けGPUのPowerVRシリーズを展開するImagination Technologies(以下,Imagination)は,一般展示セクションに設けたブースで,PowerVR Series6を採用したSoCで動くOpenGL ES 3.0ベースの新作デモを公開していた。「OpenGL ES 3.1ベースのデモはないの?」と説明員に質問してみたところ,そちらはまだ開発中らしく,「もう少し後でね」ということだった。

 公開されたOpenGL ES 3.0ベースの新作デモは「Soft Kitty」というもの。モフモフとした毛並みの猫が,レーザーポインターの光を追いかけるというかわいらしい内容のものだ。
 それだけ聞くと,なんてことはないデモかと思われそうだが,説明員によれば背景オブジェクトや猫のライティングとシェーディングには,光の性質をもとにレンダリングを行う「物理ベースレンダリング」を採用しているということだった。PlayStation 4やXbox One世代のレンダリングテクニックとして,採用事例が拡大している物理ベースレンダリングが,ついに組み込み機器向けGPUでも採用されるようになったかと思うと,なんとも感慨深い。

画像集#017のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート 画像集#018のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
OpenGL ES 3.0ベースのデモ「Soft Kitty」(左)では,その名のとおりモフモフとした毛並みの猫が動き回る。右写真はSoft Kittyやほかのデモを動かしていた端末。どれもImagination製GPUコアを搭載するSoCを使う製品だ

 だが,Soft Kittyデモの見どころは物理ベースレンダリングではない。OpenGL ES 3.0で搭載された「Transform Feedback」(トランスフォームフィードバック)を活用した,毛の生成こそが真の見どころなのだ。
 Transform Feedbackとは,頂点ステージの処理結果を頂点バッファオブジェクト(Vertex Buffer Object,VBO)に格納する機能である。DirectX 10世代GPUで,ジオメトリシェーダに用意されている「Stream Output」に相当する機能だ。


 Soft Kittyデモでは,猫の毛を生成するために,毛髪生成手法のひとつである「Shell法」を用いている(関連記事)。これは,毛の断面図に相当するテクスチャ(シェル)をポリゴンに貼り付け,これを積層させることで毛皮を生成する手法だ。1本1本の線分を生やすのではなく,断面を積層させるというのがポイントとなる。

 単純に毛の断面図テクスチャを積層をさせようとした場合,ベースとなるモデル――Soft Kittyの場合は猫のモデル――を拡大率を少しずつ変えて複数重ね合わせて,そのひとつひとつに毛の断面図テクスチャの適用していくようなアルゴリズムになる。つまり,10枚の断面図テクスチャを積層させるには,拡大率を変えた猫モデルを10体分,重ね合わせなくてはならないのだ。1体の猫を表現するために,10体分の猫を描画しろというのでは,処理負荷が高すぎて現実的な手法とはいえまい。

猫のワイヤーフレームモデル。ワイヤーがやけに太く見えるかもしれないが,これはTransform Feedbackを使って拡大率を変えたモデルを重ねて描画しているためだ
画像集#020のサムネイル/[SIGGRAPH 2014]組み込み機器向けGPUがGPGPU用途にも広がりを見せる。SIGGRAPH 一般展示セクションレポート
 そこで,Soft Kittyデモでは,ベースとなる猫モデル1体をアニメーションさせたら,そのモデルをTransform Feedbackを使ってGPU側のメモリに書き出して頂点パイプラインに戻し,これを拡大率を変えて断面図テクスチャを適用しながら10回描画するというアプローチを採用した。
 10回描画することに変わりはないのだが,モデルをアニメーションさせる処理は1回で済む。さらに,GPU内で処理がループするので,CPUがGPUに描画コマンドを10回分送る,というプロセスも不要となり,オーバーヘッドも軽減できる利点もあるそうだ。
 この辺りは,動画の後半に出てくる猫のワイヤーフレーム表示を見ると理解しやすいかもしれないので,ぜひ見てほしい。

Exhibition|SIGGRAPH 2014

SIGGRAPH 2014 公式Webサイト


  • 関連タイトル:

    Snapdragon

  • 関連タイトル:

    PowerVR

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:12月25日〜12月26日