インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

qoffload-option、Qoffload-option

指定したターゲットとツールで使用されるオプションを明示的に指定できます。このオプションは、インテル® Xeon Phi™ 製品およびインテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。

アーキテクチャーの制限

インテル® Xeon Phi™ 製品をターゲットとする場合、インテル® グラフィックス・テクノロジーをターゲットとするインテル® 64 アーキテクチャー、または IA-32 アーキテクチャーで実行するインテル® グラフィックス・テクノロジーをターゲットとする場合のみ利用できます。

構文

Linux*:

-qoffload-option,target,tool,"option-list"

macOS*:

なし

Windows*:

/Qoffload-option,target,tool,"option-list"

引数

target

ターゲット・アーキテクチャーまたはアプリケーション。利用可能な値は次のとおりです。

  • mic (インテル® MIC アーキテクチャー)

  • gfx (インテル® グラフィックス・テクノロジー)

tool

option-list と関連するツール。次のいずれかの値を使用できます: ldlinkas、または compiler

ld は Linux* 用のリンカーツールで、link は Windows* 用のリンカーツールです。

option-list

ツール固有の 1 つまたは複数のオプション。リスト全体を引用符 (") で囲み、option-list 中の各オプションはスペースで区切る必要があります。

tool の値が compiler の場合はコンパイラー固有のオプションを、ld の場合はリンカー固有のオプションを、そして as の場合はアセンブラー固有のオプションを使用します。ツールオプションには、Windows* 上でコンパイルする場合であっても、常に Linux* 形式を使用します。

デフォルト

オフ

コンパイラーは、ターゲット・アーキテクチャー上の個別のツールに対して追加のオプションを渡しません。

説明

このオプションを使用して、指定したターゲットとツールで使用されるオプションを明示的に指定できます。このオプションは、コマンドラインで複数回指定することができます。

ヘテロジニアス・アプリケーションをビルドする場合、ドライバーはホストコンパイルにはコマンドラインで指定されたすべてのオプションを渡し、オフロードコンパイルには特定のオプションのみ渡します。オフロードコンパイルに渡されるオプションのリストを確認するには、watch=mic-cmd オプションを指定します。

オフロードコンパイルに追加のオプションを渡す場合やオフロードコンパイルに渡されるオプションをオーバーライドする場合は、[q または Q]offload-option オプションを使用して追加のオプションまたはオーバーライドするオプションを指定する必要があります。

[q または Q]offload-option オプションと一緒に ILD、または U オプションを指定すると、ホストからオフロードコンパイルへ自動で渡される ILD、および U オプションよりも優先されます。

確実にオーバーライドするため、[q または Q]offload-option オプションと一緒に指定する ILD、および U オプションは、ホストコンパイルから自動でコピーされる ILD、および U オプションよりも前に配置してください。[q または Q]offload-option と一緒に指定するその他のすべてのオプションは、ホストからオフロードコンパイルにコピーされるオプションの後に配置します。

IDE オプション

Visual Studio*: [Code Generation (コード生成)] > [Offload Options for Processor Graphics (プロセッサー・グラフィックスのオフロードオプション)] (インテル® グラフィックス・テクノロジーのみ)

[Code Generation (コード生成)] > [Additional Options for MIC Offload Compiler (MIC オフロード・コンパイラー用追加オプション)]

Eclipse*: [Compiler (コンパイラー)] > [Command Line (コマンドライン)] > [Additional Options for MIC Offload Compiler (MIC オフロード・コンパイラー用追加オプション)]

Xcode*: なし

代替オプション

なし

次に、tool 値が compiler の場合の例を示します。

-qoffload-option,mic,compiler, "-O3 -diag-disable 1234 -vec-report2"   ! Linux* 
/Qoffload-option,mic,compiler, "-O3 -diag-disable 1234 -vec-report2"   ! Windows* 

次に、tool 値が compiler の場合の別の例を示します。

-qoffload-option,mic,compiler, "-O3 -vec-report3"     ! Linux* 
/Qoffload-option,mic,compiler, "-O3 -vec-report3"     ! Windows* 

次に、tool 値が Linux* 用の ld の場合の例を示します。

-qoffload-option,mic,ld,"-lmylib -L/my/path"

次に、tool 値が Windows* 用の link の場合の例を示します。

/Qoffload-option,mic,link,"--no-undefined   \"<install-dir>\mkl\lib\mic\libmkl_intel_lp64.a\" 

option-list でスペースを含むパスを指定する場合は、コンパイラーが正しく解釈できるように、エスケープ文字と引用符 (\") でパスを囲む必要があります。

次に、tool 値が Linux* 用の as の場合の例を示します。

-qoffload-option,mic,as,"<assembler options>"     ! Linux* 
/Qoffload-option,mic,as,"<assembler options>"     ! Windows* 

次の Linux* の例で、オフロードコンパイルは最初に -I/my_dir/mic/include を検索し、前出の -I/my_dir/include-DMY_DEFINE=10 をオーバーライドする-DMY_DEFINE=20 を使用します。また、コンパイラーは -L/my_dir/mic/lib -L/my_dir/lib をオフロードの ld ステップに渡します。

icc -qoffload-option,mic,compiler, "-I/my_dir/include -L/my_dir/lib -DMY_DEFINE=10 -I/my_dir/mic/include -DMY_DEFINE=20" -offload-option,mic,ld, "-L/my_dir/mic/lib" hello.c

次の Linux* の例は、-qoffload-option で指定したオプションにより、ホストコンパイルからオフロードコンパイルへ自動で渡されるオプションをオーバーライドする方法を示します。

-qoffload-option,mic,compiler,"-O3 -DMY_DEFINE=MIC" -DMY_DEFINE=HOST -O2

ホストコンパイルでは -DMY_DEFINE=HOST -O2 が使用されますが、オフロードコンパイルでは -DMY_DEFINE=MIC -O3-O2-DMY_DEFINE=HOST をオーバーライドします。

関連情報