DPC++ Runtime
Runtime libraries for oneAPI DPC++
task_sequence_properties.hpp
Go to the documentation of this file.
1 //==-- task_sequence_properties.hpp - Specific properties of task_sequence -==//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #pragma once
10 
11 #include <sycl/ext/oneapi/properties/property.hpp> // for PropKind
12 #include <sycl/ext/oneapi/properties/property_value.hpp> // for property_value
13 
14 #include <type_traits> // for true_type
15 
16 namespace sycl {
17 inline namespace _V1 {
18 namespace ext::intel::experimental {
19 // Forward declare a class that these properties can be applied to
20 template <auto &f, typename PropertyListT> class task_sequence;
21 
22 // Make sure that we are using the right namespace
23 template <typename PropertyT, typename... Ts>
24 using property_value =
26 
28  oneapi::experimental::detail::PropKind::Balanced> {
30 };
31 
34  oneapi::experimental::detail::PropKind::InvocationCapacity> {
35  template <unsigned int Size>
37  std::integral_constant<unsigned int, Size>>;
38 };
39 
42  oneapi::experimental::detail::PropKind::ResponseCapacity> {
43  template <unsigned int Size>
45  std::integral_constant<unsigned int, Size>>;
46 };
47 
49 template <unsigned int Size>
51 template <unsigned int Size>
53 
54 } // namespace ext::intel::experimental
55 
56 namespace ext::oneapi::experimental {
57 template <auto &f, typename PropertyListT>
58 struct is_property_key_of<intel::experimental::balanced_key,
59  intel::experimental::task_sequence<f, PropertyListT>>
60  : std::true_type {};
61 template <auto &f, typename PropertyListT>
62 struct is_property_key_of<intel::experimental::invocation_capacity_key,
63  intel::experimental::task_sequence<f, PropertyListT>>
64  : std::true_type {};
65 template <auto &f, typename PropertyListT>
66 struct is_property_key_of<intel::experimental::response_capacity_key,
67  intel::experimental::task_sequence<f, PropertyListT>>
68  : std::true_type {};
69 } // namespace ext::oneapi::experimental
70 } // namespace _V1
71 } // namespace sycl
constexpr invocation_capacity_key::value_t< Size > invocation_capacity
sycl::ext::oneapi::experimental::property_value< PropertyT, Ts... > property_value
constexpr balanced_key::value_t balanced
constexpr response_capacity_key::value_t< Size > response_capacity
Definition: access.hpp:18