高専卒研リバイバル
3月のこの比較的暇な期間、せっかく Power Mac も買ったことだから、高専の卒研で作ったプログラムをAltiVec(Velocity Engine)あるいはVMXに移植してみようかなと思ってみたり。
改めて調べてみて分かったのだが、Appleが手を加えたGCCはAltiVecのデータ型と命令関数が組み込まれているらしい。-faltivec オプションはAltiVecでの自動ベクトル化オプションではなく、組み込まれているAltiVecのデータ型と命令関数を有効にするためのフラグのようだ。なるほど、こうすればAltiVecを使ったプログラムの Intel チップへの移植も容易に出来るわけだな。
x86だと、xmmintrin.h が提供する関数とデータ型を使ってSSEっぽい疑似ベクトル化コードが書けるのだが、GCCはちゃんとしたベクトル化コードを吐いてくれない。Intel製のコンパイラが必要らしい。MacのGCCだと、試したところちゃんとベクトル化コードを吐いてくれるので、直接アセンブリコードを叩かなくて済む。
とりあえず、当時の文献引出してHS法のアルゴリズムを復習。どうベクトル化するか検討してみる。
最終的にはXgridにも対応できるといいけど、Xserve 無いのでまたいずれ。