追加の演習

前のサンプルでは倍精度の配列を使用しました。これは、コマンドライン・オプション -real-size 64-real-size 32 に変更することにより、代わりに単精度配列でビルドすることもできます。ループのベクトル化されていないバージョンは倍精度のバージョンよりわずかに高速になりますが、ベクトル化されたバージョンは大幅に高速になります。これは、16 バイト・ベクトル・レジスターで実行するパックド SIMD 命令は、2 つの倍精度データ要素の代わりに 4 つの単精度データ要素を一度に実行するためです。

Note icon

データのアライメントのサンプルでは ROWBUF=3 を設定して、行列 a の各行が 16 バイトでアライメントされるようにする必要があります。そうでなければ、宣言子 !dir$ vector aligned によりプログラムは失敗します。

このチュートリアルでは、さまざまな手法によるパフォーマンスの最適化について見てきました。以上で、自動ベクトル化のチュートリアルは終了です。

戻る: プロシージャー間の最適化を使用してパフォーマンスを向上する


このヘルプについてのフィードバックを送信

© 2010 Intel Corporation. 無断での引用、転載を禁じます。