フィックススターズ の Cellプログラミングチュートリアル は初めてPS3でCellのプログラムを作るのには丁度良い内容と分量になっている。それほど難しいことは無く、基本を習得できるのだ。しかし、この記事を書いている時点では、最終更新日が2007年2月2日と、内容が若干古い。 PPE用のプログラムもすべてgccでコンパイルするようになっている。PPE用のプログラムはppu-gccを利用したほうがCell用に最適化してくれるので実行効率が良い。なので、gccでコンパイルされているところはすべてppu-gccにすればよいのだが、実はこのチュートリアルではそれではエラーが出てしまうのである。 たとえば、SIMDを使った 条件分岐の削除 にあるプログラムだが、これをppu-gccでコンパイルすると、 error: incompatible types in assignment と、エラーが出る。これは vpat = vec_cmpgt(va[i], vb[i]); に示すコードの返り値の型が一致していないことが原因である。なので、 vector unsigned int vpat; の部分を、 vector bool int vpat; のように変更する必要がある。 別のソースコードも似たようなエラーが起こるが、ほとんどが型の不一致が原因なので、宣言の型を変更したり、目的の型にキャストすればエラーは解消される。