mkl-devel-dpcpp 2025.1.0__py2.py3-none-win_amd64.whl → 2025.2.0__py2.py3-none-win_amd64.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.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl.lib +0 -0
- mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_dll.lib +0 -0
- mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_rng_dll.lib +0 -0
- mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/METADATA +4 -3
- mkl_devel_dpcpp-2025.2.0.dist-info/RECORD +15 -0
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/bfloat16.hpp +0 -26
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/buffer.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/buffer_decls.hpp +0 -880
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/spec.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/types.hpp +0 -60
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/usm.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/usm_decls.hpp +0 -1240
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas.hpp +0 -34
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dft/spec.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dft.hpp +0 -254
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dfti.hpp +0 -22
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/exceptions.hpp +0 -110
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/interpolate.hpp +0 -67
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/spline_and_data_params.hpp +0 -68
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/splines.hpp +0 -177
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting.hpp +0 -22
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/export.hpp +0 -25
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/concepts.hpp +0 -55
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/exceptions.hpp +0 -75
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/lapack.hpp +0 -1096
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/scratchpad.hpp +0 -107
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/spec.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack.hpp +0 -24
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/detail/engine_base.hpp +0 -48
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/bernoulli_impl.hpp +0 -89
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/beta_impl.hpp +0 -463
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/bits_impl.hpp +0 -71
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/distribution_base.hpp +0 -85
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_base.hpp +0 -43
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_helpers_base.hpp +0 -54
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/exponential_impl.hpp +0 -116
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/gamma_impl.hpp +0 -285
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/gaussian_impl.hpp +0 -270
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/geometric_impl.hpp +0 -99
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/lognormal_impl.hpp +0 -105
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_helpers_impl.hpp +0 -117
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_impl.hpp +0 -223
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_helpers_impl.hpp +0 -118
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_impl.hpp +0 -266
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_helpers_impl.hpp +0 -125
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_impl.hpp +0 -385
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_skip_ahead_matrix.hpp +0 -3668
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_helpers_impl.hpp +0 -141
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_impl.hpp +0 -552
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/poisson_impl.hpp +0 -328
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/types.hpp +0 -58
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_bits_impl.hpp +0 -51
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +0 -287
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/vm_wrappers.hpp +0 -183
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/distributions.hpp +0 -700
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/engine_helpers.hpp +0 -116
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/engines.hpp +0 -187
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/functions.hpp +0 -59
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/types.hpp +0 -79
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device.hpp +0 -29
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/distributions.hpp +0 -1913
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/engines.hpp +0 -788
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/functions.hpp +0 -163
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/spec.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng.hpp +0 -23
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_auxiliary.hpp +0 -111
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_operations.hpp +0 -446
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_structures.hpp +0 -193
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/spec.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas.hpp +0 -33
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spec.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/stats/spec.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/stats.hpp +0 -357
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/types.hpp +0 -321
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/buffer.hpp +0 -3529
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/decls.hpp +0 -280
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/decls.hpp +0 -81
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/dispatch.hpp +0 -1059
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/ep.hpp +0 -861
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/ha.hpp +0 -860
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/la.hpp +0 -860
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/rts.hpp +0 -4608
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/scalar.hpp +0 -8963
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/vm.hpp +0 -460
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/span.hpp +0 -3813
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/spec.hpp +0 -42
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/usm.hpp +0 -3581
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm.hpp +0 -31
- mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl.hpp +0 -35
- mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
- mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
- mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
- mkl_devel_dpcpp-2025.1.0.dist-info/RECORD +0 -99
- {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_data_fitting_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_stats_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_vm_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/LICENSE.txt +0 -0
- {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/WHEEL +0 -0
- {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/*******************************************************************************
|
|
2
|
-
* Copyright (C) 2023 Intel Corporation
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing,
|
|
11
|
-
* software distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions
|
|
14
|
-
* and limitations under the License.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
-
*******************************************************************************/
|
|
19
|
-
|
|
20
|
-
#ifndef _MKL_RNG_DEVICE_ENGINE_HELPERS_HPP_
|
|
21
|
-
#define _MKL_RNG_DEVICE_ENGINE_HELPERS_HPP_
|
|
22
|
-
|
|
23
|
-
#include "oneapi/mkl/rng/device/detail/engine_helpers_base.hpp"
|
|
24
|
-
|
|
25
|
-
namespace oneapi::mkl::rng::device {
|
|
26
|
-
|
|
27
|
-
// PSEUDO-RANDOM NUMBER HOST-SIDE ENGINE HELPERS
|
|
28
|
-
|
|
29
|
-
template <typename EngineType>
|
|
30
|
-
class engine_accessor : detail::engine_accessor_base<EngineType> {
|
|
31
|
-
public:
|
|
32
|
-
EngineType load(size_t id) const {
|
|
33
|
-
return detail::engine_accessor_base<EngineType>::load(id);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
void store(EngineType engine, size_t id) const {
|
|
37
|
-
detail::engine_accessor_base<EngineType>::store(engine, id);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
private:
|
|
41
|
-
engine_accessor(sycl::buffer<std::uint32_t, 1>& state_buf, sycl::handler& cgh)
|
|
42
|
-
: detail::engine_accessor_base<EngineType>(state_buf, cgh) {}
|
|
43
|
-
friend detail::engine_descriptor_base<EngineType>;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
template <typename EngineType = philox4x32x10<>>
|
|
47
|
-
class engine_descriptor : detail::engine_descriptor_base<EngineType> {};
|
|
48
|
-
|
|
49
|
-
template <std::int32_t VecSize>
|
|
50
|
-
class engine_descriptor<philox4x32x10<VecSize>>
|
|
51
|
-
: detail::engine_descriptor_base<philox4x32x10<VecSize>> {
|
|
52
|
-
public:
|
|
53
|
-
engine_descriptor(sycl::queue& queue, sycl::range<1> range, std::uint64_t seed,
|
|
54
|
-
std::uint64_t offset)
|
|
55
|
-
: detail::engine_descriptor_base<philox4x32x10<VecSize>>(queue, range, seed, offset) {}
|
|
56
|
-
|
|
57
|
-
template <typename InitEngineFunc>
|
|
58
|
-
engine_descriptor(sycl::queue& queue, sycl::range<1> range, InitEngineFunc func)
|
|
59
|
-
: detail::engine_descriptor_base<philox4x32x10<VecSize>>(queue, range, func) {}
|
|
60
|
-
|
|
61
|
-
auto get_access(sycl::handler& cgh) {
|
|
62
|
-
return detail::engine_descriptor_base<philox4x32x10<VecSize>>::get_access(cgh);
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
template <std::int32_t VecSize>
|
|
67
|
-
class engine_descriptor<mrg32k3a<VecSize>> : detail::engine_descriptor_base<mrg32k3a<VecSize>> {
|
|
68
|
-
public:
|
|
69
|
-
engine_descriptor(sycl::queue& queue, sycl::range<1> range, std::uint32_t seed,
|
|
70
|
-
std::uint64_t offset)
|
|
71
|
-
: detail::engine_descriptor_base<mrg32k3a<VecSize>>(queue, range, seed, offset) {}
|
|
72
|
-
|
|
73
|
-
template <typename InitEngineFunc>
|
|
74
|
-
engine_descriptor(sycl::queue& queue, sycl::range<1> range, InitEngineFunc func)
|
|
75
|
-
: detail::engine_descriptor_base<mrg32k3a<VecSize>>(queue, range, func) {}
|
|
76
|
-
|
|
77
|
-
auto get_access(sycl::handler& cgh) {
|
|
78
|
-
return detail::engine_descriptor_base<mrg32k3a<VecSize>>::get_access(cgh);
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
template <std::int32_t VecSize>
|
|
83
|
-
class engine_descriptor<mcg59<VecSize>> : detail::engine_descriptor_base<mcg59<VecSize>> {
|
|
84
|
-
public:
|
|
85
|
-
engine_descriptor(sycl::queue& queue, sycl::range<1> range, std::uint64_t seed,
|
|
86
|
-
std::uint64_t offset)
|
|
87
|
-
: detail::engine_descriptor_base<mcg59<VecSize>>(queue, range, seed, offset) {}
|
|
88
|
-
|
|
89
|
-
template <typename InitEngineFunc>
|
|
90
|
-
engine_descriptor(sycl::queue& queue, sycl::range<1> range, InitEngineFunc func)
|
|
91
|
-
: detail::engine_descriptor_base<mcg59<VecSize>>(queue, range, func) {}
|
|
92
|
-
|
|
93
|
-
auto get_access(sycl::handler& cgh) {
|
|
94
|
-
return detail::engine_descriptor_base<mcg59<VecSize>>::get_access(cgh);
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
template <std::int32_t VecSize>
|
|
99
|
-
class engine_descriptor<mcg31m1<VecSize>> : detail::engine_descriptor_base<mcg31m1<VecSize>> {
|
|
100
|
-
public:
|
|
101
|
-
engine_descriptor(sycl::queue& queue, sycl::range<1> range, std::uint32_t seed,
|
|
102
|
-
std::uint64_t offset)
|
|
103
|
-
: detail::engine_descriptor_base<mcg31m1<VecSize>>(queue, range, seed, offset) {}
|
|
104
|
-
|
|
105
|
-
template <typename InitEngineFunc>
|
|
106
|
-
engine_descriptor(sycl::queue& queue, sycl::range<1> range, InitEngineFunc func)
|
|
107
|
-
: detail::engine_descriptor_base<mcg31m1<VecSize>>(queue, range, func) {}
|
|
108
|
-
|
|
109
|
-
auto get_access(sycl::handler& cgh) {
|
|
110
|
-
return detail::engine_descriptor_base<mcg31m1<VecSize>>::get_access(cgh);
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
} // namespace oneapi::mkl::rng::device
|
|
115
|
-
|
|
116
|
-
#endif // _MKL_RNG_DEVICE_ENGINE_HELPERS_HPP_
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
/*******************************************************************************
|
|
2
|
-
* Copyright (C) 2020 Intel Corporation
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing,
|
|
11
|
-
* software distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions
|
|
14
|
-
* and limitations under the License.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
-
*******************************************************************************/
|
|
19
|
-
|
|
20
|
-
#ifndef _MKL_RNG_DEVICE_ENGINES_HPP_
|
|
21
|
-
#define _MKL_RNG_DEVICE_ENGINES_HPP_
|
|
22
|
-
|
|
23
|
-
#include <limits>
|
|
24
|
-
|
|
25
|
-
#include "oneapi/mkl/rng/device/types.hpp"
|
|
26
|
-
#include "oneapi/mkl/rng/device/functions.hpp"
|
|
27
|
-
#include "oneapi/mkl/rng/device/detail/engine_base.hpp"
|
|
28
|
-
#include "oneapi/mkl/rng/device/detail/engine_helpers_base.hpp"
|
|
29
|
-
|
|
30
|
-
namespace oneapi::mkl::rng::device {
|
|
31
|
-
|
|
32
|
-
// PSEUDO-RANDOM NUMBER DEVICE-SIDE ENGINES
|
|
33
|
-
|
|
34
|
-
// Class template oneapi::mkl::rng::device::philox4x32x10
|
|
35
|
-
//
|
|
36
|
-
// Represents Philox4x32-10 counter-based pseudorandom number generator
|
|
37
|
-
//
|
|
38
|
-
// Supported parallelization methods:
|
|
39
|
-
// skip_ahead
|
|
40
|
-
//
|
|
41
|
-
template <std::int32_t VecSize>
|
|
42
|
-
class philox4x32x10 : detail::engine_base<philox4x32x10<VecSize>> {
|
|
43
|
-
public:
|
|
44
|
-
static constexpr std::uint64_t default_seed = 0;
|
|
45
|
-
|
|
46
|
-
static constexpr std::int32_t vec_size = VecSize;
|
|
47
|
-
|
|
48
|
-
philox4x32x10() : detail::engine_base<philox4x32x10<VecSize>>(default_seed) {}
|
|
49
|
-
|
|
50
|
-
philox4x32x10(std::uint64_t seed, std::uint64_t offset = 0)
|
|
51
|
-
: detail::engine_base<philox4x32x10<VecSize>>(seed, offset) {}
|
|
52
|
-
|
|
53
|
-
philox4x32x10(std::initializer_list<std::uint64_t> seed, std::uint64_t offset = 0)
|
|
54
|
-
: detail::engine_base<philox4x32x10<VecSize>>(seed.size(), seed.begin(), offset) {}
|
|
55
|
-
|
|
56
|
-
philox4x32x10(std::uint64_t seed, std::initializer_list<std::uint64_t> offset)
|
|
57
|
-
: detail::engine_base<philox4x32x10<VecSize>>(seed, offset.size(), offset.begin()) {}
|
|
58
|
-
|
|
59
|
-
philox4x32x10(std::initializer_list<std::uint64_t> seed,
|
|
60
|
-
std::initializer_list<std::uint64_t> offset)
|
|
61
|
-
: detail::engine_base<philox4x32x10<VecSize>>(seed.size(), seed.begin(), offset.size(),
|
|
62
|
-
offset.begin()) {}
|
|
63
|
-
|
|
64
|
-
private:
|
|
65
|
-
template <typename Engine>
|
|
66
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
67
|
-
|
|
68
|
-
template <typename Engine>
|
|
69
|
-
friend void skip_ahead(Engine& engine, std::initializer_list<std::uint64_t> num_to_skip);
|
|
70
|
-
|
|
71
|
-
friend class detail::engine_descriptor_base<philox4x32x10<VecSize>>;
|
|
72
|
-
|
|
73
|
-
friend class detail::engine_accessor_base<philox4x32x10<VecSize>>;
|
|
74
|
-
|
|
75
|
-
template <typename DistrType>
|
|
76
|
-
friend class detail::distribution_base;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
// Class oneapi::mkl::rng::device::mrg32k3a
|
|
80
|
-
//
|
|
81
|
-
// Represents the combined recurcive pseudorandom number generator
|
|
82
|
-
//
|
|
83
|
-
// Supported parallelization methods:
|
|
84
|
-
// skip_ahead
|
|
85
|
-
//
|
|
86
|
-
template <std::int32_t VecSize>
|
|
87
|
-
class mrg32k3a : detail::engine_base<mrg32k3a<VecSize>> {
|
|
88
|
-
public:
|
|
89
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
90
|
-
|
|
91
|
-
static constexpr std::int32_t vec_size = VecSize;
|
|
92
|
-
|
|
93
|
-
mrg32k3a() : detail::engine_base<mrg32k3a<VecSize>>(default_seed) {}
|
|
94
|
-
|
|
95
|
-
mrg32k3a(std::uint32_t seed, std::uint64_t offset = 0)
|
|
96
|
-
: detail::engine_base<mrg32k3a<VecSize>>(seed, offset) {}
|
|
97
|
-
|
|
98
|
-
mrg32k3a(std::initializer_list<std::uint32_t> seed, std::uint64_t offset = 0)
|
|
99
|
-
: detail::engine_base<mrg32k3a<VecSize>>(seed.size(), seed.begin(), offset) {}
|
|
100
|
-
|
|
101
|
-
mrg32k3a(std::uint32_t seed, std::initializer_list<std::uint64_t> offset)
|
|
102
|
-
: detail::engine_base<mrg32k3a<VecSize>>(seed, offset.size(), offset.begin()) {}
|
|
103
|
-
|
|
104
|
-
mrg32k3a(std::initializer_list<std::uint32_t> seed, std::initializer_list<std::uint64_t> offset)
|
|
105
|
-
: detail::engine_base<mrg32k3a<VecSize>>(seed.size(), seed.begin(), offset.size(),
|
|
106
|
-
offset.begin()) {}
|
|
107
|
-
|
|
108
|
-
private:
|
|
109
|
-
template <typename Engine>
|
|
110
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
111
|
-
|
|
112
|
-
template <typename Engine>
|
|
113
|
-
friend void skip_ahead(Engine& engine, std::initializer_list<std::uint64_t> num_to_skip);
|
|
114
|
-
|
|
115
|
-
friend class detail::engine_descriptor_base<mrg32k3a<VecSize>>;
|
|
116
|
-
|
|
117
|
-
friend class detail::engine_accessor_base<mrg32k3a<VecSize>>;
|
|
118
|
-
|
|
119
|
-
template <typename DistrType>
|
|
120
|
-
friend class detail::distribution_base;
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
// Class oneapi::mkl::rng::device::mcg31m1
|
|
124
|
-
//
|
|
125
|
-
//
|
|
126
|
-
//
|
|
127
|
-
// Supported parallelization methods:
|
|
128
|
-
// skip_ahead
|
|
129
|
-
//
|
|
130
|
-
template <std::int32_t VecSize>
|
|
131
|
-
class mcg31m1 : detail::engine_base<mcg31m1<VecSize>> {
|
|
132
|
-
public:
|
|
133
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
134
|
-
|
|
135
|
-
static constexpr std::int32_t vec_size = VecSize;
|
|
136
|
-
|
|
137
|
-
mcg31m1() : detail::engine_base<mcg31m1<VecSize>>(default_seed) {}
|
|
138
|
-
|
|
139
|
-
mcg31m1(std::uint32_t seed, std::uint64_t offset = 0)
|
|
140
|
-
: detail::engine_base<mcg31m1<VecSize>>(seed, offset) {}
|
|
141
|
-
|
|
142
|
-
private:
|
|
143
|
-
template <typename Engine>
|
|
144
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
145
|
-
|
|
146
|
-
friend class detail::engine_descriptor_base<mcg31m1<VecSize>>;
|
|
147
|
-
|
|
148
|
-
friend class detail::engine_accessor_base<mcg31m1<VecSize>>;
|
|
149
|
-
|
|
150
|
-
template <typename DistrType>
|
|
151
|
-
friend class detail::distribution_base;
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
// Class oneapi::mkl::rng::device::mcg59
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
-
// Supported parallelization methods:
|
|
159
|
-
// skip_ahead
|
|
160
|
-
//
|
|
161
|
-
template <std::int32_t VecSize>
|
|
162
|
-
class mcg59 : detail::engine_base<mcg59<VecSize>> {
|
|
163
|
-
public:
|
|
164
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
165
|
-
|
|
166
|
-
static constexpr std::int32_t vec_size = VecSize;
|
|
167
|
-
|
|
168
|
-
mcg59() : detail::engine_base<mcg59<VecSize>>(default_seed) {}
|
|
169
|
-
|
|
170
|
-
mcg59(std::uint64_t seed, std::uint64_t offset = 0)
|
|
171
|
-
: detail::engine_base<mcg59<VecSize>>(seed, offset) {}
|
|
172
|
-
|
|
173
|
-
private:
|
|
174
|
-
template <typename Engine>
|
|
175
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
176
|
-
|
|
177
|
-
friend class detail::engine_descriptor_base<mcg59<VecSize>>;
|
|
178
|
-
|
|
179
|
-
friend class detail::engine_accessor_base<mcg59<VecSize>>;
|
|
180
|
-
|
|
181
|
-
template <typename DistrType>
|
|
182
|
-
friend class detail::distribution_base;
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
} // namespace oneapi::mkl::rng::device
|
|
186
|
-
|
|
187
|
-
#endif // _MKL_RNG_DEVICE_ENGINES_HPP_
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/*******************************************************************************
|
|
2
|
-
* Copyright (C) 2020 Intel Corporation
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing,
|
|
11
|
-
* software distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions
|
|
14
|
-
* and limitations under the License.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
-
*******************************************************************************/
|
|
19
|
-
|
|
20
|
-
#ifndef _MKL_RNG_DEVICE_FUNCTIONS_HPP_
|
|
21
|
-
#define _MKL_RNG_DEVICE_FUNCTIONS_HPP_
|
|
22
|
-
|
|
23
|
-
#include <sycl/sycl.hpp>
|
|
24
|
-
|
|
25
|
-
#include "oneapi/mkl/rng/device/detail/distribution_base.hpp"
|
|
26
|
-
|
|
27
|
-
namespace oneapi::mkl::rng::device {
|
|
28
|
-
|
|
29
|
-
// GENERATE FUNCTIONS
|
|
30
|
-
|
|
31
|
-
template <typename Distr, typename Engine>
|
|
32
|
-
auto generate(Distr& distr, Engine& engine) ->
|
|
33
|
-
typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
|
|
34
|
-
sycl::vec<typename Distr::result_type, Engine::vec_size>>::type {
|
|
35
|
-
return distr.generate(engine);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
template <typename Distr, typename Engine>
|
|
39
|
-
typename Distr::result_type generate_single(Distr& distr, Engine& engine) {
|
|
40
|
-
static_assert(Engine::vec_size > 1,
|
|
41
|
-
"oneMKL: rng/generate_single: function works for engines with vec_size > 1");
|
|
42
|
-
return distr.generate_single(engine);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// SERVICE FUNCTIONS
|
|
46
|
-
|
|
47
|
-
template <typename Engine>
|
|
48
|
-
void skip_ahead(Engine& engine, std::uint64_t num_to_skip) {
|
|
49
|
-
engine.skip_ahead(num_to_skip);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
template <typename Engine>
|
|
53
|
-
void skip_ahead(Engine& engine, std::initializer_list<std::uint64_t> num_to_skip) {
|
|
54
|
-
engine.skip_ahead(num_to_skip);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
} // namespace oneapi::mkl::rng::device
|
|
58
|
-
|
|
59
|
-
#endif // _MKL_RNG_DEVICE_FUNCTIONS_HPP_
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/*******************************************************************************
|
|
2
|
-
* Copyright (C) 2020 Intel Corporation
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing,
|
|
11
|
-
* software distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions
|
|
14
|
-
* and limitations under the License.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
-
*******************************************************************************/
|
|
19
|
-
|
|
20
|
-
#ifndef _MKL_RNG_DEVICE_TYPES_HPP_
|
|
21
|
-
#define _MKL_RNG_DEVICE_TYPES_HPP_
|
|
22
|
-
|
|
23
|
-
namespace oneapi::mkl::rng::device {
|
|
24
|
-
|
|
25
|
-
// METHODS FOR DISTRIBUTIONS
|
|
26
|
-
|
|
27
|
-
namespace uniform_method {
|
|
28
|
-
struct standard {};
|
|
29
|
-
struct accurate {};
|
|
30
|
-
using by_default = standard;
|
|
31
|
-
} // namespace uniform_method
|
|
32
|
-
|
|
33
|
-
namespace gaussian_method {
|
|
34
|
-
struct box_muller2 {};
|
|
35
|
-
struct icdf {};
|
|
36
|
-
using by_default = box_muller2;
|
|
37
|
-
} // namespace gaussian_method
|
|
38
|
-
|
|
39
|
-
namespace lognormal_method {
|
|
40
|
-
struct box_muller2 {};
|
|
41
|
-
using by_default = box_muller2;
|
|
42
|
-
} // namespace lognormal_method
|
|
43
|
-
|
|
44
|
-
namespace exponential_method {
|
|
45
|
-
struct icdf {};
|
|
46
|
-
struct icdf_accurate {};
|
|
47
|
-
using by_default = icdf;
|
|
48
|
-
} // namespace exponential_method
|
|
49
|
-
|
|
50
|
-
namespace poisson_method {
|
|
51
|
-
struct devroye {};
|
|
52
|
-
using by_default = devroye;
|
|
53
|
-
} // namespace poisson_method
|
|
54
|
-
|
|
55
|
-
namespace bernoulli_method {
|
|
56
|
-
struct icdf {};
|
|
57
|
-
using by_default = icdf;
|
|
58
|
-
} // namespace bernoulli_method
|
|
59
|
-
|
|
60
|
-
namespace beta_method {
|
|
61
|
-
struct cja {};
|
|
62
|
-
struct cja_accurate {};
|
|
63
|
-
using by_default = cja;
|
|
64
|
-
} // namespace beta_method
|
|
65
|
-
|
|
66
|
-
namespace gamma_method {
|
|
67
|
-
struct marsaglia {};
|
|
68
|
-
struct marsaglia_accurate {};
|
|
69
|
-
using by_default = marsaglia;
|
|
70
|
-
} // namespace gamma_method
|
|
71
|
-
|
|
72
|
-
namespace geometric_method {
|
|
73
|
-
struct icdf {};
|
|
74
|
-
using by_default = icdf;
|
|
75
|
-
} // namespace geometric_method
|
|
76
|
-
|
|
77
|
-
} // namespace oneapi::mkl::rng::device
|
|
78
|
-
|
|
79
|
-
#endif // _MKL_RNG_DEVICE_TYPES_HPP_
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*******************************************************************************
|
|
2
|
-
* Copyright (C) 2020 Intel Corporation
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing,
|
|
11
|
-
* software distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions
|
|
14
|
-
* and limitations under the License.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
-
*******************************************************************************/
|
|
19
|
-
|
|
20
|
-
#ifndef _MKL_RNG_SYCL_DEVICE_HPP__
|
|
21
|
-
#define _MKL_RNG_SYCL_DEVICE_HPP__
|
|
22
|
-
|
|
23
|
-
#include "oneapi/mkl/rng/device/types.hpp"
|
|
24
|
-
#include "oneapi/mkl/rng/device/functions.hpp"
|
|
25
|
-
#include "oneapi/mkl/rng/device/distributions.hpp"
|
|
26
|
-
#include "oneapi/mkl/rng/device/engines.hpp"
|
|
27
|
-
#include "oneapi/mkl/rng/device/engine_helpers.hpp"
|
|
28
|
-
|
|
29
|
-
#endif // _MKL_RNG_SYCL_DEVICE_HPP__
|