コード生成オプション#

次の表に、コードの移行をカスタマイズするコマンドライン・オプションを示します。

オプション

説明

--always-use-async-handler

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

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

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

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

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

--change-cuda-files-extension-only

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

--check-unicode-security

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

--comments

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

--enable-ctad

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

--enable-profiling

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

--gen-helper-function

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

--helper-function-preference=<value>

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

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

--keep-original-code

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

--no-dry-pattern

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

--optimize-migration

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

--sycl-named-lambda

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

--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 を使用します。(デフォルト)。

--enable-codepin

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