Advanced Migration Options#

The following tables list advanced options to control migrated source, generate reports, and query API mapping.

Options to Format Migrated Code#

Option

Description

--format-range=<value>

Sets the range of formatting.

The values are:

  • =all: Formats all code.

  • =migrated: Only formats the migrated code (default).

  • =none: Do not format any code.

--format-style=<value>

Sets the formatting style.

The values are:

  • =custom: Use the coding style defined in the .clang-format file (default).

  • =google: Use the Google* coding style.

  • =llvm: Use the LLVM coding style.

Example for the .clang-format file content:

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

Options to Specify Additional Migration Rules#

Option

Description

--rule-file=<file>

Specifies the rule file path that contains rules used for migration.

Options to Control SYCL Extensions and Experimental Features#

Option

Description

--no-dpcpp-extensions=<value>

A comma-separated list of extensions not to be used in migrated code. By default, these extensions are used in migrated code.

The values are:

  • =bfloat16: Use the SYCL extensions for bfloat16.

  • =device_info: Use the Intel extensions for device information, if supported by the compiler and the backend.

  • =enqueued_barriers: Use the enqueued barriers extension.

  • =peer_access: Use the peer access extension.

--use-dpcpp-extensions=<value>

A comma-separated list of extensions to be used in migrated code. By default, these extensions are not used in migrated code.

  • =c_cxx_standard_library: Use std functions from the libdevice library (provided by IntelĀ® oneAPI DPC++/C++ Compiler) and C/C++ Standard Library to migrate functions which have no mapping in the SYCL standard. If this value is used together with intel_device_math, the intel_device_math functions take precedence.

  • =intel_device_math: Use sycl::ext::intel::math functions from the libdevice library (provided by IntelĀ® oneAPI DPC++/C++ Compiler) to migrate functions which have no mapping in the SYCL standard.

--use-experimental-features=<value>

A comma-separated list of experimental features to be used in migrated code. By default, experimental features will not be used in migrated code.

The values are:

  • =bfloat16_math_functions: Experimental extension that allows use of bfloat16 math functions.

  • =bindless_images: Experimental extension that allows use of bindless images APIs.

  • =dpl-experimental-api: Experimental extension that allows use of experimental oneDPL APIs.

  • =free-function-queries: Experimental extension that allows getting id, item, nd_item, group, and sub_group instances globally.

  • =local-memory-kernel-scope-allocation: Experimental extension that allows allocation of local memory objects at the kernel functor scope.

  • =logical-group: Experimental helper function used to logically group work-items.

  • =masked-sub-group-operation: Experimental helper function used to execute sub-group operation with mask.

  • =matrix: Experimental extension that allows use of matrix extension like class joint_matrix.

  • =nd_range_barrier: Experimental helper function used to help cross-group synchronization during migration.

  • =occupancy-calculation: Experimental helper function used to calculate occupancy.

  • =user-defined-reductions: Experimental extension that allows user-defined reductions.