mkl-devel-dpcpp 2025.0.0__py2.py3-none-manylinux_2_28_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mkl-devel-dpcpp might be problematic. Click here for more details.
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/bfloat16.hpp +26 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/blas/buffer.hpp +42 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/blas/buffer_decls.hpp +880 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/blas/types.hpp +60 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/blas/usm.hpp +42 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/blas/usm_decls.hpp +1240 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/blas.hpp +33 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/dft.hpp +253 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/dfti.hpp +22 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/exceptions.hpp +110 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/experimental/data_fitting/interpolate.hpp +67 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/experimental/data_fitting/spline_and_data_params.hpp +68 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/experimental/data_fitting/splines.hpp +177 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/experimental/data_fitting.hpp +22 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/export.hpp +25 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/lapack/concepts.hpp +55 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/lapack/exceptions.hpp +75 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/lapack/lapack.hpp +1095 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/lapack/scratchpad.hpp +106 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/lapack.hpp +23 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/detail/engine_base.hpp +48 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/bernoulli_impl.hpp +89 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/beta_impl.hpp +464 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/bits_impl.hpp +71 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/distribution_base.hpp +81 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/engine_base.hpp +43 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/engine_helpers_base.hpp +54 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/exponential_impl.hpp +116 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/gamma_impl.hpp +285 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/gaussian_impl.hpp +270 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/lognormal_impl.hpp +105 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/mcg31m1_helpers_impl.hpp +117 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/mcg31m1_impl.hpp +223 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/mcg59_helpers_impl.hpp +118 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/mcg59_impl.hpp +266 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/mrg32k3a_helpers_impl.hpp +125 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/mrg32k3a_impl.hpp +385 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/mrg32k3a_skip_ahead_matrix.hpp +3668 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/philox4x32x10_helpers_impl.hpp +141 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/philox4x32x10_impl.hpp +552 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/poisson_impl.hpp +355 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/types.hpp +58 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/uniform_bits_impl.hpp +51 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +289 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/detail/vm_wrappers.hpp +183 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/distributions.hpp +637 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/engine_helpers.hpp +116 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/engines.hpp +187 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/functions.hpp +59 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device/types.hpp +74 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/device.hpp +29 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/distributions.hpp +1913 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/engines.hpp +788 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng/functions.hpp +163 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/rng.hpp +22 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/spblas/sparse_auxiliary.hpp +111 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/spblas/sparse_operations.hpp +446 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/spblas/sparse_structures.hpp +193 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/spblas.hpp +32 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/stats.hpp +356 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/types.hpp +321 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/buffer.hpp +3529 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/decls.hpp +280 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/device/detail/decls.hpp +81 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/device/detail/dispatch.hpp +1059 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/device/detail/ep.hpp +861 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/device/detail/ha.hpp +860 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/device/detail/la.hpp +860 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/device/detail/rts.hpp +4608 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/device/detail/scalar.hpp +8963 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/device/vm.hpp +460 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/span.hpp +3813 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm/usm.hpp +3581 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl/vm.hpp +30 -0
- mkl_devel_dpcpp-2025.0.0.data/data/include/oneapi/mkl.hpp +34 -0
- mkl_devel_dpcpp-2025.0.0.data/data/lib/libmkl_sycl.a +0 -0
- mkl_devel_dpcpp-2025.0.0.data/data/lib/libmkl_sycl.so +1 -0
- mkl_devel_dpcpp-2025.0.0.dist-info/LICENSE.txt +25 -0
- mkl_devel_dpcpp-2025.0.0.dist-info/METADATA +24 -0
- mkl_devel_dpcpp-2025.0.0.dist-info/RECORD +82 -0
- mkl_devel_dpcpp-2025.0.0.dist-info/WHEEL +6 -0
- mkl_devel_dpcpp-2025.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
* Copyright 2019-2024 Intel Corporation.
|
|
3
|
+
*
|
|
4
|
+
* This software and the related documents are Intel copyrighted materials, and
|
|
5
|
+
* your use of them is governed by the express license under which they were
|
|
6
|
+
* provided to you (License). Unless the License provides otherwise, you may not
|
|
7
|
+
* use, modify, copy, publish, distribute, disclose or transmit this software or
|
|
8
|
+
* the related documents without Intel's prior written permission.
|
|
9
|
+
*
|
|
10
|
+
* This software and the related documents are provided as is, with no express
|
|
11
|
+
* or implied warranties, other than those that are expressly stated in the
|
|
12
|
+
* License.
|
|
13
|
+
*******************************************************************************/
|
|
14
|
+
|
|
15
|
+
#ifndef _ONEAPI_MKL_VM_DECLS_HPP_
|
|
16
|
+
#define _ONEAPI_MKL_VM_DECLS_HPP_ 1
|
|
17
|
+
|
|
18
|
+
#include <complex>
|
|
19
|
+
#include <cstdint>
|
|
20
|
+
#include <exception>
|
|
21
|
+
|
|
22
|
+
#include <sycl/sycl.hpp>
|
|
23
|
+
|
|
24
|
+
#ifdef MKL_BUILD_DLL
|
|
25
|
+
#define ONEAPI_MKL_VM_EXPORT __declspec(dllexport)
|
|
26
|
+
#define ONEAPI_MKL_VM_EXPORT_CPP __declspec(dllexport)
|
|
27
|
+
#else
|
|
28
|
+
#define ONEAPI_MKL_VM_EXPORT extern
|
|
29
|
+
#define ONEAPI_MKL_VM_EXPORT_CPP
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
namespace oneapi {
|
|
33
|
+
namespace mkl {
|
|
34
|
+
|
|
35
|
+
#ifndef _ONEAPI_MKL_SLICE_
|
|
36
|
+
#define _ONEAPI_MKL_SLICE_ 1
|
|
37
|
+
struct slice {
|
|
38
|
+
size_t start;
|
|
39
|
+
size_t size;
|
|
40
|
+
int64_t stride;
|
|
41
|
+
|
|
42
|
+
constexpr slice() : start(0), size(0), stride(0) {}
|
|
43
|
+
constexpr slice(slice const& rhs) = default;
|
|
44
|
+
|
|
45
|
+
constexpr slice(size_t _start, size_t _size, int64_t _stride)
|
|
46
|
+
: start(_start), size(_size), stride(_stride) {}
|
|
47
|
+
}; // struct slice
|
|
48
|
+
#endif // #ifndef _ONEAPI_MKL_SLICE_
|
|
49
|
+
|
|
50
|
+
namespace vm {
|
|
51
|
+
|
|
52
|
+
using event_vector = std::vector<sycl::event>;
|
|
53
|
+
|
|
54
|
+
namespace enums {
|
|
55
|
+
enum class mode : std::uint32_t {
|
|
56
|
+
not_defined = 0x0,
|
|
57
|
+
|
|
58
|
+
ha = 0x4,
|
|
59
|
+
la = 0xC,
|
|
60
|
+
ep = 0xF,
|
|
61
|
+
accuracy_mask = 0xF,
|
|
62
|
+
|
|
63
|
+
global_status_report = 0x100,
|
|
64
|
+
global_status_quiet = 0x200,
|
|
65
|
+
global_status_mask = 0x300,
|
|
66
|
+
|
|
67
|
+
slice_normal = 0x1000,
|
|
68
|
+
slice_minimum = 0x2000,
|
|
69
|
+
slice_cyclic = 0x4000,
|
|
70
|
+
slice_mask = 0x7000,
|
|
71
|
+
|
|
72
|
+
badarg_exception = 0x10000,
|
|
73
|
+
badarg_quiet = 0x20000,
|
|
74
|
+
badarg_mask = 0x30000,
|
|
75
|
+
|
|
76
|
+
fallback_enabled = 0x100000,
|
|
77
|
+
fallback_warning = 0x200000,
|
|
78
|
+
fallback_exception = 0x400000,
|
|
79
|
+
fallback_permissive = 0x800000,
|
|
80
|
+
fallback_mask = 0xF00000,
|
|
81
|
+
|
|
82
|
+
verbose_quiet = 0x1000000,
|
|
83
|
+
verbose_submit = 0x2000000,
|
|
84
|
+
verbose_call = 0x4000000,
|
|
85
|
+
verbose_mask = 0x7000000,
|
|
86
|
+
|
|
87
|
+
default_mode = (ha | global_status_quiet | slice_normal | badarg_exception |
|
|
88
|
+
fallback_permissive | verbose_quiet)
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
enum class status : std::uint32_t {
|
|
92
|
+
not_defined = 0x0,
|
|
93
|
+
success = 0x0,
|
|
94
|
+
errdom = 0x1,
|
|
95
|
+
sing = 0x2,
|
|
96
|
+
overflow = 0x4,
|
|
97
|
+
underflow = 0x8,
|
|
98
|
+
accuracy_warning = 0x80,
|
|
99
|
+
fix_all = 0xFF,
|
|
100
|
+
|
|
101
|
+
computation_empty = 0x100
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
template <typename T> struct bits_enabled {
|
|
105
|
+
static constexpr bool enabled = false;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
template <> struct bits_enabled<mode> { static constexpr bool enabled = true; };
|
|
109
|
+
|
|
110
|
+
template <> struct bits_enabled<status> {
|
|
111
|
+
static constexpr bool enabled = true;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
template <typename T>
|
|
115
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, T>::type
|
|
116
|
+
operator|(T lhs, T rhs) {
|
|
117
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(lhs) |
|
|
118
|
+
static_cast<typename std::underlying_type_t<T>>(rhs);
|
|
119
|
+
return static_cast<T>(r);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
template <typename T>
|
|
123
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, T>::type&
|
|
124
|
+
operator|=(T& lhs, T rhs) {
|
|
125
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(lhs) |
|
|
126
|
+
static_cast<typename std::underlying_type_t<T>>(rhs);
|
|
127
|
+
lhs = static_cast<T>(r);
|
|
128
|
+
return lhs;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
template <typename T>
|
|
132
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, T>::type
|
|
133
|
+
operator&(T lhs, T rhs) {
|
|
134
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(lhs) &
|
|
135
|
+
static_cast<typename std::underlying_type_t<T>>(rhs);
|
|
136
|
+
return static_cast<T>(r);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
template <typename T>
|
|
140
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, T>::type
|
|
141
|
+
operator&=(T& lhs, T rhs) {
|
|
142
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(lhs) &
|
|
143
|
+
static_cast<typename std::underlying_type_t<T>>(rhs);
|
|
144
|
+
lhs = static_cast<T>(r);
|
|
145
|
+
return lhs;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
template <typename T>
|
|
149
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, T>::type
|
|
150
|
+
operator^(T lhs, T rhs) {
|
|
151
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(lhs) ^
|
|
152
|
+
static_cast<typename std::underlying_type_t<T>>(rhs);
|
|
153
|
+
return static_cast<T>(r);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
template <typename T>
|
|
157
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, T>::type
|
|
158
|
+
operator^=(T& lhs, T rhs) {
|
|
159
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(lhs) ^
|
|
160
|
+
static_cast<typename std::underlying_type_t<T>>(rhs);
|
|
161
|
+
lhs = static_cast<T>(r);
|
|
162
|
+
return lhs;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
template <typename T>
|
|
166
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, bool>::type
|
|
167
|
+
operator!(T v) {
|
|
168
|
+
return (0 == static_cast<typename std::underlying_type_t<T>>(v));
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
template <typename T>
|
|
172
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, bool>::type
|
|
173
|
+
has_none(T v, T mask) {
|
|
174
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(v) &
|
|
175
|
+
static_cast<typename std::underlying_type_t<T>>(mask);
|
|
176
|
+
return (0 == r);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
template <typename T>
|
|
180
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, bool>::type
|
|
181
|
+
has_any(T v, T mask) {
|
|
182
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(v) &
|
|
183
|
+
static_cast<typename std::underlying_type_t<T>>(mask);
|
|
184
|
+
return (0 != r);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
template <typename T>
|
|
188
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, bool>::type
|
|
189
|
+
has_all(T v, T mask) {
|
|
190
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(v) &
|
|
191
|
+
static_cast<typename std::underlying_type_t<T>>(mask);
|
|
192
|
+
return (static_cast<typename std::underlying_type_t<T>>(mask) == r);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
template <typename T>
|
|
196
|
+
constexpr typename std::enable_if<bits_enabled<T>::enabled, bool>::type
|
|
197
|
+
has_only(T v, T mask) {
|
|
198
|
+
auto r = static_cast<typename std::underlying_type_t<T>>(v) ^
|
|
199
|
+
static_cast<typename std::underlying_type_t<T>>(mask);
|
|
200
|
+
return (0 == r);
|
|
201
|
+
}
|
|
202
|
+
} // namespace enums
|
|
203
|
+
|
|
204
|
+
using enums::mode;
|
|
205
|
+
using enums::status;
|
|
206
|
+
|
|
207
|
+
namespace detail {
|
|
208
|
+
using std::int64_t;
|
|
209
|
+
namespace one_vm = oneapi::mkl::vm;
|
|
210
|
+
|
|
211
|
+
struct ONEAPI_MKL_VM_EXPORT_CPP error_handler_base {
|
|
212
|
+
virtual ~error_handler_base() {}
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
template <typename T>
|
|
216
|
+
struct ONEAPI_MKL_VM_EXPORT_CPP error_handler : public error_handler_base {
|
|
217
|
+
bool enabled_;
|
|
218
|
+
bool is_usm_;
|
|
219
|
+
|
|
220
|
+
sycl::buffer<one_vm::status, 1> buf_status_;
|
|
221
|
+
one_vm::status* usm_status_;
|
|
222
|
+
std::int64_t len_;
|
|
223
|
+
|
|
224
|
+
one_vm::status status_to_fix_;
|
|
225
|
+
T fixup_value_;
|
|
226
|
+
bool copy_sign_;
|
|
227
|
+
|
|
228
|
+
error_handler()
|
|
229
|
+
: enabled_{false}, is_usm_{false},
|
|
230
|
+
|
|
231
|
+
buf_status_{sycl::buffer<one_vm::status, 1>(1)}, usm_status_{nullptr},
|
|
232
|
+
len_{0}, status_to_fix_{one_vm::status::not_defined}, fixup_value_{T{}},
|
|
233
|
+
copy_sign_{false} {}
|
|
234
|
+
|
|
235
|
+
error_handler(one_vm::status status_to_fix, T fixup_value,
|
|
236
|
+
bool copy_sign = false)
|
|
237
|
+
: enabled_{true}, is_usm_{false},
|
|
238
|
+
|
|
239
|
+
buf_status_{sycl::buffer<one_vm::status, 1>(1)},
|
|
240
|
+
usm_status_{nullptr}, len_{0}, status_to_fix_{status_to_fix},
|
|
241
|
+
fixup_value_{fixup_value}, copy_sign_{copy_sign} {}
|
|
242
|
+
|
|
243
|
+
error_handler(one_vm::status* array, std::int64_t len = 1,
|
|
244
|
+
one_vm::status status_to_fix = one_vm::status::not_defined,
|
|
245
|
+
T fixup_value = {}, bool copy_sign = false)
|
|
246
|
+
: enabled_{true}, is_usm_{true},
|
|
247
|
+
|
|
248
|
+
buf_status_{sycl::buffer<one_vm::status, 1>(1)},
|
|
249
|
+
usm_status_{array}, len_{len}, status_to_fix_{status_to_fix},
|
|
250
|
+
fixup_value_{fixup_value}, copy_sign_{copy_sign} {}
|
|
251
|
+
|
|
252
|
+
error_handler(sycl::buffer<one_vm::status, 1>& buf, std::int64_t len = 1,
|
|
253
|
+
one_vm::status status_to_fix = one_vm::status::not_defined,
|
|
254
|
+
T fixup_value = {}, bool copy_sign = false)
|
|
255
|
+
: enabled_{true}, is_usm_{false},
|
|
256
|
+
|
|
257
|
+
buf_status_{buf}, usm_status_{nullptr}, len_{len},
|
|
258
|
+
status_to_fix_{status_to_fix}, fixup_value_{fixup_value},
|
|
259
|
+
copy_sign_{copy_sign} {}
|
|
260
|
+
}; // struct error_handler
|
|
261
|
+
|
|
262
|
+
} // namespace detail
|
|
263
|
+
|
|
264
|
+
using detail::error_handler;
|
|
265
|
+
|
|
266
|
+
// Service functions
|
|
267
|
+
ONEAPI_MKL_VM_EXPORT oneapi::mkl::vm::mode get_mode(sycl::queue& queue);
|
|
268
|
+
ONEAPI_MKL_VM_EXPORT oneapi::mkl::vm::mode
|
|
269
|
+
set_mode(sycl::queue& queue, oneapi::mkl::vm::mode new_mode);
|
|
270
|
+
|
|
271
|
+
ONEAPI_MKL_VM_EXPORT oneapi::mkl::vm::status get_status(sycl::queue& queue);
|
|
272
|
+
ONEAPI_MKL_VM_EXPORT oneapi::mkl::vm::status
|
|
273
|
+
set_status(sycl::queue& queue, oneapi::mkl::vm::status new_status);
|
|
274
|
+
ONEAPI_MKL_VM_EXPORT oneapi::mkl::vm::status clear_status(sycl::queue& queue);
|
|
275
|
+
|
|
276
|
+
} // namespace vm
|
|
277
|
+
} // namespace mkl
|
|
278
|
+
} // namespace oneapi
|
|
279
|
+
|
|
280
|
+
#endif // ifndef _ONEAPI_MKL_VM_DECLS_HPP_
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
* Copyright 2019-2024 Intel Corporation.
|
|
3
|
+
*
|
|
4
|
+
* This software and the related documents are Intel copyrighted materials, and
|
|
5
|
+
* your use of them is governed by the express license under which they were
|
|
6
|
+
* provided to you (License). Unless the License provides otherwise, you may not
|
|
7
|
+
* use, modify, copy, publish, distribute, disclose or transmit this software or
|
|
8
|
+
* the related documents without Intel's prior written permission.
|
|
9
|
+
*
|
|
10
|
+
* This software and the related documents are provided as is, with no express
|
|
11
|
+
* or implied warranties, other than those that are expressly stated in the
|
|
12
|
+
* License.
|
|
13
|
+
*******************************************************************************/
|
|
14
|
+
|
|
15
|
+
#ifndef ONEAPI_MKL_VM_DEVICE_DETAIL_DECLS_HPP
|
|
16
|
+
#define ONEAPI_MKL_VM_DEVICE_DETAIL_DECLS_HPP 1
|
|
17
|
+
|
|
18
|
+
namespace oneapi::mkl::vm::device::detail {
|
|
19
|
+
|
|
20
|
+
enum class Accuracy : int {
|
|
21
|
+
kNotAvailable = -1,
|
|
22
|
+
kNA = kNotAvailable,
|
|
23
|
+
|
|
24
|
+
kNotSpecified = 0,
|
|
25
|
+
kNS = kNotSpecified,
|
|
26
|
+
|
|
27
|
+
kCorrectlyRounded = 15,
|
|
28
|
+
kCR = kCorrectlyRounded,
|
|
29
|
+
|
|
30
|
+
kHigh = 12,
|
|
31
|
+
kHA = kHigh,
|
|
32
|
+
|
|
33
|
+
kLower = 8,
|
|
34
|
+
kLA = kLower,
|
|
35
|
+
|
|
36
|
+
kEnhancedPerformance = 1,
|
|
37
|
+
kEP = kEnhancedPerformance,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
struct AccuracyHA {
|
|
41
|
+
static constexpr Accuracy a = Accuracy::kHigh;
|
|
42
|
+
};
|
|
43
|
+
struct AccuracyLA {
|
|
44
|
+
static constexpr Accuracy a = Accuracy::kLower;
|
|
45
|
+
};
|
|
46
|
+
struct AccuracyEP {
|
|
47
|
+
static constexpr Accuracy a = Accuracy::kEnhancedPerformance;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
namespace mode {
|
|
51
|
+
constexpr AccuracyHA ha;
|
|
52
|
+
constexpr AccuracyLA la;
|
|
53
|
+
constexpr AccuracyEP ep;
|
|
54
|
+
constexpr AccuracyHA not_defined;
|
|
55
|
+
} // namespace mode
|
|
56
|
+
|
|
57
|
+
constexpr AccuracyHA DefaultAccuracy;
|
|
58
|
+
|
|
59
|
+
enum class Feature : int {
|
|
60
|
+
kNotAvailable = -1,
|
|
61
|
+
kNA = kNotAvailable,
|
|
62
|
+
|
|
63
|
+
kNotSpecified = 0,
|
|
64
|
+
kNS = kNotSpecified,
|
|
65
|
+
|
|
66
|
+
kGeneric = 1,
|
|
67
|
+
kGE = kGeneric,
|
|
68
|
+
|
|
69
|
+
kTailored = 2,
|
|
70
|
+
kTA = kTailored,
|
|
71
|
+
|
|
72
|
+
kDoublePrecisionRequired = 3,
|
|
73
|
+
kDR = kDoublePrecisionRequired,
|
|
74
|
+
|
|
75
|
+
kSinglePrecisionOnly = 4,
|
|
76
|
+
kSO = kSinglePrecisionOnly,
|
|
77
|
+
}; // enum Feature
|
|
78
|
+
|
|
79
|
+
} // namespace oneapi::mkl::vm::device::detail
|
|
80
|
+
|
|
81
|
+
#endif // #ifndef ONEAPI_MKL_VM_DEVICE_DETAIL_DECLS_HPP
|