｢Cell Speed Challenge 2008

自由課題部門｣ 2008 年 3 月 10 日

Cell を用いたクラスタシステムによる計算機合成ホログラムの高速化
荒井 大輔
千葉大学工学部電子機械工学科
Cell の大きな特徴として，PPE が 1 つと SPE が 8 つのヘテロジニアス型のマルチコア・プロセッサであることがあげられる．Cell の内部で PPE と SPE をうまく使って並列処理を行うことにより，計算処理の高速化が期待できる．特に，PC を何台も接続して分散処理させるクラスタシステ
ムで高速化できるプログラムは，Cell においても実装しやすいものと言える．また，Cell で並列処理を行うことにより高速化できるプログラムは，そのクラスタシステムにおいても高速化が期待できると考えられる．そこで，今回はソニー･コンピュータエンターテイメントより発売されているCell を搭載した PLAYSTATION3(PS3)を用いて，並列処理に適した計算機合成ホログラム(CGH:
Computer Generated Hologram)のアルゴリズムを実装し，さらに PS3 でクラスタシステムを構築し，実際の挙動や処理時間を計測，検証した．結果，Cell とクラスタ両方の並列性を利用した CGH計算システムの構築に成功し，PS3 を 5 台用いたクラスタシステムで，SPE の複数利用，SIMD 演算などの高速化手法を用いることにより CPU(Pentium4)に対して約 130 倍速い計算速度が得られた．

１

研究背景

算式によってホログラムに変換する．このホログラムをホログラフィは，究極の立体映像技術とも言われるもので，LCD(液晶ディスプレイ)などに表示して，そこに参照光を照三次元物体をそのまま記録・再生できる技術である．ホログ

射すると空中に元の三次元像が再生される．ホログラムは，ラフィをリアルタイムで処理できるようになれば究極の立体もともと光学系で作られていたが，このように計算で作成すテレビを作ることができると期待されている．このような技るものを CGH と呼ぶ．CGH を用いると，逐次データを更新

術は電子ホログラフィと呼ばれ，1990 年ごろから研究され始していくことで動画像再生も可能となる．

めている．また今年の 1 月に総務省があたかも実物が目の前

また，参照光に光の三原色を用い，それを重ね合わせるこにあるかのように見える立体映像を映し出す｢立体テレビ｣のとでカラーの三次元像の再生も可能である．図 2 にカラー化開発に民間企業と共同で乗り出す方針を明らかにした．特殊した再生像を示す．

な眼鏡などを使わなくても臨場感あふれる鮮明な映像が楽しめる技術を開発し，2025 年の家庭向け放送の開始を目指すと
図 2.カラーホログラフィ

している．

ホログラムに変換する計算式は，次に示すようなコサイzン関数値の重ね合わせである．物体点の座標を入力していく
xyとホログラム上の点の値が求まる．
図 1.電子ホログラフィの再生手順

電子ホログラフィの再生手順の例を図.1 に示す．まず，コンピュータ内に，三次元座標データを用意する．このデータ

I ( xα , yα ) =N

⎡

2π ⎛

x 2 + y 2 ⎞⎤j =1⎣⎢⎝⎠ ⎦⎥∑ A j cos ⎢⎢ λ ⎜⎜⎜ z j + αj 2 z j αj ⎟⎟⎟⎥⎥(1)

は，コンピュータグラフィックソフトや数値シミュレーショ

ここで，添え字 はホログラム上の点を， j は物体を構成ンなどさまざまな方法で得ることができる．これを専用の計する点を表わす． x ， y ， z は座標を表し， xαj = xα − x j ，

yαj = yα − y j である． A j は物体光の強度， λ は参照光の波

ステムの概観を図 3 に示す．

長， N は物体点の総数である．
ホログラムの画素数を M とすると，1 枚の CGH を作成するためには(1)式のコサイン計算を M × N 回行う必要があり，リアルタイムの動画を再生するためには毎秒 30 フレーム程度のビデオレートが要求される．そのための計算量が膨大であり，CGH を用いた電子ホログラフィによる三次元テレビの実用化には今後 10〜20 年を要するともいわれている．

図 3.PS3 クラスタシステム

ただし，CGH の計算は，ホログラム上の各点で独立に行うことができるという特徴を持っている．そのため，SIMD 演

2.2

PPE プログラム(MPI の実装)

算を用いた並列計算，計算領域を分割した並列処理に向いてPPE では，まず MPI を用いて，全ノード数と自ノードのおり，Cell を用いたクラスタシステムで高速化ができると考識別番号を取得する．1 台が物体点データをメモリ上に読みえられる．そこで，本研究では CGH 計算を Cell のクラスタ込み，他のノードへ転送する．各ノードで物体点データをシステムに実装し，有効性を検証した．

DMA 転送に適した形に加工する．
さらに，各 SPE に渡す情報(物体点のデータや計算結果の２システムの概要

今回構築したシステムと CGH 計算の流れを以下に示す．

格納場所のアドレス，担当する計算領域や各種パラメータなどの情報)を編集して，これも DMA 転送用に加工する．
そして，SPE を起動して CGH 計算を行い，その計算結果

