GPGPUトレンド現状・今後の動向及びDMPにおける取り組みについて

株式会社ディジタルメディアプロフェッショナル
勝又 大満
Jan/2013© 2013 Digital Media Professionals Inc. All rights reserved.

Page 1

Outline	• DMPの取り組み• GPGPUの業界動向• DMPグラフィックス・コンピューティング アーキテクチャ© 2013 Digital Media Professionals Inc. All rights reserved.

Page 2DMP グラフィックス・コンピューティングIPソリューション

フォトリアリスティック
3DグラフィックスIPコア（OpenGL ES 1.1 互換 + 独自拡張）

PICA200	

標準3DグラフィックスIPコア

PICA200Lite (OpenGL ES 1.1 )SMAPH-S (OpenGL ES 3.0 )OpenVG 1.1対応
ベクターグラフィックスIPコア

SMAPH-F	

最大128SPコア	

標準VG,3DグラフィックスIPコア

SMAPH-H (OpenGL ES 1.1, OpenVG1.1 )SMAPH-H2 (OpenGL ES 3.0, OpenVG1.1 )© 2013 Digital Media Professionals Inc. All rights reserved.

Page 3

Case study - PICA200	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 4

Case study: PICA200開発で目指したもの	
 低消費電力 + 高機能・高性能を両立するグラフィックス・アーキテクチャの開発– ユーザーニーズに適合した独自表現方法(Configurable shader)	
– 実装アルゴリズム最適化による、低消費電力ハードウェア	
– 少ないデータ量、バス帯域、コンテンツサイズで豊かなCG表現を実現	
– スケーラブルなアーキテクチャー（ローエンドからハイエンドまで対応可能）	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 5

本発表におけるPICA200のContribution	 頂点、ジオメトリシェーダにおけるメモリトラフィック、演算最適化

 コンフィギュラブルなフラグメントシェーダ

上記技術を組み込みシステムで実装可能にした© 2013 Digital Media Professionals Inc. All rights reserved.

Page 6

Mikage scene example BASE
 Environment

cube map Planarreflection
 Pixel lighting Bump mapping

DEMO Proceduraltexture
 Polygonsubdivision
 Shadow© 2013 Digital Media Professionals Inc. All rights reserved.

Page 7

PICA200アーキテクチャ	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 8

PICA200 - 設計目標	
 組込みシステムで高品位なグラフィックスを提供したい– 3Dグラフィックスアルゴリズムの共通項をモデリングを行
いこのモデルを実現するハードウェアアクセラレータを導入– ジオメトリシェーダなどによるメモリバンド幅の削減の仕掛けを導入
この結果– 低消費電力、高性能、高品質な3Dグラフィックスハードウ
ェアを実現© 2013 Digital Media Professionals Inc. All rights reserved.

Page 9

PICA200アーキテクチャ	 High Performance Graphics

2011で発表した内容＋αについて今回説明– Max Kazakov, Eisaku Ohbuchi:
Primitive Processing andAdvanced Shading Architecture
for Embedded Space. High
Performance Graphics 2011:
169-176© 2013 Digital Media Professionals Inc. All rights reserved.

Page 10

PICA200アーキテクチャ	 プログラマブルなジオメトリ処理と固定処理のフラグメントシェーダを搭載
 OpenGL ES 1.1パイプラインを拡張して実装– プリミティブエンジン：頂点シェーダを拡張– プロシージャルテクスチャ：専用テクスチャサンプラとして拡張– 固定フラグメントシェーダ» フラグメントごとに補間されたベクトル情報、バンプ・タンジェント・シャド・テクスチャマップを入力しシェーディング処理を実施
Transform& Lighting
VPs	

Post-TnL
vertexcache	

PrimitiveEngine	Color sum	

Fog	

Rasterizer	

Texturesampling(Proceduraltexture)

Alpha/
Depth/
Stenciltests	

© 2013 Digital Media Professionals Inc. All rights reserved.

Colorbuffer
blend	

Perfragment
shading	Framebuffer	
Page 11

PICA200アーキテクチャ	
ジオメトリエンジン	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 12

ジオメトリシェーダの実装：サブディビジョン例	少ないポリゴンのデータをプロセッサ内でハイポリゴン化する
独自プリミティブジェネレーションアーキテクチャで実現	
オリジナルデータ（40三角形ポリゴン）	

入力データ量：約1 / 16

適用的細分割 （６４０三角形ポリゴン）	

少ないポリゴン入力数でハイクオリ
ティな3D描画を実現	

ソフトシャドウ実現のため、シルエットレンダリングにも本技術を使用	
© 2013 Digital Media Professionals Inc. All rights reserved.

Page 13

ジオメトリエンジン	
 Shader Model 3.0レベルの頂点シェーダ
 プリミティブエンジン+2次頂点キャッシュ（SVC）によるジオメトリシェーダ機能を実現

Vertex
Vertex
VertexshaderVertexshader		shader	shader	Commandinterface	Cache
controller	

Secondaryvertex
cache(SVC)	

– プリミティブエンジンは頂点シェーダにプログラマブルなプリミティブ出力を追加したモジュール 固定、可変長サイズのジオメトリプリミティブの扱いが可能– 扱えるプリミティブ最大サイズは、SVCのサイズで規定

SoC
memorysubsystem	

PrimitiveEngine	

Rasterizer	© 2013 Digital Media Professionals Inc. All rights reserved.

Page 14

ジオメトリエンジン（cont’d）	
 ジオメトリシェーダ向けジオメトリ情報の入力はすべてSVCから入力することで、テクスチャアクセスを削減
 SVCにより演算済み頂点データを再利用

