16 #include <string_view>
17 #include <type_traits>
20 inline namespace _V1 {
22 namespace intel::experimental {
25 template <
typename T,
typename PropertyListT>
class fpga_mem;
28 template <
typename PropertyT,
typename... Ts>
36 oneapi::experimental::detail::PropKind::Resource> {
37 template <resource_enum Resource>
40 std::integral_constant<resource_enum, Resource>>;
44 oneapi::experimental::detail::PropKind::NumBanks> {
45 template <
size_t Elements>
52 oneapi::experimental::detail::PropKind::StrideSize> {
53 template <
size_t Elements>
59 oneapi::experimental::detail::PropKind::WordSize> {
60 template <
size_t Elements>
67 oneapi::experimental::detail::PropKind::BiDirectionalPorts> {
68 template <
bool Enable>
74 oneapi::experimental::detail::PropKind::Clock2x> {
75 template <
bool Enable>
83 oneapi::experimental::detail::PropKind::RAMStitching> {
84 template <ram_stitching_enum RamStitching>
87 std::integral_constant<ram_stitching_enum, RamStitching>>;
92 oneapi::experimental::detail::PropKind::MaxPrivateCopies> {
100 oneapi::experimental::detail::PropKind::NumReplicates> {
129 template <ram_stitching_enum D>
144 namespace oneapi::experimental {
147 template <
typename T,
typename PropertyListT>
151 template <
typename T,
typename PropertyListT>
155 template <
typename T,
typename PropertyListT>
159 template <
typename T,
typename PropertyListT>
163 template <
typename T,
typename PropertyListT>
167 template <
typename T,
typename PropertyListT>
171 template <
typename T,
typename PropertyListT>
175 template <
typename T,
typename PropertyListT>
179 template <
typename T,
typename PropertyListT>
186 template <
intel::experimental::resource_enum Value>
188 static constexpr
const char *
name =
"sycl-resource";
189 static constexpr
const char *
value =
193 template <
size_t Value>
195 static constexpr
const char *
name =
"sycl-num-banks";
196 static constexpr
size_t value = Value;
198 template <
size_t Value>
200 static constexpr
const char *
name =
"sycl-stride-size";
201 static constexpr
size_t value = Value;
203 template <
size_t Value>
205 static constexpr
const char *
name =
"sycl-word-size";
206 static constexpr
size_t value = Value;
208 template <
bool Value>
210 intel::experimental::bi_directional_ports_key::value_t<Value>> {
212 static constexpr
const char *
name =
213 (Value ?
"sycl-bi-directional-ports-true"
214 :
"sycl-bi-directional-ports-false");
215 static constexpr std::nullptr_t
value =
nullptr;
217 template <
bool Value>
220 static constexpr
const char *
name =
221 (Value ?
"sycl-clock-2x-true" :
"sycl-clock-2x-false");
222 static constexpr std::nullptr_t
value =
nullptr;
224 template <
intel::experimental::ram_stitching_enum Value>
226 intel::experimental::ram_stitching_key::value_t<Value>> {
227 static constexpr
const char *
name =
"sycl-ram-stitching";
230 static constexpr
size_t value =
static_cast<size_t>(
233 template <
size_t Value>
235 intel::experimental::max_private_copies_key::value_t<Value>> {
236 static constexpr
const char *
name =
"sycl-max-private-copies";
237 static constexpr
size_t value = Value;
239 template <
size_t Value>
241 intel::experimental::num_replicates_key::value_t<Value>> {
242 static constexpr
const char *
name =
"sycl-num-replicates";
243 static constexpr
size_t value = Value;
constexpr bi_directional_ports_key::value_t< true > bi_directional_ports_true
constexpr clock_2x_key::value_t< true > clock_2x_true
constexpr max_private_copies_key::value_t< N > max_private_copies
constexpr clock_2x_key::value_t< B > clock_2x
constexpr resource_key::value_t< R > resource
constexpr num_banks_key::value_t< E > num_banks
constexpr ram_stitching_key::value_t< D > ram_stitching
sycl::ext::oneapi::experimental::property_value< PropertyT, Ts... > property_value
constexpr resource_key::value_t< resource_enum::block_ram > resource_block_ram
constexpr ram_stitching_key::value_t< ram_stitching_enum::max_fmax > ram_stitching_max_fmax
constexpr bi_directional_ports_key::value_t< B > bi_directional_ports
constexpr word_size_key::value_t< E > word_size
constexpr clock_2x_key::value_t< false > clock_2x_false
constexpr resource_key::value_t< resource_enum::mlab > resource_mlab
constexpr ram_stitching_key::value_t< ram_stitching_enum::min_ram > ram_stitching_min_ram
constexpr bi_directional_ports_key::value_t< false > bi_directional_ports_false
constexpr num_replicates_key::value_t< N > num_replicates
constexpr stride_size_key::value_t< E > stride_size