アルファベット順のオプションリスト#

次の表は、現在のインテル® DPC++ 互換性ツールのコマンドライン・オプションをアルファベット順にリストしたものです。

オプション

説明

--always-use-async-handler

デフォルトの dpct::get_default_queue に加えて、dpct::create_queue を使用して新しい sycl::queue を生成する場合、非同期例外ハンドラーを使用します。デフォルト: off

--analysis-mode

移植作業に関するレポートのみを生成します。デフォルト: off

--analysis-mode-output-file

解析モードのレポートが保存されるファイルを指定します。デフォルト: stdout に出力します。

--analysis-scope-path=<dir>

移行するソースツリーの解析スコープのディレクトリー・パス。デフォルト: --in-root の値。

--assume-nd-range-dim=<value>

生成されるコードで使用する nd_range の次元に関するヒントをツールに提供します。設定可能な値は以下のとおりです。

  • =1: 可能であれば 1D nd_range を、それ以外の場合は 3D を想定してカーネルコードを生成します。

  • =3: 3D nd_range を想定してカーネルコードを生成します (デフォルト)。

--build-script-file=<file>

移行されたファイル向けに生成される makefile 名を指定します。デフォルト名: Makefile.dpct

--change-cuda-files-extension-only

拡張子の変更は .cu および .cuh ファイルのみに限定してください。デフォルト: off

--check-unicode-security

双方向書式コードと類似する文字を使用することで、悪用される可能性がある unicode の構造を検出して警告を有効にします。デフォルト: off

--comments

生成されたコードを説明するコメントを挿入します。デフォルト: off

--compilation-database=<dir>

移行するファイルのコンパイル・データベース (compile_commands.json) のディレクトリー・パスを指定します。プロジェクト・ファイルに記述されているパスとビルドオプションは、移行のガイドに使用されます。

パスを指定しない場合、最初の入力ソースファイルのすべての親ディレクトリーから compile_commands.json を検索します。

-p と同様です。

--cuda-include-path=<dir>

CUDA* ヘッダーファイルのディレクトリー・パス。

--enable-codepin

実験的: デバッグと検証の目的で、インストルメントされた CUDA* および SYCL* コードをディレクトリー <dir>_codepin_cuda および <dir>_codepin_sycl に生成します。ここで、<dir>--out-root オプションで指定されます。

--enable-ctad

生成されたコードで C++17 クラス・テンプレート引数演繹 (CTAD) を使用します。

--enable-profiling

ヘルパー関数で SYCL* キューのプロファイルを有効にします。デフォルト: auto (auto に設定すると、移行中にプロファイルが必要であるとツールが判断した場合にのみ、enable-profiling オプションが使用されます)。

--extra-arg=<string>

移行コマンドラインに追加する引数を指定します。このオプションは追加の引数をカンマで区切ったリストで受け入れ、コマンド内で複数回指定できます。例:

dpct xx.cu --extra-arg="-I /path, -I /path2" --extra-arg="-I /path/to/header"

dpct -- -help コマンドを使用して、移行コマンドの追加引数として渡すことができるオプションを確認できます。

--format-range=<value>

書式設定の範囲を設定します。

設定可能な値は以下のとおりです。

  • =all: すべてのコードを書式設定します。

  • =migrated: 移行したコードのみ書式設定します (デフォルト)。

  • =none: コードを書式設定しません。

--format-style=<value>

書式形式を設定します。

設定可能な値は以下のとおりです。

  • =custom: .clang-format ファイルで定義されているコード形式を使用します (デフォルト)。

  • =google: Google* コード形式を使用します。

  • =llvm: LLVM コード形式を使用します。

.clang-format ファイルの内容の例:

BasedOnStyle: LLVM IndentWidth: 4 TabWidth: 4 UseTab: ForIndentation

--gen-build-script

-out-root ディレクトリーに移行されたファイルの makefile を生成します。デフォルト: off

--gen-helper-function

--out-root ディレクトリーにヘルパー関数ファイルを生成します。デフォルト: off

--help

利用可能なオプションを表示します。

--helper-function-dir

ヘルパー関数ヘッダーファイルのインストール・ディレクトリーを表示します。

--helper-function-preference=<value>