2.1

全体の流れ

今回構築したシステムでは，各ノードの PPE でファイルやを一つのノード上に集める．
最後に表示媒体や，記録媒体に出力する．

データの管理，他ノードとの通信を行い，SPE で CGH 計算の計算式を実装している．

2.3

SPE プログラム

CGH の計算においては，ホログラム上の各点の計算結果はSPE では，PPE で加工されたデータや情報を自身のローカ他の座標の計算結果と互いに独立であるので，計算の並列化

ルストアに DMA 転送し，そのデータをもとに CGH 計算をが可能である．そこで，並列化の方法としては，計算領域で行う．

あるホログラム上の点数を分割する手法をとった．

高速化の手法として，コサイン演算を 1 周期 256 階調の配まず，CGH の領域を分割し各ノードに割り当てる．次に，列としてとらえ，その値を先に計算しておき，実際のコサイサーバとなる一つの PS3 で物体点データを読み出し，その他ン演算ではその配列を参照する方法や，データを float 型のベの PS3 に MPI( Massage Passing Interface)を用いて転送すクトルとしてとらえることで 4 つのデータを同時に取り扱う

る．ここでは通信の並列化も行われ，できるだけ通信時間にSIMD 化，計算と DMA 転送の並列化などを行った．

よる遅延を無くすよう工夫している．
次に，各 PS3 では割り当てられた計算領域をさらに分割し，SPE に割り当て，それぞれの SPE で CGH を計算して求める．
その後，メモリに結果を集める．

2.4

システムの特徴

CGH 計算は，物体点の座標，ホログラムを表示する LCDなどの電子表示デバイスのサイズや画素間隔，参照光として最後に，MPI を用いて各ノードから一つの PS3 に計算結果使用する光の波長などの共通のパラメータと，計算するホロを集めて 1 枚の CGH が完成する．クラスタでの並列処理とグラム面の座標によって行う．そのため，はじめに各ノード，Cell 内での並列処理，二重の並列化を行っている．

各 SPE に共通のパラメータを与えておけば，その後は再送信

今回は，PS3 を 5 台，各 PS3 内部の Cell で SPE を 6 つ使する必要がなく，計算領域を割り振るだけでよい．

用した．本来 Cell には 8 つの SPE が搭載されているが，PS3また，クラスタシステムを構築するにあたり，通常は通信では使用できる最大数が 6 つとなっている．PS3 クラスタシ時間などの遅延も生じる．しかし，Cell においては PPE で通信，SPE で演算と完全に分離し，SPE で計算している間にデ

表 2 より，物体点数が 11646 点の場合，1 枚の CGH を生ータを転送することで，通信時間の隠蔽も可能である．

成するのに PC では約 11 分かかっていたのが，PS3 単体では3 結果と考察

約 25 秒．PS3 を 5 台用いたクラスタシステムでは約 5 秒でシングルコアの CPU を搭載した PC と Cell を搭載した生成することに成功した．PS3 単体で PC に対して約 26 倍，PS3 において同様の CGH 計算を行った計算時間を比較する．

PS3 を 5 台用いたクラスタシステムでは PC に対して約 130各場合の動作環境を表 1 に示す．

倍高速化されている．
また，クラスタに用いた PS3 のノード数で見てみると，
PS3

表 1.動作環境の比較

単体に対して 2 台で 1.99 倍，3 台で 2.97 倍，4 台で 3.94 倍，

環境

PC

PS3

プロセッサ

Pentium4

Cell Broadband Engine

動作周波数

3.2GHzPPU SPU ともに5 台で 4.89 倍高速化されている．
図 4 に PC に対する高速化比と物体点数，ノード数のグラフを示す．

3.2GHzDDR SDRAM
メモリ

PCに対する高速化

XDR RAM256MB

OS

Linux (Fedora 7)

Linux (Fedora 7)

コンパイラ

gcc 4.1.2

gcc 4.1.2

PS3 においては，開発環境として Cell SDK3.0 を用いてい高速化比1.5GBる．また，クラスタシステム構築の際に MPI を用いるために

1401201008060
40200

ノード数1
ノード数2
ノード数3ノード数4ノード数50

MPICH2 を導入した．

2000

400060008000

10000 12000

物体点数

PC，PS3 両方で，コンパイル時には O3 オプションを用い
図 4.PC に対する高速化て最適化している．

図 4 から，物体点数が多くなるほど高速化できていること

3.1がわかる．これは，計算時間に対して通信時間の占める割合

CGH 計算時間の比較

Cell のクラスタシステムと PC で CGH 作成にかかった時が非常に小さくなっているためである．

間を表 2 に示す．ここで計測したのは，サーバで物体点デー

