研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

Cell プログラムの書き方。

2007-06-28 19:17:28 | Weblog
ここのところ $(CELL_TOP) 付近にある sample プログラムを参考にしてソースを書いていた。以前参考にしていた fixstars さんの書き方とは異なっていて、少々戸惑ってしまい、あまり作業が進んでいない。ようやく形が見えてきたかというところであるが、やはり 簡単には libspe 1.1 とギャップを克服するのは難しいようである。

libspe 1.x では、PPE プログラムから SPE プログラムを呼び出し実行という形式であった。libspe 2.x では、大まかな流れは同じであるものの、pthead で スレッドによる並列化、contextを用いて SPE を操作したりなど、変更が多く簡単には移行しづらい。ここはやはりサンプルを見るしかないが、ある程度同じ流れであると思われたがいくつかのプログラムスタイルがあるようだ。

fixstars さんが公開している sample では、従来のように PPE で動かすプログラム、SPE で動かすプログラムを個別にコンパイルしている。1.1 のときから参考にさせてもらっており、慣れているので読みやすい。

Cell SDK 2.0 に含まれている $(CELL_TOP) 付近にある sample は、1.x ではあるが pthead や context を用いており、2.x でも参考になりそうであるが、こちらではSPE プログラムにライブラリを合わせたものを、PPE プログラムに埋め込むような形でコンパイルしている。

どちらのスタイルのほうがよいのかも現段階では分からないが、libspe 1.1 でのプログラム経験があることを考えると、下手に新しいスタイルに手を出すよりも、まずは以前のスタイルで動くものを作り、その後いろいろ手を加えたほうがよいだろう。

最新の画像もっと見る

コメントを投稿