DPC++ Runtime
Runtime libraries for oneAPI DPC++
queue_properties.hpp
Go to the documentation of this file.
1 //==----------- queue_properties.hpp --- SYCL queue properties -------------==//
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 
13 
15 namespace sycl {
16 namespace property {
17 namespace queue {
18 class in_order : public detail::DataLessProperty<detail::InOrder> {};
20  : public detail::DataLessProperty<detail::QueueEnableProfiling> {};
21 } // namespace queue
22 } // namespace property
23 
24 namespace ext {
25 namespace oneapi {
26 
27 namespace property {
28 namespace queue {
30  ::cl::sycl::detail::DiscardEvents> {};
31 } // namespace queue
32 } // namespace property
33 
34 namespace cuda {
35 namespace property {
36 namespace queue {
38  ::cl::sycl::detail::UseDefaultStream> {};
39 } // namespace queue
40 } // namespace property
41 } // namespace cuda
42 } // namespace oneapi
43 } // namespace ext
44 
45 namespace property {
46 namespace queue {
49  class use_default_stream : public ::cl::sycl::ext::oneapi::cuda::property::
50  queue::use_default_stream {};
51 } // namespace cuda
52 } // namespace queue
53 } // namespace property
54 
55 // Forward declaration
56 class queue;
57 
58 // Queue property trait specializations
59 template <> struct is_property<property::queue::in_order> : std::true_type {};
60 template <>
61 struct is_property<property::queue::enable_profiling> : std::true_type {};
62 template <>
63 struct is_property<ext::oneapi::property::queue::discard_events>
64  : std::true_type {};
65 template <>
66 struct is_property<property::queue::cuda::use_default_stream> : std::true_type {
67 };
68 template <>
69 struct is_property<ext::oneapi::cuda::property::queue::use_default_stream>
70  : std::true_type {};
71 
72 template <>
73 struct is_property_of<property::queue::in_order, queue> : std::true_type {};
74 template <>
75 struct is_property_of<property::queue::enable_profiling, queue>
76  : std::true_type {};
77 template <>
78 struct is_property_of<ext::oneapi::property::queue::discard_events, queue>
79  : std::true_type {};
80 template <>
81 struct is_property_of<property::queue::cuda::use_default_stream, queue>
82  : std::true_type {};
83 template <>
84 struct is_property_of<ext::oneapi::cuda::property::queue::use_default_stream,
85  queue> : std::true_type {};
86 
87 } // namespace sycl
88 } // __SYCL_INLINE_NAMESPACE(cl)
property_traits.hpp
__SYCL2020_DEPRECATED
#define __SYCL2020_DEPRECATED(message)
Definition: defines_elementary.hpp:56
sycl
Definition: invoke_simd.hpp:68
cl::sycl::property::queue::in_order
Definition: queue_properties.hpp:18
cl::sycl::ext::oneapi::cuda::property::queue::use_default_stream
Definition: queue_properties.hpp:37
cl::sycl::queue
Encapsulates a single SYCL queue which schedules kernels on a SYCL device.
Definition: queue.hpp:103
cl::sycl::info::queue
queue
Definition: info_desc.hpp:229
cl::sycl::is_property
Definition: property_traits.hpp:15
cl::sycl::detail::DataLessProperty
Definition: property_helper.hpp:62
cl::sycl::is_property_of
Definition: property_traits.hpp:18
cl::sycl::property::queue::enable_profiling
Definition: queue_properties.hpp:19
cl
We provide new interfaces for matrix muliply in this patch:
Definition: access.hpp:13
property_helper.hpp
cl::sycl::instead
std::uint8_t instead
Definition: aliases.hpp:68
cl::sycl::ext::oneapi::property::queue::discard_events
Definition: queue_properties.hpp:29
__SYCL_INLINE_NAMESPACE
#define __SYCL_INLINE_NAMESPACE(X)
Definition: defines_elementary.hpp:12