3 次元画像コンファレンス 2010 講演論文集, pp.141–144(2010.7.9)

GPU を用いたポリゴン法計算機合成ホログラムの計算
Computation of Polygon-based CGH by Using GPU
寺口功
Isao Teraguchi

松島恭治
Kyoji Matsushima

関西大学 システム理工学部 電気電子情報工学科
Department of Electrical and Electronic Engineering，Faculty of Engineering Science
Kansai University
ABSTRACTThe polygon method，proposed for computing the object field of surface-modeled objects，is implemented in GPU for
the final purpose of real-time computation in electro-holography．Measurements of the computation time verify thatGPU can accelerate the computation in cases that large polygons are computed in large number of pixels．However，insome cases，many small polygons for example，GPU is not effective in the polygon method．

Keywords: CGH，GPU，GPGPU，ホログラフィ，ポリゴン法
1.

はじめに

2.

ポリゴン法の GPU への実装

CGH の物体光波数値合成に GPU を用いた研究

本研究ではグラフィックボードに GeForce GTX 295は既に多く報告されている．それらは全て数値合成を使用した．GTX 295 は NVIDIA 社製 GeForce GTX

手法に点光源法を用いており，GPU による計算が大275 チップのクロックを落とした GPU コアを二基搭載

きな効果を発揮することが報告されている[1]．しかし，している．また，GTX 295 の一つの GPU コアにつき点光源法で表面モデルの物体をレンダリングした場

240 個のストリームプロセッサ(SP)を搭載し，SP のクロ合，莫大な数の点光源が必要であることから，高精細，ック周波数は 1242 MHz である．

大規模なリアルタイム CGH の生成は困難であると思

2.1 物体光波全体の計算われる．

GPU に実装したポリゴン法により物体光波を計算

一方，ポリゴン法[2]では，物体光波をポリゴン単位する手順を Fig.1 に示す．一般に，GPU は CPU に比で計算するため，表面モデルでは点光源法に比べべて高い演算性能を持つ．これは SIMD と呼ばれるて計算量が少なく，それを利用して超高解像度のCGH 作成も報告されている[3]．そこで，本研究ではCPU
Vertex coordinates

GPUTransfer

ポリゴン法を用いた物体光波数値合成を GPU に実Computation ofpolygon field

装し，ポリゴン法でも GPU が効果を発揮するかどうかを調べた．
False
Acknowledge

寺口 功
teraguchi@laser.ee.kansai-u.ac.jp
関西大学システム理工学部電気電子情報工学科〒556-8680 大阪府吹田市山手町 3-3-35
TEL 06-6368-1121(内線 5722)

Complete?
True

ObjectfieldTransfer

Fig.1 Procedure for computing object fields by using GPU.

1. Painting polygon shape
2. Multiplication of diffuser
3.

FFT

4.

Spectral re-mapping

5. Translational propagation
6.

(a)

(b)

(c)

Inverse FFT

7. Addition to frame buffer
Fig.2 Procedure for computing a polygon field by using GPU.

1 命令で複数のデータを扱う並列動作が可能な構造による．また，GPU は CPU に比べてメモリのバンド幅(d)(e)る．GPU と CPU 間のデータ転送は GPU のメモリバン

Fig.3 Examples of computation processes using GPU ;(a) amplitude and (b) phase images of a surface function,(c) spectrum of the surface function, (d) re-mapped
spectrum with bilinear interpolation, and (e) resultant
polygon field.

ド幅や演算速度に比べて非常に遅い．そのため，作成する(処理 2)．表面関数の位相像の例を(b)に示

GPU と CPU 間のデータ転送を何度も行うと非常に効す．作成した表面関数に対して FFT 演算を行う事で率が悪くなってしまう．そこで，GPU の演算性能を生そのスペクトル(c)を得る（処理 3）が圧倒的に広い．しかし，GPU を GPGPU として利用する場合，GPU と CPU 間のバス幅の狭さが問題となかすため，我々は Fig.1 に示すようにポリゴンの頂点このスペクトルに対し回転変換[4]とキャリアシフトを座標データのみを GPU に転送している．GPU では転あわせたスペクトル再マッピング処理を行う事で，ホロ送された頂点座標に基づいてポリゴン光波を計算し，グラムに平行なスペクトル(d)が得られる(処理 4)．ここGPU 内のメモリに保持されたフレームバッファにそれで再マッピング処理においてスペクトルのサンプリンを加算している．頂点データを転送するたびにこのグ格子が歪むため，再マッピング後のスペクトルを求処理を行い，最後に全ポリゴンからの物体光波デーめるためには，補間処理が必要である．CPU によるタ全体を一度だけ CPU 側に転送する事で CPU-GPUポリゴン法の実装では，この補間処理に計算時間の間のデータ転送を極力少なくした実装を行った．