移行時にヘルパー関数を使用する優先順位を指定します。値:

  • =no-queue-device: ヘルパー関数を呼び出す代わりに、SYCL* API を呼び出してキューとデバイスを取得します。

--intercept-build

インターセプト・ビルド・ツールでコンパイル・データベースを生成します。

--in-root=<dir>

移行するソースツリーのルート・ディレクトリー・パス。このルート以下のファイルのみが移行されます。デフォルト:

  • 入力ソースファイルが指定されない場合は、現在のディレクトリーです。

  • 入力ソースファイルが指定される場合の最初の入力ソースファイルのディレクトリー。

詳細:

  • --in-root で指定したディレクトリー内のすべてのソース (任意の入れ子レベル) は移行されます。

  • --in-root で指定したディレクトリー内のヘッダーファイル (任意の入れ子レベル) のうち、移行するソースやヘッダーファイルでインクルードされているものは移行されます。

  • --in-root ディレクトリーの外部にあるファイルは、プログラムやソースファイルでインクルードされていても移行されません。

--in-root-exclude=<dir|file>

指定するディレクトリーやファイルを処理から除外します。

--keep-original-code

生成される SYCL* ファイルにオリジナルコードをコメントとして残します。デフォルト: off

--migrate-build-script=<value>

実験的: ビルドスクリプトを移行

  • =CMake: CMake ファイルを移行します。

--migrate-build-script-only

実験的: ビルドスクリプトのみを移行します。デフォルト: off

--no-dpcpp-extensions=<value>

移行したコードで使用されない拡張子のカンマ区切りのリスト。デフォルトでは、これらの拡張子は移行したコードで使用されます。

設定可能な値は以下のとおりです。

  • =bfloat16: bfloat16 の SYCL* 拡張を無効にします。詳細をご覧ください。

  • =device_info: コンパイラーとバックエンドがサポートする場合、デバイス情報のインテル拡張機能を無効にします。詳細をご覧ください。

  • =enqueued_barriers: エンキューされたバリアの拡張を無効にします。詳細をご覧ください。

  • =peer_access: ピアアクセス拡張機能を無効にします。詳細をご覧ください。

  • =assert: アサート拡張機能を無効にします。詳細をご覧ください。

  • =queue_empty: キュー・エンプティー張機能を無効にします。詳細をご覧ください。

  • =all: このオプションにリストされているすべての拡張機能を無効にします。

--no-dry-pattern

dpct 名前空間の関数が挿入される場合、DRY (Don’t Repeat Yourself) パターンを使用しません。デフォルト: off

--no-incremental-migration

段階的な移行を行わないことをツールに指示します。デフォルト: off (段階的な移行を行います)。

--optimize-migration

プログラムのセマンティクスを変える可能性がある、積極的な過程を適用して SYCL* コードを生成します。デフォルト: off

--out-root=<dir>

生成されるファイルのルート・ディレクトリー・パス。存在しない場合は作成されます。デフォルト: dpct_output

生成されたファイルの相対パスは維持されます。デフォルトでファイル拡張子は次のように変更されます。

  • *.cu *.dp.cpp

  • *.cpp *.cpp.dp.cpp

  • *.cc *.cc.dp.cpp

  • *.cxx *.cxx.dp.cpp

  • *.C *.C.dp.cpp

  • *.cuh *.dp.hpp

  • *.h *.hpp *.hxx → 拡張子は同じままで維持されます

ファイル拡張子の変更を .cu.cuh にみに限定するには、--change-cuda-files-extension-only オプションを使用します。

--output-file=<file>

stdout/stderr の出力を、--out-root オプションで指定されたディレクトリー内の <file> にリダイレクトします。

--output-verbosity=<value>

出力の詳細レベルを設定します。

  • =detailed: ‘normal’ と、処理されたファイルに関するメッセージ。

  • =diagnostics: ‘detailed’ と、検出された競合とクラッシュに関する情報 (デフォルト)。

  • =normal: ‘silent’ と、インテル® DPC++ 互換性ツールから警告、エラー、およびメモ。

  • =silent: clang からのメッセージのみ。

-p

--compilation-database のエリアス。

--process-all