また，今回のシステムでの通信時間は物体点データを各ノタを処理した後，各ノードにデータを転送する前から，各ノードに送るときと，計算結果を一つのノードに集めるときのードから一つのノードにデータを集めるまでにかかる時間で2 回だけである．図 5 に物体点データを各ノードに送るときある．また，CGH 計算を行うホログラムのサイズを 1920×にかかる時間のグラフを示す．

1080 ピクセル(これは再生実験に用いた LCD のサイズであノードへの物体点データ転送にかかった時間のグラフる)とし，物体点数は 11646 点(3.2 章で示す再生実験用に作成

表 2.PC と PS3 クラスタシステムでの処理時間(秒)PS3 のノード数PC
物体点数12345128

0.30

0.20

0.18

0.16

0.16

6.98

512

1.12

0.61

0.45

0.36

0.32

27.85

2048

4.41

2.25

1.54

1.18

0.98

109.82

8192

17.55

8.82

5.92

4.48

3.62

455.94

11646

24.95

12.52

8.40

6.33

5.10

666.07時間[s]した三次元像の物体点数)とした．

0.035
0.030
0.025
0.020
0.015
0.010
0.005
0.000

物体点数128
物体点数512
物体点数2048
物体点数8192
物体点数11646
0246

ノード数

図 5.物体点データ転送時間
図 5 からわかるように，ノード数 3 と 4 では通信時間が変わらない．これは，ノード数が 2 の累乗間では通信の並列化により効率的に送れるためである．
図 6 に計算結果を一つのノードに集めるのにかかる時間の4 まとめと今後の展望

グラフを示す．

PS3 単体で PC に対して約 26 倍高速化することができた．

時間[s]計算結果を一つのノードに集める時間

これは，Cell において 6 つの SPE の使用，SIMD 演算など0.07
0.06
0.05
0.04
0.03
0.02
0.010.00の高速化手法を用いたためであると考えられる．
物体点数128
物体点数512
物体点数2048
物体点数8192
物体点数11646
平均値
0246

また，PS3 を 5 台用いたクラスタシステムでは PC に対して約 130 倍高速化することに成功した．
Cell に適したプログラムは，クラスタシステムにも非常に親和性が良いと言える．

ノード数

今回構築したシステムでは，最後に計算結果を一つのノー
図 6.計算結果を一つのノードに集める時間ドに集めて表示させていたが，それぞれのノードから直接表計算結果を一つのノードに集める時間は、作成するホログ示させるようなシステムを構成すれば通信時間の遅延はほぼラムのサイズとノード数に依存している．
ノード数が N 台の時には，1 台あたりから転送するデータ量は X × Y ÷ N byte

(X は画像データの横，Y は画像デー無視でき，PPE が通信，SPE が演算と完全に分離できるので，純粋にノード数に比例して高速化することも可能であると考えられる．

タの縦のピクセルサイズ)となる．そして，サーバとなるノー立体テレビを実現するためには，CGH をビデオレートドからの転送は行われないので，システム全体としての画像(30fps)程度で生成する必要があるため，今回のシステムをそデータの転送量は ( N − 1) ÷ N × X × Y byte となる．このこのまま適用すると，物体点数 11646 点の恐竜の動画をリアルとより、図 6 は理論値にほぼ等しいものといえる。

タイムで動かすためには PS3 を 800 台程度用いる必要がある．
実際には，さらなる最適化と開発環境の充実によって Cell

3.2

ホログラフィ再生の性能をより引き出すことが可能になると考えられる．

Cell のクラスタシステムを用いて計算した CGH を，実際Cell を用いたクラスタシステムでは，今回実装した CGHに 1920×1080 ピクセルの LCD を用いて再生した結果を図 7の計算や，各種の解析システムなど膨大な計算量で並列処理に示す．

可能なものに応用することにより高速化が期待できる．
特に既にクラスタシステムが構成されているものに関しては，より一層の高速化が可能であると言える．

参考文献
[1]

株式会社ソニー・コンピュータエンタテインメント：“Cell Broadband Engine™ アーキテクチャ

version 1.01”[2] 株式会社ソニー・コンピュータエンタテインメント：“ Cell Broadband Engine™アーキテクチャ用 C/C++ 言語
version 2.3”

拡張
図 7.物体点数 11646 点の再生像
図 7 は物体点数が 11646 点で構成された恐竜の再生像であ[3] インプレスジャパン：“PLAYSTATION3 Linux 完全ガイド”

る．参照光源に赤色レーザーを用いて，デジタルカメラで撮

[4]

共立出版

石川裕

佐藤三久

影した．

田浩

高橋俊行

著：

“Linux で並列処理をしよう”

CGH1 枚を生成するのに 5 秒程度の時間を要したが複雑な立体像に対しても，PC での計算と同じ再生像が得られ，精度のうえでも電子ホログラフィのシステムとして十分に活用できることを確認した．

[5]

培風館

P・パチェコ著

堀敦史

住元真司

秋葉博訳：

“MPI 並列プログラミング”[6] フィックスターズ PLAYSTATION®3：
http://www.fixstars.com/

原