インテル® Fortran コンパイラー 14.0 ユーザー・リファレンス・ガイド
ここでは、コードのベクトル化に役立つ特定の Fortran 言語機能について説明します。
SIMD ベクトル化機能は、インテル製マイクロプロセッサーおよび互換マイクロプロセッサーの両方で利用可能です。ベクトル化により呼び出されるライブラリー・ルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーにおいてより優れたパフォーマンスが得られる可能性があります。また、ベクトル化は、/arch (Windows*)、-m (Linux* および OS X*)、[Q]x などの特定のオプションによる影響を受けます。
!DIR$ ATTRIBUTES ALIGN:N 宣言を使用することで、ハードウェアのアライメント条件を変更できます。 restrict 指示子と自動ベクトル化ヒントは、語彙スコープ、データの依存性、両義性の解決による書き方に関する問題を処理します。
!DIR$ ATTRIBUTES VECTOR::FUNCTION-NAME-LIST と !DIR$ ATTRIBUTES VECTOR[:CLAUSES]::FUNCTION-NAME-LIST 宣言子は、ユーザー指示による関数およびループをベクトル化するのに使用できます。 SIMD の使用では、vector 関数はベクトル化されるループから呼び出されます。 この関数はループの一部として、ベクトル演算に実装されなければなりません。
タスク並列処理の実装は呼び出し位置で行われるのに対して、VECTOR 宣言子オプションの使用モデルでは、関数用に生成されたコードは実際に配列の小さなセクション (VECTORLENGTH) を値で受け取り、SIMD 並列処理を活用します。
次の表は、コードのベクトル化に役立つ言語機能をまとめたものです。
これらの宣言子はインテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能ですが、インテル製マイクロプロセッサーにおいてより多くの最適化が行われる場合があります。