Backends#
The SYCL backends that can be supported by a SYCL implementation
are identified using the enum class backend
.
sycl::backend
#
class backend;
The enum class backend
is implementation-defined and must be
populated with a unique identifier for each SYCL backend that the
SYCL implementation can support. Note that the SYCL backends listed
in the enum class backend
are not guaranteed to be available
in a given installation.
Each named SYCL backend enumerated in the enum class backend
must be associated with a SYCL backend specification. Many sections
of this specification will refer to the associated SYCL
backend specification.
Backend macros#
As the identifiers defined in enum class backend
are
implementation-defined, and the associated backends not
guaranteed to be available, a SYCL implementation must also
define a preprocessor macro for each of these identifiers.
If the SYCL backend is defined by the Khronos SYCL group, the
name of the macro has the form SYCL_BACKEND_<backend_name>
,
where backend_name is the associated identifier from backend
in all upper-case.
For the name of the macro if the vendor defines the SYCL backend outside of the Khronos SYCL group, see the following:
See also
SYCL Specification Section 6
If a backend listed in the enum class backend
is not available,
the associated macro must be left undefined.