高専卒研リバイバル

3月のこの比較的暇な期間、せっかく Power Mac も買ったことだから、高専の卒研で作ったプログラムをAltiVecVelocity Engine)あるいはVMXに移植してみようかなと思ってみたり。

改めて調べてみて分かったのだが、Appleが手を加えたGCCAltiVecのデータ型と命令関数が組み込まれているらしい。-faltivec オプションはAltiVecでの自動ベクトル化オプションではなく、組み込まれているAltiVecのデータ型と命令関数を有効にするためのフラグのようだ。なるほど、こうすればAltiVecを使ったプログラムの Intel チップへの移植も容易に出来るわけだな。

x86だと、xmmintrin.h が提供する関数とデータ型を使ってSSEっぽい疑似ベクトル化コードが書けるのだが、GCCはちゃんとしたベクトル化コードを吐いてくれない。Intel製のコンパイラが必要らしい。MacGCCだと、試したところちゃんとベクトル化コードを吐いてくれるので、直接アセンブリコードを叩かなくて済む。

とりあえず、当時の文献引出してHS法のアルゴリズムを復習。どうベクトル化するか検討してみる。

最終的にはXgridにも対応できるといいけど、Xserve 無いのでまたいずれ。