インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
コンパイラーは、ソースファイル中のプロシージャーとデータ・オブジェクトにオフロード属性 target(mic) のフラグを付けます。このオプションは、インテル® Xeon Phi™ 製品をターゲットとする場合にのみ適用されます。これは古いオプション (非推奨) です。後継オプションはありません。
インテル® Xeon Phi™ 製品をターゲットとする場合にのみ利用できます。
Linux*: | -qoffload-attribute-target=target-name |
macOS*: | なし |
Windows*: | /Qoffload-attribute-target:target-name |
target-name |
特定のターゲット。利用可能な値は mic のみです。 |
オフ |
コンパイラーは、ソースファイル中のプロシージャーとデータ・オブジェクトにオフロード属性 target(mic) のフラグを付けません。 |
コンパイラーは、ソースファイル中のプロシージャーとデータ・オブジェクトにオフロード属性 target(mic) のフラグを付けます。
このオプションは、必要な個々の ATTRIBUTES OFFLOAD:MIC ディレクティブを使用して、ソースファイル内のすべてのプロシージャーとデータ・オブジェクトに target(mic) 属性を付けるのと似ています。
ソースに埋め込まれた個々の ATTRIBUTES OFFLOAD:MIC ディレクティブは、このオプションよりも優先されます。
なし
以下に、[q または Q]offload-attribute-target オプションの使用例を示します。モジュール変数 t_glob はホストでのみ更新され、モジュール変数 t_priv はターゲットでのみ更新されます。[q または Q]offload-attribute-target オプションを使用してすべてのグローバル・プロシージャーとグローバル変数に target(mic) 属性のフラグが付けられるため、ホストとターゲットの両方で利用可能なグローバル・プロシージャーとグローバル変数に対して、ソースで個別に ATTRIBUTES ディレクティブを追加する必要はありません。
t.F90
=========
program sample
use m, only : t_glob, glob_func
integer :: i
!dir$ offload target(mic) out(i, t_glob)
i = glob_func()
write(*, '( "main: t_glob = ",i0," i = ",i0)' ) t_glob, i
end program sample
m.F90
=========
module m
integer :: t_glob = 65
public :: glob_func
integer :: t_priv = 43
private :: priv_func, t_priv
contains
integer function priv_func ()
! ターゲットでのみインクリメント
# ifdef __MIC__
t_priv = t_priv + 1
# endif
priv_func = t_priv / 2
end function priv_func
integer function glob_func ()
integer :: j
j = priv_func()
write(*, '( "glob_func: t_priv = ",i0," j = ",i0)' ) t_priv, j
! ターゲットでのみインクリメント#
ifdef __MIC__
t_glob = t_glob + 1
# endif
glob_func = t_glob / 2
end function glob_func
end module m
次のようにコマンドラインでソースをコンパイルします。
Linux*:
$ ifort -c m.F90 -qoffload-attribute-target=mic
$ ifort m.o t.F90 -o t.exe
Windows*:
$ ifort /c m.F90 /Qoffload-attribute-target:mic
$ ifort m.obj t.F90 /exe:t.exe
t.exe の出力は次のようになります。
glob_func: t_priv = 44 j = 22 main: t_glob = 66 i = 33