Cell Broadband Engineを利用したホログラム計算(後編)

柘植 宗範,伊藤 智義

tag: 組み込み

技術解説 2008年1月31日

● どれだけ高速化するかを試算するのは難しい

 実際の処理は,図3の手順を踏んでいます.

zu04_01.gif
図3 全体の処理
今回作成したプログラムでは,各SPEに計算機合成ホログラムの計算式を実装し,PPE側ではファイルやデータの管理を行っている.

 今回作成したプログラムでは,各SPEに計算機合成ホログラムの計算式を実装し,PPE側ではファイルやデータの管理を行っています.計算機合成ホログラムの計算において,ホログラム上の各座標の計算は,前述のとおりほかの座標の計算と互いに独立なので,計算の並列化が可能です.各SPEにおける並列化の方法としては,計算領域であるホログラムの大きさ(座標)を分割する手法をとることにしました.これにより,SPE起動時に必要なデータを与えてやれば,各SPE間で同期をとる必要がなく,最も効率的に並列処理を行えます.

物体点数 CPU CBE(6個のSPEで並列計算)
64 3.354秒 0.1583秒
128 6.919秒 0.2999秒
256 13.118秒 0.5842秒
512 25.967秒 1.1524秒
表1 計算機合成ホログラムの計算結果

 表1は計算機合成ホログラムの計算結果です.物体点数の項は計算負荷と置き換えてみてください.開発には,以下のハードウェアを利用しました.

  • パソコン
    CPU:Athlon XP2800+(動作周波数は2.083GHz)
    メイン・メモリ:DDR SDRAM(1Gバイト)
  • PLAYSTATION3
    CPU:CBE(動作周波数は3.2GHz,稼働SPEは6個)
    メイン・メモリ:XDR RAM(256Mバイト)

 物体点数が64の場合の処理時間の比は約21倍で,動作周波数の違いなどを勘案しても,CBEの方がかなり速くなっています.ただ,正直に言って,実際にシングル・コアのプログラムを移植してどれだけの高速化が図れるかを試算するのは非常に難しい問題です.

 完全に並列化が可能な部分については,「(利用するSPEの数)×(SIMD演算による並列数)」倍の高速化が見込めますが(今回は6個のSPE×float演算の4データ=24倍),データ転送やデータの依存関係などを考慮しなければなりません.さらにSPEは汎用プロセッサより比較的簡単な構造であり,条件分岐などの処理は苦手としています.プログラムをより高速化したい場合は,その辺りを踏まえたプログラミングを考える必要があるかもしれません.

 CBEの公開情報については,SDKに付いてくるドキュメントや,ソニー・コンピュータエンタテインメントのCBE技術情報公開用Webサイトから入手できます.プログラミングの手法やコツ,技術情報のサイト集などについてはフィックスターズのWebサイトに紹介されています.筆者もいろいろとお世話になりました.興味のある方は,これらを参考にしてみてください.

参考・引用*文献 (1)東芝;Cellからの始まり,東芝レビュー,2006年6月号,2006年(http://www.toshiba.co.jp/tech/review/2006/06/index_j.htm).
(2)東芝;Cell Broadband Engineアーキテクチャ Version1.0,2006年.
(3)東芝;SPU C/C++ 言語拡張 Version2.1,2006年.
(4)IBM;Cell Broadband Engine Programming Tutorial,2006.
(5)IBM;Cell Broadband Engine SDK Libraries Overview and Users Guiide Version1.1,2006.
(6)IBM;IBM Full-System Simulator User's Guide Version2.1,2007.


つげ・むねのり,いとう・ともよし
千葉大学大学院 工学研究科 人工システム科学専攻電気電子系コース

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日