インテル® 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