Vertex
Vertex
VertexshaderVertexshader		shader	shader	Commandinterface	Cache
controller	

Secondaryvertexcache(SVC)	

– 頂点バッファのトラフィックを削減– 複数頂点プリミティブや複雑なジオメトリ処理アルゴリズ
ム向けに活用 内部頂点アトリビュートのトラフィックも削減可能– 少ない初期プリミティブ頂点入力からフルセットのアトリビュート生成 回路サイズを最適化

SoC
memorysubsystem	

PrimitiveEngine	– 頂点シェーダをプリミティブエンジンに転用可能– SVCの回路変更を最小化

Rasterizer	© 2013 Digital Media Professionals Inc. All rights reserved.

Page 15

可変サイズのプリミティブサポート	 インデックスバッファ上の頭にプリミティブサイズを格納
 ジオメトリシェーダ向けに可変長プリミティブサイズの扱いが可能
 サブディビジョン実装例– 可変パッチサイズシーケンスのサポート– 1つのシェーダですべてのパッチ向けの記述をサポート– 頂点の接続情報を読み出すためのテクスチャアクセス
はなし– サブディビジョンパッチをできるだけ大きな単位かつ、シェアして定義することで、頂点キャッシュのヒット率向上が可能© 2013 Digital Media Professionals Inc. All rights reserved.

Page 16

PICA200アーキテクチャ	
フラグメントシェーダ	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 17

フラグメントライティングのアクセラレーション	 ＰＣグラフィックスの表現力を組込みグラフィックスで実現
独自最適化アルゴリズムを開発し、ハードウェア実装	

OpenGL ES 1.1 (頂点ライティング）	

フラグメント・ライティング (拡散光)フラグメントライティング（拡散光＋鏡面反射光）	

フラグメントライティング（拡散光＋鏡面反射光）＋ バンプマップ	

フラグメントライティング（拡散光＋鏡面反射光）＋ バンプマップ + キューブマップ	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 18

フラグメントシェーダ	 複数光源、バンプ・タンジェントマップ、シャドマップのサポート
 スクリーン座標系でのノーマル情報をクオータニオン形式の入力から生成© 2013 Digital Media Professionals Inc. All rights reserved.

Page 19

フラグメントシェーダ (cont’d)	
 30-35段の固定機能パイプライン
 オンチップSRAMのLookup table(LUT)へシェーディング関数を格納 フラグメントシェーダの処理時間

は固定– 1-4サイクル/フラグメント/光源 （コンフィギュレーションごとに定義される）– これにより性能の予測可能性を実現© 2013 Digital Media Professionals Inc. All rights reserved.

Page 20

フラグメントシェーダ性能	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 21

プロシージャルテクスチャ
 テクスチャバッファを使わずにIP内部の回路にてテクスチャパターンを動的に生成する技術
コンテンツサイズ削減・性能改善
Target texture：256x256 (RGBA 8888) case	
モード
通常のテクスチャ
プロシージャルテクスチャ

入力テクスチャサイズ
256 Kbyte	
3Kbyte	

入力テクスチャパターンのサイズを1 / 85 に削減

Texture synthesis examples

パターン生成例© 2013 Digital Media Professionals Inc. All rights reserved.

Page 22

Case study: PICA200開発で目指したもの	
 低消費電力 + 高機能・高性能を両立するグラフィックス・アーキテクチャの開発– 3Dの世界ではシェーディング手段として、ある程度決まった手段がよく使われるため、シェーダのアルゴリズムの共通項を抜き出してハードウェア化したのがPICA200。	
– 多くの場合，消費電力の点でハードウェア化はきわめて有利になる。	
– その点に着目し、共通処理は専用HWを用いることで高速化、低消費電力を行った。	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 23

GPGPUの業界動向	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 24

GPGPUに関わる主な規格	
Standard	

Owner	

概要	OpenCL	

Khronos	

包括的なGPGPU向けAPI、言語環境	

WebCL

Khronos	

OpenCLのJavascriptバインディング

CUDA	

NVIDIA	NVIDIAのハードウェアに特化したGPGPU環境	

Aparapi	AMD	Java+GPU向け環境
BytecodeをOpenCL,CPUにマッピング可能

HSA	

HSA
foundation	

AMDが中心となり提唱されているAPU向けヘテロジニアスシステム
アーキテクチャ	

Renderscript
ComputeGoogle	Android上のCompute拡張.

Direct ComputeMicrosoft	

Computing版DirectX. Windowsのみで動作

C++ AMP	

Microsoft	DirectCompute上で動作
GPU向けC++の言語拡張	

OpenGL4.3	

Khronos	Compute shader機能の追加	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 25

最後に	© 2013 Digital Media Professionals Inc. All rights reserved.

Page 26

まとめ	 W/Wで見た場合、GPU + CPU = APUの流れは、モバイル、デスクトップの両方で次のトレンドとしてとらえられている
 同時にAPU環境を生かしたアプリケーションに関わる活動も活発– KhronosのVision WG– Stanford, NokiaのFcam(http://fcam.garage.maemo.org)– NVIDIAのOpenCV CUDAサポート– SIGGRAPH2012で発表のあった”Decoupling algorithms from schedules foreasy optimization of image processing pipelines”のHalide言語と、気がついたらモバイル分野ではComputer Vision系が多数。
 CPUコアは、PPC,MIPS,ARM程度、GPUコアもヨーロッパ、アメリカがメインで、アジアにはメジャーなコアが少ない。
© 2013 Digital Media Professionals Inc. All rights reserved.

Page 27

Thank you!	

© 2013 Digital Media Professionals Inc. All rights reserved.

Page 28