コマンドライン・オプションのリファレンス

このトピックでは、コマンドライン・オプションの簡単な説明、現在非推奨のオプション、ソースファイルの操作に関する情報を紹介します。

コマンドライン・オプション

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

オプション

説明

--always-use-async-handler

常に cl::sycl::queue を非同期例外ハンドラーで作成します。デフォルト: off

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

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

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

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

--comments

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

--cuda-include-path=<dir>

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

--custom-helper-name=<name>

ヘルパー・ヘッダー・フォルダー名とメインのヘルパー・ヘッダー・ファイル名を指定します。デフォルト: dpct

--enable-ctad

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

--extra-arg=<string>

移行コマンドラインに追加する引数。例: --extra-arg="-I /path/to/header"。この方法で渡すことができるオプションは、dpct -- -help コマンドで確認できます。

--format-range=<value>

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

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

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

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

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

--format-style=<value>

書式形式を設定します。

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

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

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

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

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

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

--help

インテル® DPC++ 互換性ツール固有のオプションのリストを提供します。

--in-root=<dir>

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

  • 現在のディレクトリー (入力ソースファイルが提供されない場合)

  • 最初の入力ソースファイルのディレクトリー (入力ソースファイルが提供される場合)

詳細:

--in-root で指定したディレクトリー内のすべてのソース (任意の入れ子レベル) は移行されます。--in-root で指定したディレクトリー内のヘッダーファイル (任意の入れ子レベル) のうち、移行するソースやヘッダーファイルでインクルードされているものは移行されます。--in-root ディレクトリー内にないファイルは、システムファイルと見なされ、プログラムやソースファイルでインクルードされていても移行されません。

--keep-original-code

生成されるデータ並列 C++ (DPC++) ファイルにオリジナルコードをコメントとして残します。デフォルト: off

--no-cl-namespace-inline

非推奨: cl:: 名前空間をインラインで使用しないでください。デフォルト: off。このオプションは、代替オプション --use-explicit-namespace が使用されると無視されます。

--no-dpcpp-extensions=<value>

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

  • =enqueued_barriers: エンキューされたバリア DPC++ 拡張子。

--no-dry-pattern

dpct 名前空間の関数が挿入される場合、DRY (Don’t Repeat Yourself) パターンを使用しません。デフォルト: 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 → 同じ拡張子が維持されます。

--output-file=<file>

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

--output-verbosity=<value>

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

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

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

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

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

-p=<dir>

コンパイル・データベース (compile_commands.json) のディレクトリー・パス。パスを指定しない場合、最初の入力ソースファイルのすべての親ディレクトリーから compile_commands.json の検索が試みられます。

--process-all

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

詳細:

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

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

    • コンパイル・データベースからのファイルは、コンパイル・データベースで指定されたオプションで移行されます。

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

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

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

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

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

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

--report-file-prefix=<prefix>

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

--report-format=<value>

レポート形式:

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

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

--report-only

レポートのみが生成されます。DPC++ コードは生成されません。デフォルト: off

--report-type=<value>

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

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

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

  • =all: すべてのレポート。

--stop-on-parse-err

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

--suppress-warnings=<value>

抑制する移行警告のカンマ区切りのリスト。有効な警告 ID は 1000 から 1047 の範囲です。ハイフンで範囲を指定することも可能です。例: -suppress-warnings=1000-1010,1011

--suppress-warnings-all

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

--sycl-named-lambda

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

--use-custom-helper=<value>

移行したコードのヘルパー・ヘッダー・ファイルをカスタマイズします。設定可能な値は以下のとおりです。

  • =none: カスタマイズしません (デフォルト)。

  • =file: ヘルパー・ヘッダー・ファイルを移行したコードに必要なファイルのみに限定して、--out-root ディレクトリーに配置します。

  • =api: ヘルパー・ヘッダー・ファイルを移行したコードに必要な API のみに限定して、--out-root ディレクトリーに配置します。

  • =all: ヘルパー・ヘッダー・ファイル一式を生成して、--out-root ディレクトリーに配置します。

--use-experimental-features=<value>

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

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

  • =nd_range_barrier: 移行時にグループ間の同期を支援する実験的なヘルパー関数。

--use-explicit-namespace=<value>

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

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

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

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

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

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

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

--usm-level=<value>

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

  • =restricted: メモリー管理の移行に DPC++ の明示的および制限付き統合共有メモリー API を使用します。

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

--vcxprojfile=<file>

vcxproj のファイルパス。

--version

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

以下のオプションのいずれかを指定すると、レポートが生成されます。

  • --report-file-prefix

  • --report-type

  • --report-format

  • --report-only

非推奨のコマンドライン・オプション

次の表は、現在非推奨のインテル® DPC++ 互換性ツールのコマンドライン・オプションをリストしたものです。

非推奨のオプション (古いオプション)

推奨する代わりのオプション

--no-cl-namespace-inline

--use-explicit-namespace

ソースファイル

ソースファイルを操作するには、<source0> ... を使用して入力ソースファイルのパスを作成します。これらのパスは、コンパイル・データベースで見つけることができます。

例:

  • 単一ソースファイルの移行: dpct source.cpp

  • C++11 機能を含む単一ソースファイルの移行: dpct --extra-arg="-std=c++11" source.cpp

  • コンパイル・データベースにあるすべてのファイルの移行: dpct -p=<コンパイル・データベース・ファイルの場所へのパス>

  • コンパイル・データベースにある 1 つのファイルの移行: dpct -p=<コンパイル・データベース・ファイルの場所へのパス> source.cpp