Skip to content

Commit bf24b22

Browse files
Removed pre-preprocessor fenced out dead code
Renamed backend_sycl_singleton back to backend_sycl Removed dpnp_queue_initialize_c function and QueueOptions enum as no longer used. Removed uses of these from examples and code base
1 parent 814ad56 commit bf24b22

File tree

13 files changed

+43
-194
lines changed

13 files changed

+43
-194
lines changed

dpnp/backend/examples/example10.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ void test_dpnp_random_normal(const size_t size,
5050
double dev_time_used = 0.0;
5151
double sum_dev_time_used = 0.0;
5252

53-
dpnp_queue_initialize_c(QueueOptions::GPU_SELECTOR);
54-
5553
double *result = (double *)dpnp_memory_alloc_c(size * sizeof(double));
5654

5755
dpnp_rng_srand_c(seed); // TODO: will move

dpnp/backend/examples/example3.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ int main(int, char **)
4444
{
4545
const size_t size = 256;
4646

47-
dpnp_queue_initialize_c();
4847
std::cout << "SYCL queue is CPU: " << dpnp_queue_is_cpu_c() << std::endl;
4948

5049
int *array1 = (int *)dpnp_memory_alloc_c(size * sizeof(int));

dpnp/backend/examples/example5.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,6 @@ int main(int, char **)
5252
{
5353
const size_t size = 256;
5454

55-
dpnp_queue_initialize_c(QueueOptions::CPU_SELECTOR);
56-
5755
double *result = (double *)dpnp_memory_alloc_c(size * sizeof(double));
5856

5957
size_t seed = 10;

dpnp/backend/examples/example7.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ int main(int, char **)
4545
const size_t size = 2;
4646
size_t len = size * size;
4747

48-
dpnp_queue_initialize_c(QueueOptions::CPU_SELECTOR);
49-
5048
float *array = (float *)dpnp_memory_alloc_c(len * sizeof(float));
5149
float *result1 = (float *)dpnp_memory_alloc_c(size * sizeof(float));
5250
float *result2 = (float *)dpnp_memory_alloc_c(len * sizeof(float));

dpnp/backend/examples/example8.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ int main(int, char **)
4242
{
4343
const size_t size = 16;
4444

45-
dpnp_queue_initialize_c(QueueOptions::GPU_SELECTOR);
46-
4745
double *array = (double *)dpnp_memory_alloc_c(size * sizeof(double));
4846
long *result = (long *)dpnp_memory_alloc_c(size * sizeof(long));
4947

dpnp/backend/examples/example9.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ int main(int, char **)
4646
long result = 0;
4747
long result_verification = 0;
4848

49-
dpnp_queue_initialize_c(QueueOptions::CPU_SELECTOR);
50-
5149
long *array =
5250
reinterpret_cast<long *>(dpnp_memory_alloc_c(size * sizeof(long)));
5351

dpnp/backend/examples/example_bs.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,6 @@ int main(int, char **)
229229
const double RISK_FREE = 0.1;
230230
const double VOLATILITY = 0.2;
231231

232-
dpnp_queue_initialize_c(QueueOptions::GPU_SELECTOR);
233232
std::cout << "SYCL queue is CPU: " << dpnp_queue_is_cpu_c() << std::endl;
234233

235234
double *price = (double *)dpnp_memory_alloc_c(SIZE * sizeof(double));

dpnp/backend/include/dpnp_iface.hpp

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -68,32 +68,6 @@ typedef ssize_t shape_elem_type;
6868
* @}
6969
*/
7070

71-
/**
72-
* @ingroup BACKEND_API
73-
* @brief SYCL queue initialization selector.
74-
*
75-
* The structure defines the parameters that are used for the library
76-
* initialization by @ref dpnp_queue_initialize_c "dpnp_queue_initialize".
77-
*/
78-
enum class QueueOptions : uint32_t
79-
{
80-
CPU_SELECTOR, /**< CPU side execution mode */
81-
GPU_SELECTOR, /**< Intel GPU side execution mode */
82-
AUTO_SELECTOR /**< Automatic selection based on environment variable with
83-
@ref CPU_SELECTOR default */
84-
};
85-
86-
/**
87-
* @ingroup BACKEND_API
88-
* @brief SYCL queue initialization.
89-
*
90-
* Global SYCL queue initialization.
91-
*
92-
* @param [in] selector Select type @ref QueueOptions of the SYCL queue.
93-
* Default @ref AUTO_SELECTOR
94-
*/
95-
INP_DLLEXPORT void dpnp_queue_initialize_c(
96-
QueueOptions selector = QueueOptions::AUTO_SELECTOR);
9771

9872
/**
9973
* @ingroup BACKEND_API
@@ -112,8 +86,7 @@ INP_DLLEXPORT size_t dpnp_queue_is_cpu_c();
11286
* @param [in] size_in_bytes Number of bytes for requested memory allocation.
11387
* @param [in] q_ref Reference to SYCL queue.
11488
*
115-
* @return A pointer to newly created memory on @ref dpnp_queue_initialize_c
116-
* "initialized SYCL device".
89+
* @return A pointer to newly created memory on SYCL device.
11790
*/
11891
INP_DLLEXPORT char *dpnp_memory_alloc_c(DPCTLSyclQueueRef q_ref,
11992
size_t size_in_bytes);

dpnp/backend/kernels/dpnp_krnl_random.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ static VSLStreamStatePtr get_rng_stream()
7070

7171
void dpnp_rng_srand_c(size_t seed)
7272
{
73-
auto &be = backend_sycl_singleton::get();
73+
auto &be = backend_sycl::get();
7474
be.set_rng_engines_seed(seed);
7575
set_rng_stream(seed);
7676
}

dpnp/backend/src/queue_sycl.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,8 @@ static long dpnp_kernels_link()
111111
}
112112
#endif
113113

114-
void dpnp_queue_initialize_c(QueueOptions)
115-
{
116-
[[maybe_unused]] auto &be = backend_sycl_singleton::get();
117-
}
118-
119114
size_t dpnp_queue_is_cpu_c()
120115
{
121-
const auto &be = backend_sycl_singleton::get();
116+
const auto &be = backend_sycl::get();
122117
return be.backend_sycl_is_cpu();
123118
}

dpnp/backend/src/queue_sycl.hpp

Lines changed: 40 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -47,43 +47,58 @@
4747

4848
namespace mkl_rng = oneapi::mkl::rng;
4949

50-
#define DPNP_QUEUE backend_sycl_singleton::get_queue()
51-
#define DPNP_RNG_ENGINE backend_sycl_singleton::get_rng_engine()
52-
#define DPNP_RNG_MCG59_ENGINE backend_sycl_singleton::get_rng_mcg59_engine()
50+
#define DPNP_QUEUE backend_sycl::get_queue()
51+
#define DPNP_RNG_ENGINE backend_sycl::get_rng_engine()
52+
#define DPNP_RNG_MCG59_ENGINE backend_sycl::get_rng_mcg59_engine()
5353

54-
class backend_sycl_singleton {
54+
/**
55+
* This is container for the SYCL queue, random number generation engine and
56+
* related functions like queue and engine initialization and maintenance. The
57+
* queue could not be initialized as a global object. Global object
58+
* initialization order is undefined. This class postpone initialization of the
59+
* SYCL queue and mt19937 random number generation engine.
60+
*/
61+
class backend_sycl
62+
{
5563
public:
56-
~backend_sycl_singleton() {}
64+
~backend_sycl() {}
5765

58-
static backend_sycl_singleton& get() {
59-
static backend_sycl_singleton backend = lookup();
66+
static backend_sycl& get()
67+
{
68+
static backend_sycl backend{};
6069
return backend;
6170
}
6271

63-
static sycl::queue& get_queue() {
64-
auto &be = backend_sycl_singleton::get();
72+
static sycl::queue& get_queue()
73+
{
74+
auto &be = backend_sycl::get();
6575
return *(be.queue_ptr);
6676
}
6777

68-
static mkl_rng::mt19937& get_rng_engine() {
69-
auto &be = backend_sycl_singleton::get();
78+
static mkl_rng::mt19937& get_rng_engine()
79+
{
80+
auto &be = backend_sycl::get();
7081
return *(be.rng_mt19937_engine_ptr);
7182
}
7283

73-
static mkl_rng::mcg59& get_rng_mcg59_engine() {
74-
auto &be = backend_sycl_singleton::get();
84+
static mkl_rng::mcg59& get_rng_mcg59_engine()
85+
{
86+
auto &be = backend_sycl::get();
7587
return *(be.rng_mcg59_engine_ptr);
7688
}
7789

7890
template <typename SeedT>
79-
void set_rng_engines_seed(const SeedT &seed) {
80-
auto rng_eng_mt19937 = std::make_shared<mkl_rng::mt19937>(*queue_ptr, seed);
91+
void set_rng_engines_seed(const SeedT &seed)
92+
{
93+
auto rng_eng_mt19937 =
94+
std::make_shared<mkl_rng::mt19937>(*queue_ptr, seed);
8195
if (!rng_eng_mt19937) {
8296
throw std::runtime_error(
8397
"Could not create MT19937 engine with given seed"
8498
);
8599
}
86-
auto rng_eng_mcg59 = std::make_shared<mkl_rng::mcg59>(*queue_ptr, seed);
100+
auto rng_eng_mcg59 =
101+
std::make_shared<mkl_rng::mcg59>(*queue_ptr, seed);
87102
if (!rng_eng_mcg59) {
88103
throw std::runtime_error(
89104
"Could not create MCG59 engine with given seed"
@@ -94,18 +109,15 @@ class backend_sycl_singleton {
94109
rng_mcg59_engine_ptr.swap(rng_eng_mcg59);
95110
}
96111

97-
bool backend_sycl_is_cpu() const {
98-
if (queue_ptr) {
99-
const sycl::queue &q = *queue_ptr;
100-
101-
return q.get_device().is_cpu();
102-
}
103-
return false;
112+
bool backend_sycl_is_cpu() const
113+
{
114+
const sycl::queue &q = *queue_ptr;
115+
return q.get_device().is_cpu();
104116
}
105117

106118
private:
107-
backend_sycl_singleton() :
108-
queue_ptr{}, rng_mt19937_engine_ptr{}, rng_mcg59_engine_ptr{}
119+
backend_sycl()
120+
: queue_ptr{}, rng_mt19937_engine_ptr{}, rng_mcg59_engine_ptr{}
109121
{
110122
const sycl::property_list &prop = (is_verbose_mode()) ?
111123
sycl::property_list{sycl::property::queue::enable_profiling()}
@@ -134,120 +146,13 @@ class backend_sycl_singleton {
134146
}
135147
}
136148

137-
static backend_sycl_singleton& lookup() {
138-
static backend_sycl_singleton backend{};
139-
return backend;
140-
}
149+
backend_sycl(backend_sycl const &) = default;
150+
backend_sycl &operator=(backend_sycl const &) = default;
151+
backend_sycl &operator=(backend_sycl &&) = default;
141152

142153
std::shared_ptr<sycl::queue> queue_ptr;
143154
std::shared_ptr<mkl_rng::mt19937> rng_mt19937_engine_ptr;
144155
std::shared_ptr<mkl_rng::mcg59> rng_mcg59_engine_ptr;
145156
};
146157

147-
/**
148-
* This is container for the SYCL queue, random number generation engine and
149-
* related functions like queue and engine initialization and maintenance. The
150-
* queue could not be initialized as a global object. Global object
151-
* initialization order is undefined. This class postpone initialization of the
152-
* SYCL queue and mt19937 random number generation engine.
153-
*/
154-
#if 0
155-
class backend_sycl
156-
{
157-
/**< contains SYCL queue pointer initialized in
158-
@ref backend_sycl_queue_init */
159-
static sycl::queue *queue;
160-
/**< RNG MT19937 engine ptr. initialized in @ref
161-
backend_sycl_rng_engine_init */
162-
static mkl_rng::mt19937 *rng_engine;
163-
/**< RNG MCG59 engine ptr. initialized in @ref
164-
backend_sycl_rng_engine_init */
165-
static mkl_rng::mcg59 *rng_mcg59_engine;
166-
167-
static void destroy()
168-
{
169-
backend_sycl::destroy_rng_engine();
170-
delete queue;
171-
}
172-
173-
static void destroy_rng_engine()
174-
{
175-
delete rng_engine;
176-
delete rng_mcg59_engine;
177-
178-
rng_engine = nullptr;
179-
rng_mcg59_engine = nullptr;
180-
}
181-
182-
public:
183-
backend_sycl()
184-
{
185-
queue = nullptr;
186-
rng_engine = nullptr;
187-
rng_mcg59_engine = nullptr;
188-
}
189-
190-
virtual ~backend_sycl()
191-
{
192-
backend_sycl::destroy();
193-
}
194-
195-
/**
196-
* Explicitly disallow copying
197-
*/
198-
backend_sycl(const backend_sycl &) = delete;
199-
backend_sycl &operator=(const backend_sycl &) = delete;
200-
201-
/**
202-
* Initialize @ref queue
203-
*/
204-
static void backend_sycl_queue_init(
205-
QueueOptions selector = QueueOptions::AUTO_SELECTOR);
206-
207-
/**
208-
* Return True if current @ref queue is related to cpu device
209-
*/
210-
static bool backend_sycl_is_cpu();
211-
212-
/**
213-
* Initialize @ref rng_engine and @ref rng_mcg59_engine
214-
*/
215-
static void backend_sycl_rng_engine_init(size_t seed = 1);
216-
217-
/**
218-
* Return the @ref queue to the user
219-
*/
220-
static sycl::queue &get_queue()
221-
{
222-
if (!queue) {
223-
backend_sycl_queue_init();
224-
}
225-
226-
return *queue;
227-
}
228-
229-
/**
230-
* Return the @ref rng_engine to the user
231-
*/
232-
static mkl_rng::mt19937 &get_rng_engine()
233-
{
234-
if (!rng_engine) {
235-
backend_sycl_rng_engine_init();
236-
}
237-
return *rng_engine;
238-
}
239-
240-
/**
241-
* Return the @ref rng_mcg59_engine to the user
242-
*/
243-
static mkl_rng::mcg59 &get_rng_mcg59_engine()
244-
{
245-
if (!rng_engine) {
246-
backend_sycl_rng_engine_init();
247-
}
248-
return *rng_mcg59_engine;
249-
}
250-
};
251-
#endif
252-
253158
#endif // QUEUE_SYCL_H

dpnp/dpnp_algo/dpnp_algo.pxd

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -194,17 +194,10 @@ cdef extern from "dpnp_iface_fptr.hpp":
194194
DPNPFuncData get_dpnp_function_ptr(DPNPFuncName name, DPNPFuncType first_type, DPNPFuncType second_type) except +
195195

196196

197-
cdef extern from "dpnp_iface.hpp" namespace "QueueOptions": # need this namespace for Enum import
198-
cdef enum QueueOptions "QueueOptions":
199-
CPU_SELECTOR
200-
GPU_SELECTOR
201-
AUTO_SELECTOR
202-
203197
cdef extern from "constants.hpp":
204198
void dpnp_python_constants_initialize_c(void * py_none, void * py_nan)
205199

206200
cdef extern from "dpnp_iface.hpp":
207-
void dpnp_queue_initialize_c(QueueOptions selector)
208201

209202
char * dpnp_memory_alloc_c(size_t size_in_bytes) except +
210203
void dpnp_memory_free_c(void * ptr)

dpnp/dpnp_algo/dpnp_algo.pyx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,7 @@ cpdef dpnp_queue_initialize():
8383
It takes visible time and needs to be done in the module loading procedure.
8484
"""
8585
cdef time_t seed_from_time
86-
cdef QueueOptions queue_type = CPU_SELECTOR
8786

88-
if (config.__DPNP_QUEUE_GPU__):
89-
queue_type = GPU_SELECTOR
90-
91-
dpnp_queue_initialize_c(queue_type)
9287
dpnp_python_constants_initialize_c(< void*> None,
9388
< void * > dpnp.nan)
9489

0 commit comments

Comments
 (0)