DPC++ Runtime
Runtime libraries for oneAPI DPC++
kernel_execution_properties.hpp
Go to the documentation of this file.
1 //==----- gpu_kernel_properties.hpp - Kernel properties for Intel GPUs ---==//
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, IsRunti...
12 
13 #include <cstdint> // for uint16_t
14 #include <type_traits> // for true_type
15 
16 namespace sycl {
17 inline namespace _V1 {
18 namespace ext::intel::experimental {
19 
20 template <typename T, typename PropertyListT> class gpu_kernel_attribute;
21 
22 enum class cache_config_enum : std::uint16_t { large_slm, large_data };
23 
24 inline constexpr cache_config_enum large_slm =
26 inline constexpr cache_config_enum large_data =
28 
29 struct cache_config {
32 };
33 
35 
36 inline bool operator==(const cache_config &lhs,
37  const cache_config &rhs) {
38  return lhs.value == rhs.value;
39 }
40 inline bool operator!=(const cache_config &lhs,
41  const cache_config &rhs) {
42  return !(lhs == rhs);
43 }
44 
45 } // namespace ext::intel::experimental
46 
47 namespace ext::oneapi::experimental {
48 template <>
50  : std::true_type {};
51 
52 template <typename T, typename PropertyListT>
56  : std::true_type {};
57 
58 namespace detail {
59 template <> struct PropertyToKind<intel::experimental::cache_config_key> {
60  static constexpr PropKind Kind = PropKind::CacheConfig;
61 };
62 
63 template <>
65  : std::true_type {};
66 
67 } // namespace detail
68 } // namespace ext::oneapi::experimental
69 } // namespace _V1
70 } // namespace sycl
bool operator==(const cache_config &lhs, const cache_config &rhs)
bool operator!=(const cache_config &lhs, const cache_config &rhs)
Definition: access.hpp:18