大きな割合を消費する．一方，GPU ではバイリニア補

2.2 各ポリゴン光波の計算間がハードウェアとしてテクスチャユニットに実装され一つ一つのポリゴンの光波を計算する手順を Fig.2ている．そのため，本研究では GPU のテクスチャメモに示す．まずはじめに，傾いたポリゴンの表面関数をリに再マッピング前のスペクトルを転送し，GPU のハ作成するために，GPU のメモリ上に複素フレームバッードウェアでバイリニア補間を行う事で計算時間の短ファ（以下，傾斜フレームバッファ）を用意する．CPU

縮を行っている．

側から渡された座標データから，Fig.3(a)に示すよう再マッピング後のスペクトルは平行フレームバッフに，この傾斜フレームバッファの実部にポリゴンを描画する(Fig.2 処理１)．なお，本研究ではフラットシェーディングを用いているのでポリゴン内部の振幅値は一定である．
次に，傾斜フレームバッファに拡散位相と呼ばれる光波を拡散させるための位相を乗算して表面関数をTable 1 Environments used for measurements of computation
time.

CPUMemory
Graphic board
OSCUDAIntel Core i7 920 (2.66 GHz)
PC3-12800 2 GB × 3 (6 GB)
NVIDIA GeForce GTX 295
Windows7 professional x64
Version 3.0Table 2 Parameters used for computation.

Hologram
Pixel pitch
Number of pixels

Reconstruction wavelength

10 µm × 10 µm
1024 × 1024
2048 × 2048
4096 × 4096
632.8 nmObject name
Number of polygons
RadiusSphere112 (visible:56)
8.2 mm (1024×1024)
16.4 mm (2048×2048)
32.8 mm (4096×4096)

Object name
Number of polygons
Length of a sideCube
12 (visible:6)
8.2 mm (1024×1024)
16.4 mm (2048×2048)
32.8 mm (4096×4096)

(a)

(b)

Fig.4 Object models of a cube (a) and sphere (b).

ァと呼ぶ複素フレームバッファに格納している．この段階でホログラムと平行な平面上でポリゴン光波のスペクトルが得られているが，平面の奥行き位置がポリゴン毎に異なるため，この平行フレームバッファ上で

(a)

(b)

Fig.5 Amplitude images of object fields of a cube (a) andsphere (b).

短距離の並進回折伝搬処理を行い（処理 5），逆フータを Table 2 に示す．ホログラムのサイズとしてはーリエ変換（処理 6）を行う事で，ポリゴン光波のデー

1K1K，2K2K，4K4K の計 3 パターンを計測した．一タ(e)が得られる．これを物体光波全体のフレームバッ

方，物体モデルとしては Fig.4 に示す 112 ポリゴンのファに加算する．

球と 12 ポリゴンの立方体を使用した．背面カリング処

3.

理を行っているため実際に計算するポリゴン数はこれ

計算速度の測定条件
GPU に実装したポリゴン法と CPU によるポリゴン法らの半分となる．なお，物体のサイズは，Table 1 に示との計算速度の比較を行った．測定に用いた環境をすとおり，ホログラムサイズに比例して変えている．

Table 1 に示す．比較用の CPU には Intel i7 920 を用

4.

実装結果と計算速度の測定結果

い，Hyper-threading 機能をオフにして 4 コアのみを使GPU で計算した物体光波の振幅分布を Fig.5 に示用した．一方，GPU の方は GTX 295 の 1 コアを用いす．これより，GPU を用いても物体光波の計算が正した場合と 2 コアを用いた場合をそれぞれ計測した．

109.25

CPU の側の実装には我々が開発した波動光学計算ライブラリ WaveField を用いている．WaveField に組ジの演算速度は，2048 × 2048 の 2 次元 FFT で約 40ms (4 コア使用時)であり，PC 用の FFT として最速の部類に入るものである．一方，GPU 側の実装にはCUDA 3.0 を用い，FFT パッケージとしては，CUDA開発環境に付属の CUFFT を用いた．なお，CPU のComputation time [sec]

