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

柘植 宗範,伊藤 智義

tag: 組み込み

技術解説 2008年1月24日

 主に演算処理を受け持つSPEのコアが直接参照できるメモリは,自身の内部メモリであるローカル・ストアのみで,その容量は256Kバイトと,通常の外部メモリの容量と比べると非常に小さくなっています.つまり,構築するシステム・モデルによっては,SPEの演算の際に,その演算に必要なデータをすべて読み込んだ上で処理できないなどの不具合が生じる可能性があります.

 さらに,DMA転送については,ある程度プログラマがメモリ・マッピングを意識している必要があります.DMA転送の際に送信・受信先のアドレスを指定しなければならないので,ポインタなどの知識がなければ,一からプログラムを書くのは大変かもしれません.

 そのほかにも,複数あるSPEにタスクを効率良く割り振らなければ,CBEの性能を十分に引き出すことができません.これはCBEに限らず,マルチコア,マルチスレッドにおけるプログラミングに共通する問題といえるでしょう.

2.開発環境の構築

 CBEを利用したプログラムの開発には,「Cell Broad-band Engine Software Development Kit(Cell SDK,本稿執筆時点ではver. 2.1)」と呼ばれる無償の開発キットを利用します.これは,IBM社のalphaWorksのWebサイトBarcelona Supercomputing CenterのWebサイトで公開されています.このCell SDKには,以下のものが含まれています.

  • GNU Toolchain for PPU SPU(PPUおよびSPE用のC/C++コンパイラやデバッガであるGDBなど)
  • IBM XLC/C++ Compiler
  • IBM Full System Simulator for the Cell Broadband Engine「systemsim」(CBEシミュレータ)
  • SIMD math libraryやMASS library,SPE Runtime libraryなどの各種ライブラリ
  • Prototype libraries and samples package (各種サンプル・ソース)
  • IBM Eclipse IDE for Cell BE SDK (Eclipse対応の開発環境)
  • SPU Timing tool(SPU用の解析ツール)

 Cell SDKを利用する際には,以下のようにかなり性能の高いコンピュータが必要とされています.

  • x86マシン:Pentium 4,2GHz以上
  • PowerPCマシン:64ビットPowerPC,1.42GHz以上
  • 5Gバイト以上のハード・ディスク
  • 1Gバイト以上のメイン・メモリ

 ただしこれは,CBEシミュレータ(systemsim)を起動するための要件と思われます.CBEシミュレータを使用しない場合は,必要なパッケージのみを個別に実機またはクロス・コンパイル環境にインストールすることで,開発できます.その際のコンピュータの要件は,それほど高くなくても構わないと思います.

 CBEのプログラミングは,C言語やC++などを利用でき,従来のCPUのプログラミングとほぼ同じ感覚で行えます.つまり,適当なテキスト・エディタでプログラムを書き,専用のGCCなどを利用してコンパイルします.ただし,CBEは2種類のCPUコアを持つので,PPEとSPEのそれぞれに使える関数群が本来のC/C++のものとやや異なります.また,ライブラリなども追加されています.

 さらに,それぞれのCPUコア用に別々のプログラムを用意する必要があります.SPEを利用する際には,PPE側のプログラムにおいてSPE側のプログラムをスレッドとして起動し,PPE側でSPEの動作を制御します.つまり,俗に言うマルチスレッド型のプログラミングが必要になります.

● 開発環境はFedora Core上で動作

 では,実際にこの開発キットを使用してみましょう.今回は,パソコン上でプログラムを開発した後,実機で実行するクロス開発環境を構築します.

 まず,開発キットをインストールするパソコンを準備します.この開発キットは,LinuxであるFedora Coreに対応しています.開発キットのバージョンによって対応するFedora Coreのバージョンが変わるので,注意が必要です.

 もし皆さんが,既にCBEの実機(PLAYSTATION3や評価ボード)をお持ちの場合は,実機上に開発環境を構築することも可能です.その際も,実機に対応するバージョンのFedora Coreをインストールした上で,同じように開発環境を構築してください.Linuxのインストール手順などは実機の種類によって違いがあります.リリース元のWebサイトなどで情報を得るようにしてください.現在,安価に手に入る実機であるPLAYSTATION3については,PLAYSTATION3用のWebサイトフィックスターズのWebサイトなどにLinuxのインストール方法が詳しく載っているので,参考にしてください.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日