GPU by pengtt

VIEWS: 120 PAGES: 32

									GPU




      1
GPU とコンピュータシステム

 高スループットのローカルメモリ




                    2
GPU の構成




          3
GPU の構成

CPU からコマンドやテクスチャ、頂点
 データが送られる。
Vertex 処理(ポリゴン変形、座標変換)
クリッピング、ラスター化
Texture マッピング(ライティング)
Z-buffer 処理、ブレンド


                          4
Vertex processor




                   5
Vertex processor の役割

頂点計算
     座標変換 3D から 2D (画面視点から見た四角錐)へ
     ポリゴン変形、分割


以前は固定的な(ワイヤドロジックの)演算器
  が一般的であった。
     ポリゴンの変形等を行うため、プログラマブルに
ポリゴン毎の処理は全て並列に実行可能


                                     6
Clipping rasterizing

 クリッピング
      画面の外に出るオブジェクトを排除(以後
       の処理をしない)
 ラスター化
      ポリゴンを画面に投影し、ピクセルに分割
      ブロック毎に Z-cull(Z-buffer の一種) を用
       いて深さを比較
      他のオブジェクトより前に有れば描画プロ
       セスへ


                                        7
Z-buffer algorithm




                     8
Fragment processor (pixel shader)




                                    9
SIMD 演算可能




 SIMD 演算     Shader ごとに異なる
 24,8 bit    分割も可能
 16,16 bit

                             10
Fragment processor の並列性




                          11
pixel shader の役割

テクスチャーマッピング
     圧縮されたテクスチャーの展開
     テクスチャー変形、補間(trilinear filter)
     変色、重ね合わせ
ライティング
映り込み
フォグ(霧)処理

 1 命令で多数のピクセルを処理

                                      12
Texture Mapping




                  13
   テクスチャーサンプリング




Texture with no filter

                    Texture with mip-mapping



                                    Texture with mip-mapping and trilinear filter14
ライティング




         15
fogging

 霧、煙、水等半透明のオブジェクトを
  重ね描きする。

 現在のテクスチャ上に加算処理




                      16
Z-compare & blend

  Z-buffer を利用して最終的な可視不可
  視を判定
 描画
  alpha blending(半透明処理)
      ガラス、水面等
 anti-ariasing



                            17
Memory Interface

 できるだけ高スループットに
     ~ 512 bit DDR
  メモリの役割
     texture
     Z-buffer
     frame buffer
 容量が大きく、かつローカル性の有る
  texture にはキャッシュが有効
 組み込み (embedded) メモリが有効
     解像度の低いゲーム機では frame buffer, z-buffer
      を内蔵
                                            18
汎用プロセッサとして見た
GPU




for Graphics Applications   for Non-Graphics Applications



                                                        19
Historical trends




                    20
GPU とは

ポリゴンレンダリングの並列性を生か
 して高速化したプロセッサ
ポリゴンレンダリング処理にそってパ
 イプラインが構成されている
高スループットメモリ
徐々にプログラマブルな部分が増やさ
 れてきている


                     21
最新 GPU の傾向 GeForce 8800(G80)

 Unified-Shader型アーキテクチャ
 DirectX 10(Direct3D 10) Shader Model 4.0準
  拠
 128ストリームプロセッサ
      vertex, pixel shader
 96 ROP
      compare z-buffer, blend
 384bitメモリインターフェイス
 90 nm, ≒500 mm2

                                              22
23
GeForce 8800(G80) の構成




                        24
Independent-Shader から
Unified-Shader へ
  Independent-Shader
      頂点計算とテクスチャ・光源計算を専用の
       演算器が受け持つ。
  Unified-Shader
      殆どを汎用演算器で処理する。
        z-buffer 等メモリに直結するところは専用演算
        器




                                      25
なぜ Unified-Shader へ移行する
か?

  レンダリング処理の複雑化
      より多くの光源、より多くのテクスチャ
      ポリゴンの変形、分割
 DirextX 10
      API が汎用的な shader を要求


 汎用計算への応用

                              26
汎用計算への応用(GPGPU)

 物理演算
    主にゲーム中でオブジェクトに自然な挙動をさせ
     るため。
      割れるガラス、飛び散る石等
    物理演算専用プロセッサの登場
      AGEIA PhyX

 科学技術演算への転用
    模索中
    GPU の演算器は精度が良くない
      次世代、次次世代で解決されるかも?


                              27
AGEIA
(NVIDIA に買収されました)

 PhyX
     CPU、 GPUに続く? 第三のプロセッサ
      PPU(Physics Processing Unit)
 125 M Tr
 TSMC 0.13 μm
 182 mm2



                                     28
HAVOK
(Intel に買収されました)
 HAVOK
     物理シミュレーションのためのミドルウェアの老
      舗
     多くのゲームに採用されている
 HAVOK FX
     GPU を用いた物理演算ミドルウェア
     NVIDIA と共同開発
       HAVOK FX 自体は ATI Radeon でも動作する
 Intel に買収された
     HAVOK FX は事実上の中止
     AMD(ATI) Radeon 用物理演算エンジンを開発
     Larrabee 用を開発?
                                         29
Stream Computing (ATI)

 ATI が GPU を科学技術演算へ転用
 Stanford University's Folding@home
      ATI Radeon® X1950,X1900 系列を使用
      BrookGPU を開発
 40 倍の高速化を見込む

 X1950 は Unified Shader では無い。
 次世代 GPU では更に高速になる?

                                       30
GP GPU 用プログラミング言語

 NVIDIA CUDA
 ATI Stream SDK

 Open CL
     GPU のみに対応するのでは無いが、同様
      に異種プロセッサ間の汎用プログラミング
      環境を提供



                             31
これからの GPU

 GPU は Unified Shader へ
 より多くの演算器を詰め込む
 より高いメモリスループット

しかし、描画についてはやや飽和気味

物理演算への転用
科学技術演算への転用
CPU への統合(AMD による ATI の買収)
より汎用的なプロセッサ(Larrabee 等)による
 描画?                          32

								
To top