インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
最適化のためのストリーミング・ストアの生成を有効にします。
Linux* および macOS*: | -qopt-streaming-stores=keyword |
Windows*: | /Qopt-streaming-stores:keyword |
keyword |
ストリーミング・ストアを生成するかどうかを指定します。設定可能な値は以下のとおりです。
|
-qopt-streaming-stores=auto |
コンパイラーの判断によって、ストリーミング・ストアまたは通常のストアが使用されます。 |
このオプションは、最適化のためのストリーミング・ストアの生成を有効にします。一時的ではないバッファーを使用する命令でデータをストアし、メモリー階層の汚染を最小限に抑えます。
このオプションは、ストリーミング・ストアを使用することで拡張が可能なアプリケーションで役立ちます。
なし
次の例は、-qopt-streaming-stores=always または /Qopt-streaming-stores:always を指定する場合に、メモリーバリア (フェンス) を挿入する 1 つの方法を示します。C/C++ 関数 _mm_sfence へマップする、モジュール IFCORE のプロシージャー・インターフェイス for_sfence を使用します。
subroutine sub1(a, b, c, len, n1, n2) use IFCORE, only : for_sfence integer len, n1, n2, i, j real(8) a(len), b(len), c(len), d(len) !$omp parallel do do j = 1, n1 a(j) = 1.0 b(j) = 2.0 c(j) = 3.0 enddo !$omp end parallel do call ftn_sfence() !$omp parallel do do i = 1, n2 a(i) = a(i) + b(i) * c(i) enddo !$omp end parallel do end