み込まれた Intel Math Kernel library の FFT パッケー

86CPU

42.222実装では各コアがそれぞれ１つのポリゴンを処理する疎粒度並列化を行っている．
速度計測に用いたホログラムおよび物体のパラメ

0.54
0GPU
1core

GPU
2core

0.29 0.32

CPUGPU GPU
1core 2core

1.09 0.97

0.44 0.44

GPU
1core

CPU1024×1024

2048×2048

GPU
2core

4096×4096

Fig.6 Computation time measured in the cube object.

Computation time [sec]8

Initialize GPU

7.44

7.Addition to frame
buffer
5.Translational
Propagation64

1 + 2 Painting
polygon shape &diffuser
4.Spectral remapping

CPU

2.42
20.31
0CPU

GPU
1core

1.67

1.52 1.55

1.08
0.76
GPU
2core

1024×1024

1.01

CPUGPU
1core GPU
2core

GPU
1core

FFT × 2(3,6)

Transfer device tohostGPU
2core

Fig.8 Itemized computation time in GPUに比べて最大約 1.5 倍程度高速になる事がわかっ
2048×2048

4096×4096

た．

Fig.7 Computation time measured in the sphere object.

GPU における計算時間の内訳を Fig.8 に示す．こく行われている事がわかる．立方体モデルにおけるれより，GPU における計算処理の殆どを FFT が占め計算時間の比較を Fig.6 に，また球モデルにおけるている事がわかる．従って，FFT を高速に処理出来る比較を Fig.7 に示す．と言われる次世代 GPU や，より高速な FFT ライブラリ

立方体モデルでは，2048 × 2048 ピクセルの場合，GPU2 コアで 0.44 s であるのに対し，CPU では 2.22 sで約 5 倍，また 4096 × 4096 ピクセルの場合では約9.5 倍高速に処理が行えている事がわかる．

を用いれば更なる高速化が期待できる．

5.

まとめ
本研究ではポリゴン法を GPU に実装し，その効果を実測した．その結果，GPU を用いた方が殆どの場

一方，球モデルの場合では，立方体に比べ GPU合で計算時間が短くなる事がわかった．しかし，物体による計算速度の向上はあまりない事がわかった．

モデルのポリゴン数が多い場合やホログラムのピクセ

2048 × 2048 ピクセルの場合では，GPU2 コアで約 1.5ル数が少ない場合には CPU と変わらないか，CPU よ倍，4096 × 4096 ピクセルでは約 4.5 倍 CPU に比べり遅くなってしまう場合もある事がわかった．て高速であった．しかし，1024 × 1024 ピクセルの場

謝辞

合では，逆に CPU の方が GPU より約 2.5 倍高速であ

本研究は日本学術振興会の科研費(21500114)のった．
球において GPU による計算速度があまり向上しな
い理由は，立方体に比べてポリゴン数が少ないためであると考えられる．立方体のようなポリゴン数が少ないモデルの場合，モデルを構成する各ポリゴンが大きくなり，一度に処理するデータ量が増大するため，GPU はその高い演算能力を発揮する事ができる．しかし，ポリゴンサイズが小さくポリゴン数が多いと，GPU の演算能力が発揮できず，またポリゴン毎の計算を並列化できる CPU の疎粒度並列化の効果が大きくなると考えられる．そのため，少ないピクセル数で多数のポリゴンを処理する場合，GPU を用いるメリットは殆ど無い事がわかった．
なお，GPU を 2 コア使用した場合は 1 コアの場合助成を受けたものである．

参考文献[1] 三瓶，朋禄，市橋，白木，中山，杉江，高田，増田，伊藤:“GPUクラスタを用いた1800万画素電子ホログラフィシステム”，3次元画像コンファレンス 2009 講演論文集, 89(2009).
[2] K ． Matsushima: “Computer-generated holograms forthree-dimensional surface objects with shade and texture” ，Appl．Opt．44，4607 (2005).
[3] K．Matsushima，S．Nakahara: “Extremely High-Definition
Full-Parallax Computer-Generated Hologram Created by
the Polygon-Based Method” ，Appl．Opt．48，H54 (2009).
[4] K ． Matsushima: “Formulation of the Rotational
Transformation of Wave Fields and Their Application to
Digital Holography” ，Appl．Opt．47，D136 (2008).