16 #include <type_traits>
19 inline namespace _V1 {
20 namespace ext::intel::experimental {
23 template <auto &f,
typename PropertyListT>
class task_sequence;
42 oneapi::experimental::detail::PropKind::StreamingInterface> {
43 template <streaming_
interface_options_enum option>
46 std::integral_constant<streaming_interface_options_enum, option>>;
51 oneapi::experimental::detail::PropKind::RegisterMapInterface> {
52 template <register_map_
interface_options_enum option>
55 std::integral_constant<register_map_interface_options_enum, option>>;
59 oneapi::experimental::detail::PropKind::Pipelined> {
60 template <
int pipeline_directive_or_initiation_
interval>
63 std::integral_constant<int, pipeline_directive_or_initiation_interval>>;
68 oneapi::experimental::detail::PropKind::FPGACluster> {
69 template <fpga_cluster_options_enum option>
72 std::integral_constant<fpga_cluster_options_enum, option>>;
100 template <
int pipeline_directive_or_initiation_interval = -1>
102 pipeline_directive_or_initiation_interval>
119 namespace ext::oneapi::experimental {
120 template <
typename T,
typename PropertyListT>
122 intel::experimental::streaming_interface_key,
125 template <
typename T,
typename PropertyListT>
127 intel::experimental::register_map_interface_key,
130 template <
typename T,
typename PropertyListT>
132 intel::experimental::pipelined_key,
136 template <
typename T,
typename PropertyListT>
138 intel::experimental::fpga_cluster_key,
142 template <auto &f,
typename PropertyListT>
147 template <auto &f,
typename PropertyListT>
153 template <
intel::experimental::streaming_
interface_options_enum Stall_Free>
155 intel::experimental::streaming_interface_key::value_t<Stall_Free>> {
156 static constexpr
const char *
name =
"sycl-streaming-interface";
160 template <
intel::experimental::register_map_
interface_options_enum Wait>
162 intel::experimental::register_map_interface_key::value_t<Wait>> {
163 static constexpr
const char *
name =
"sycl-register-map-interface";
169 static constexpr
const char *
name =
"sycl-pipelined";
173 template <
intel::experimental::fpga_cluster_options_enum ClusterType>
175 intel::experimental::fpga_cluster_key::value_t<ClusterType>> {
176 static constexpr
const char *
name =
"sycl-fpga-cluster";
streaming_interface_options_enum
@ remove_downstream_stall
@ accept_downstream_stall
constexpr register_map_interface_key::value_t< register_map_interface_options_enum::wait_for_done_write > register_map_interface_wait_for_done_write
constexpr register_map_interface_key::value_t< register_map_interface_options_enum::do_not_wait_for_done_write > register_map_interface_do_not_wait_for_done_write
constexpr fpga_cluster_key::value_t< fpga_cluster_options_enum::stall_free > stall_free_clusters
constexpr streaming_interface_key::value_t< option > streaming_interface
constexpr streaming_interface_key::value_t< streaming_interface_options_enum::accept_downstream_stall > streaming_interface_accept_downstream_stall
constexpr fpga_cluster_key::value_t< fpga_cluster_options_enum::stall_enable > stall_enable_clusters
fpga_cluster_options_enum
constexpr fpga_cluster_key::value_t< option > fpga_cluster
constexpr pipelined_key::value_t< pipeline_directive_or_initiation_interval > pipelined
register_map_interface_options_enum
@ do_not_wait_for_done_write
constexpr streaming_interface_key::value_t< streaming_interface_options_enum::remove_downstream_stall > streaming_interface_remove_downstream_stall
constexpr register_map_interface_key::value_t< option > register_map_interface