diff --git a/sycl/doc/extensions/experimental/sycl_ext_oneapi_kernel_properties.asciidoc b/sycl/doc/extensions/experimental/sycl_ext_oneapi_kernel_properties.asciidoc index 878f0862ac990..6101bbfc2b4c7 100644 --- a/sycl/doc/extensions/experimental/sycl_ext_oneapi_kernel_properties.asciidoc +++ b/sycl/doc/extensions/experimental/sycl_ext_oneapi_kernel_properties.asciidoc @@ -121,10 +121,7 @@ Section 5.8.1 of the SYCL 2020 specification. Note that deprecated attributes (such as `vec_type_hint`) are not included. ```c++ -namespace sycl { -namespace ext { -namespace oneapi { -namespace experimental { +namespace sycl::ext::oneapi::experimental { // Corresponds to reqd_work_group_size struct work_group_size_key { @@ -185,10 +182,7 @@ template <> struct is_property_key : std::true_type {} template <> struct is_property_key : std::true_type {}; template <> struct is_property_key : std::true_type {}; -} // namespace experimental -} // namespace oneapi -} // namespace ext -} // namespace sycl +} // namespace sycl::ext::oneapi::experimental ``` |=== @@ -320,6 +314,23 @@ class handler { range workGroupSize, PropertyList properties, const WorkgroupFunctionType &kernelFunc); + + // Available only if all properties in `PropertList` only have launch-related + // effects. + template + void single_task(PropertyList properties, const kernel& kernelObject); + + // Available only if all properties in `PropertList` only have launch-related + // effects. + template + void parallel_for(range numWorkItems, PropertyList properties, + const kernel& kernelObject); + + // Available only if all properties in `PropertList` only have launch-related + // effects. + template + void parallel_for(nd_range ndRange, PropertyList properties, + const kernel& kernelObject); } } ``` diff --git a/sycl/doc/extensions/proposed/sycl_ext_intel_fpga_kernel_interface_properties.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_intel_fpga_kernel_interface_properties.asciidoc index 73bf4a6dfdb22..13cea0f399603 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_intel_fpga_kernel_interface_properties.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_intel_fpga_kernel_interface_properties.asciidoc @@ -92,7 +92,8 @@ using the mechanism defined in sycl_ext_oneapi_kernel_properties. === Kernel Interface Properties ```c++ -namespace sycl::ext::intel::experimental { +namespace sycl::ext { +namespace intel::experimental { enum class streaming_interface_options_enum { accept_downstream_stall, @@ -167,11 +168,16 @@ inline constexpr fpga_cluster_key::value_t< inline constexpr fpga_cluster_key::value_t< fpga_cluster_options_enum::stall_free_clusters> stall_free_clusters; -template <> struct is_property_key : std::true_type {}; -template <> struct is_property_key : std::true_type {}; -template <> struct is_property_key : std::true_type {}; +} // intel::experimental -} // namespace sycl::ext::intel::experimental +namespace oneapi::experimental { + +template <> struct is_property_key : std::true_type {}; +template <> struct is_property_key : std::true_type {}; +template <> struct is_property_key : std::true_type {}; + +} // intel::experimental +} // namespace sycl::ext ``` |=== diff --git a/sycl/include/sycl/detail/kernel_properties.hpp b/sycl/include/sycl/detail/kernel_properties.hpp index cd1b9ef7929a2..4258b594bc69a 100644 --- a/sycl/include/sycl/detail/kernel_properties.hpp +++ b/sycl/include/sycl/detail/kernel_properties.hpp @@ -45,6 +45,7 @@ struct PropertyMetaInfo> { static constexpr const char *name = "sycl-register-alloc-mode"; static constexpr sycl::detail::register_alloc_mode_enum value = Mode; }; + } // namespace detail } // namespace ext::oneapi::experimental } // namespace _V1 diff --git a/sycl/include/sycl/ext/intel/experimental/fpga_kernel_properties.hpp b/sycl/include/sycl/ext/intel/experimental/fpga_kernel_properties.hpp index 7628fb40bf4ca..85b125aa127cd 100644 --- a/sycl/include/sycl/ext/intel/experimental/fpga_kernel_properties.hpp +++ b/sycl/include/sycl/ext/intel/experimental/fpga_kernel_properties.hpp @@ -104,6 +104,15 @@ struct is_property_key_of< : std::true_type {}; namespace detail { +template +struct HasCompileTimeEffect< + intel::experimental::streaming_interface_key::value_t