DPC++ Runtime
Runtime libraries for oneAPI DPC++
backend_types.hpp
Go to the documentation of this file.
1 //==-------------- backend_types.hpp - SYCL backend types ------------------==//
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/detail/defines.hpp>
13 
14 #include <fstream>
15 #include <istream>
16 #include <string>
17 
18 namespace sycl {
20 
21 enum class backend : char {
22  host __SYCL2020_DEPRECATED("'host' backend is no longer supported") = 0,
23  opencl = 1,
25  level_zero __SYCL2020_DEPRECATED("use 'ext_oneapi_level_zero' instead") =
27  ext_oneapi_cuda = 3,
28  cuda __SYCL2020_DEPRECATED("use 'ext_oneapi_cuda' instead") = ext_oneapi_cuda,
29  all = 4,
31  esimd_cpu __SYCL2020_DEPRECATED("use 'ext_intel_esimd_emulator' instead") =
33  ext_oneapi_hip = 6,
34  hip __SYCL2020_DEPRECATED("use 'ext_oneapi_hip' instead") = ext_oneapi_hip,
35 };
36 
37 template <backend Backend> class backend_traits;
38 
39 template <backend Backend, typename SYCLObjectT>
40 using backend_input_t =
41  typename backend_traits<Backend>::template input_type<SYCLObjectT>;
42 template <backend Backend, typename SYCLObjectT>
43 using backend_return_t =
44  typename backend_traits<Backend>::template return_type<SYCLObjectT>;
45 
46 inline std::ostream &operator<<(std::ostream &Out, backend be) {
47  switch (be) {
48  case backend::host:
49  Out << "host";
50  break;
51  case backend::opencl:
52  Out << "opencl";
53  break;
54  case backend::ext_oneapi_level_zero:
55  Out << "ext_oneapi_level_zero";
56  break;
57  case backend::ext_oneapi_cuda:
58  Out << "ext_oneapi_cuda";
59  break;
60  case backend::ext_intel_esimd_emulator:
61  Out << "ext_intel_esimd_emulator";
62  break;
63  case backend::ext_oneapi_hip:
64  Out << "ext_oneapi_hip";
65  break;
66  case backend::all:
67  Out << "all";
68  }
69  return Out;
70 }
71 
72 } // __SYCL_INLINE_VER_NAMESPACE(_V1)
73 } // namespace sycl
sycl::_V1::__SYCL2020_DEPRECATED
signed char __SYCL2020_DEPRECATED
Definition: aliases.hpp:96
sycl::_V1::backend
backend
Definition: backend_types.hpp:21
sycl::_V1::backend::ext_oneapi_level_zero
@ ext_oneapi_level_zero
__SYCL_INLINE_VER_NAMESPACE
#define __SYCL_INLINE_VER_NAMESPACE(X)
Definition: defines_elementary.hpp:11
sycl::_V1::backend::ext_oneapi_hip
@ ext_oneapi_hip
sycl
---— Error handling, matching OpenCL plugin semantics.
Definition: access.hpp:14
sycl::_V1::backend::all
@ all
sycl::_V1::backend::ext_intel_esimd_emulator
@ ext_intel_esimd_emulator
sycl::_V1::backend::ext_oneapi_cuda
@ ext_oneapi_cuda
sycl::_V1::backend_input_t
typename backend_traits< Backend >::template input_type< SyclType > backend_input_t
Definition: backend.hpp:72
defines.hpp
sycl::_V1::backend_return_t
typename backend_traits< Backend >::template return_type< SyclType > backend_return_t
Definition: backend.hpp:76
iostream_proxy.hpp
sycl::_V1::backend::opencl
@ opencl
sycl::_V1::operator<<
std::ostream & operator<<(std::ostream &Out, backend be)
Definition: backend_types.hpp:46