前のサンプルでは倍精度の配列を使用しましたが、マクロ FTYPE=float を追加することにより、代わりに単精度配列でビルドすることもできます。ループのベクトル化されていないバージョンは倍精度のバージョンよりわずかに高速になりますが、ベクトル化されたバージョンは大幅に高速になります。これは、16 バイト・ベクトル・レジスターで実行するパックド SIMD 命令は、2 つの倍精度データ要素の代わりに 4 つの単精度データ要素を一度に実行するためです。
データのアライメントのサンプルでは、COLBUF=3 を設定して、行列 a の各行が 16 バイトでアライメントされるようにする必要があります。この設定を行わない場合、#pragma vector aligned によりプログラムは失敗します。
このチュートリアルでは、さまざまな手法によるパフォーマンスの最適化について見てきました。以上で、このチュートリアルは終了です。