ComputeCpp Extensions
List of SYCL extensions implemented in ComputeCpp. Some of these extensions have been proposed for future versions of SYCL and some of them have already made it in (though possibly slightly modified).
Some extensions have feature test macros that can be used to check whether the extension is available or not. If there are multiple iterations of an extension, the feature test macro will have a different value for each iteration.
constexpr id and range classes
- Feature test macro: N/A
- First implemented: Version 2.5.0
- SYCL version: 1.2.1 and higher
- Status: Proposed for SYCL post-2020
When compiling SYCL code (1.2.1 or higher) using C++14 or higher,
all operations on id
and range
class objects are automatically constexpr
.
Mark pointers of read-only accessors as const
- Feature test macro:
COMPUTECPP_EXT_READ_ACC_CONST_PTR
- Values:
202109
- First implemented: Version 2.7.0
- SYCL version: 1.2.1 and higher
- Status: Experimental
When the macro COMPUTECPP_EXT_READ_ACC_CONST_PTR_ENABLE
is defined for the device compiler,
the internal pointers of all read-only accessors become const
.
This can potentially lead to more efficient code generation.
This isn't enabled by default because the constness gets propagated and some existing code might break.
Make SYCL 2020's host_task
available in 1.2.1
- Feature test macro:
COMPUTECPP_EXT_2020_HOST_TASK
- Values:
202111
- First implemented: Version 2.8.0
- SYCL version: 1.2.1 and higher
- Status: Experimental
When the macro COMPUTECPP_EXT_2020_HOST_TASK_ENABLE
is defined,
the SYCL 2020 host_task implementation will also
be available in SYCL 1.2.1 mode.
This may provide some improvements over Codeplay's host_task
extension originally provided for SYCL 1.2.1, namely less overhead and compatibility
with the context_bound
property for buffers.