隠しファイルを除くすべてのファイルを、--in-root ディレクトリーから --out-root ディレクトリーに移行またはコピーします。--in-root オプションは、明示的に指定する必要があります。デフォルト: off

詳細:

--process-all オプションと --in-root オプションを指定して、入力ファイルを指定しないと、隠しファイルを除くすべてのファイルが --in-root ディレクトリーから出力ディレクトリーに移行またはコピーされます。

  • コンパイル・データベースがある場合:

    • コンパイル・データベース・ファイルは、コンパイル・データベースで指定されたオプションを適用して移行されます。

    • コンパイル・データベースにリストされていない .cu 拡張子のファイルは、スタンドアロンとして移行されます。

    • 残りのファイルは、–out-root ディレクトリーにコピーされます。

  • コンパイル・データベースがない場合:

    • .cu 拡張子のファイルは、スタンドアロンとして移行されます。

    • 残りのファイルは、-out-root ディレクトリーにコピーされます。

コマンドラインで入力ファイルが提供されると、--process-all は無視されます。

-query-api-mapping=<api>

機能的に互換性のある SYCL* API を照会して CUDA* API を移行します。

--report-file-prefix=<prefix>

移行レポートファイル名のプリフィクスを指定します。完全なファイル名には report-type に由来するサフィックスと、report-format に由来する拡張子が含まれます。次に例を示します。<prefix>.apis.csv または <prefix>.stats.log。このオプションを指定しないと、レポートは stdout に出力されます。レポートファイルは、-out-root で指定されたディレクトリーに作成されます。

--report-format=<value>

レポートの形式を指定します。

  • =csv: 出力は、カンマで区切られた値の行です。レポートファイル名の拡張子は .csv (デフォルト) です。

  • =formatted: 出力は読みやすいようにフォーマットされます。レポートファイル名の拡張子は .log です。

--report-only

移行レポートのみを生成します。SYCL* コードは生成されません。デフォルト: off

--report-type=<value>

移行レポートのタイプを指定します。設定可能な値は以下のとおりです。

  • =all: すべての移行レポートを生成します。

  • =apis: 移行する必要がある API シグネチャーに関する情報と、その発生回数。レポートファイル名には、.apis サフィックスが追加されます。

  • =stats: 高レベルの移行統計。SYCL* に移行された LOC (Lines Of Code)、ヘルパー関数を使用して SYCL* に移行された LOC、移行が必要でない LOC、移行が必要だが移行されていない LOC。レポートファイル名には、.stats サフィックスが追加されます(デフォルト)。

--rule-file=<file>

移行に使用するルールを含むファイルのパスを指定します。

--stop-on-parse-err

解析エラーが発生した場合、移行とレポートの生成を停止します。デフォルト: off

--suppress-warnings=<value>

抑制する移行警告のカンマ区切りのリスト。有効な警告 ID は 1000 から 1127 の範囲です。ハイフンで区切られた範囲も許されます。以下に例を示します。-suppress-warnings=1000-1010,1011

--suppress-warnings-all

すべての移行警告を抑制します。デフォルト: off

--sycl-file-extension=<value>

移行するソースファイルの拡張子を指定します。設定可能な値は以下のとおりです。

  • =dp-cpp: 拡張子 ‘.dp.cpp’ と ‘.dp.hpp’ (デフォルト) を使用します。

  • =sycl-cpp: 拡張子 ‘.sycl.cpp’ と ‘.sycl.hpp’ を使用します。

  • =cpp: 拡張子 ‘.cpp’ と ‘.hpp’ を使用します。

--sycl-named-lambda

カーネル名でカーネルを生成します。デフォルト: off

--use-dpcpp-extensions=<value>

移行したコードで使用されない拡張子のカンマ区切りのリスト。デフォルトでは、これらの拡張子は移行したコードで使用されます。

  • =c_cxx_standard_library: libdevice ライブラリー (インテル® oneAPI DPC++/C++ コンパイラーが提供) および C/C++ 標準ライブラリーを使用して、SYCL* 標準に対応する機能がない関数を移行します。これを intel_device_math と同時に使用すると、intel_device_math 関数が優先されます。詳細をご覧ください。

  • =intel_device_math: libdevice ライブラリー (インテル® oneAPI DPC++/C++ コンパイラーが提供) の sycl::ext::intel::math 用して、SYCL* 標準に対応する機能がない関数を移行します。詳細をご覧ください。

  • all: このオプションにリストされているすべての拡張機能を有効にします。

--use-experimental-features=<value>

移行したコードで使用されない拡張子のカンマ区切りのリスト。デフォルトでは、実験的な機能は移行したコードでは使用されません。

設定可能な値は以下のとおりです。

  • =bfloat16_math_functions: 実験的な bfloat16 数学関数の使用を許可します。詳細をご覧ください。

  • =bindless_images: バインドレス・イメージ API の使用を可能にする実験的な拡張機能。詳細をご覧ください。

  • =dpl-experimental-api: 実験的な oneDPL API の使用を可能にする拡張機能。詳細をご覧ください。

  • =free-function-queries: iditemnd_itemgroup、および sub_group インスタンスをグローバルに取得できるようにする実験的な拡張機能。詳細をご覧ください。

  • =local-memory-kernel-scope-allocation: カーネルファンクターのスコープで、ローカル・メモリー・オブジェクトの割り当てを可能にする実験的な拡張機能。詳細をご覧ください。

  • =logical-group: wark-item を論理的にグループ化するために使用される実験的なヘルパー関数。詳細については、ヘッダーファイル util.hppdpct::experimental::logical_group を参照してください。

  • =masked-sub-group-operation: マスクを使用して sub-group を操作するために使用される実験的なヘルパー関数。詳細については、ヘッダーファイル util.hppdpct::experimental::select_from_sub_groupdpct::experimental::shift_sub_group_leftdpct::experimental::shift_sub_group_right および dpct::experimental::shift_sub_group_right を参照してください。

  • =matrix: 実験的な joint_matrix クラスなどの行列拡張の使用を可能にする実験的な拡張機能。詳細をご覧ください。

  • =nd_range_barrier: 移行時にグループ間の同期を支援する実験的なヘルパー関数を使用します。詳細については、ヘッダーファイル util.hppdpct::experimental::nd_range_barrier を参照してください。

  • =occupancy-calculation: 占有率の計算に使用される実験的なヘルパー関数を使用します。詳細については、ヘッダーファイル util.hppdpct::experimental::calculate_max_active_wg_per_xecoredpct::experimental::calculate_max_potential_wg を参照してください。

  • =user-defined-reductions: ユーザー定義のリダクションを可能にする実験的な拡張機能を使用します。詳細をご覧ください。

  • =non-uniform-groups: 非均一グループの使用を可能にする実験的な拡張機能。詳細をご覧ください。

  • =device_global: C++ グローバル変数に似た構文を使用してカーネル内でアクセスできる、SYCL* へのデバイス・スコープ・メモリー割り当てを可能にする実験的な拡張機能。詳細をご覧ください。

  • =all: このオプションにリストされているすべて実験的拡張を有効にします。

--use-explicit-namespace=<value>

生成されるコードで明示的に使用される名前空間を定義します。値は、カンマ区切りのリストです。デフォルト: dpct, sycl

設定可能な値は以下のとおりです。

  • =dpct: dpct:: 名前空間を使用してコードを生成します。

  • =none: 名前空間なしでコードを生成します。ほかの値を一緒に使用する事はできません。

  • =sycl: sycl:: 名前空間を使用してコードを生成します。cl または sycl-math の値を同時に使用することはできません。

  • =sycl-math: 名前空間を sycl:: 数学関数にのみ適用してコードを生成します。cl または sycl の値を同時に使用することはできません。

--usm-level=<value>

ソースコードの生成に使用する統合共有メモリー (USM) のレベルを設定します。

  • =none: メモリー管理の移行にインテル® DPC++ 互換性ツールのヘッダーファイルのヘルパー関数を使用します。

  • =restricted: メモリー管理の移行に USM API を使用します。(デフォルト)。

--vcxprojfile=<file>

移行する Visual Studio* プロジェクトの C++ プロジェクト・ファイル vcxproj のディレクトリー・パスを指定します。プロジェクト・ファイルに記述されているパスとビルドオプションは、移行のガイドに使用されます。

--version

ツールのバージョンを表示します。