@@ -44,130 +44,6 @@ using dpctl::tensor::kernels::alignment_utils::required_alignment;
4444static_assert (__SYCL_COMPILER_VERSION >= __SYCL_COMPILER_VECTOR_ABS_CHANGED,
4545 " SYCL DPC++ compiler does not meet minimum version requirement" );
4646
47- template <typename _KernelNameSpecialization1,
48- typename _KernelNameSpecialization2>
49- class dpnp_ediff1d_c_kernel ;
50-
51- template <typename _DataType_input, typename _DataType_output>
52- DPCTLSyclEventRef dpnp_ediff1d_c (DPCTLSyclQueueRef q_ref,
53- void *result_out,
54- const size_t result_size,
55- const size_t result_ndim,
56- const shape_elem_type *result_shape,
57- const shape_elem_type *result_strides,
58- const void *input1_in,
59- const size_t input1_size,
60- const size_t input1_ndim,
61- const shape_elem_type *input1_shape,
62- const shape_elem_type *input1_strides,
63- const size_t *where,
64- const DPCTLEventVectorRef dep_event_vec_ref)
65- {
66- /* avoid warning unused variable*/
67- (void )result_ndim;
68- (void )result_shape;
69- (void )result_strides;
70- (void )input1_ndim;
71- (void )input1_shape;
72- (void )input1_strides;
73- (void )where;
74- (void )dep_event_vec_ref;
75-
76- DPCTLSyclEventRef event_ref = nullptr ;
77-
78- if (!input1_size) {
79- return event_ref;
80- }
81-
82- sycl::queue q = *(reinterpret_cast <sycl::queue *>(q_ref));
83-
84- DPNPC_ptr_adapter<_DataType_input> input1_ptr (q_ref, input1_in,
85- input1_size);
86- DPNPC_ptr_adapter<_DataType_output> result_ptr (q_ref, result_out,
87- result_size, false , true );
88-
89- _DataType_input *input1_data = input1_ptr.get_ptr ();
90- _DataType_output *result = result_ptr.get_ptr ();
91-
92- sycl::event event;
93- sycl::range<1 > gws (result_size);
94-
95- auto kernel_parallel_for_func = [=](sycl::id<1 > global_id) {
96- size_t output_id =
97- global_id[0 ]; /* for (size_t i = 0; i < result_size; ++i)*/
98- {
99- const _DataType_output curr_elem = input1_data[output_id];
100- const _DataType_output next_elem = input1_data[output_id + 1 ];
101- result[output_id] = next_elem - curr_elem;
102- }
103- };
104- auto kernel_func = [&](sycl::handler &cgh) {
105- cgh.parallel_for <
106- class dpnp_ediff1d_c_kernel <_DataType_input, _DataType_output>>(
107- gws, kernel_parallel_for_func);
108- };
109- event = q.submit (kernel_func);
110-
111- input1_ptr.depends_on (event);
112- result_ptr.depends_on (event);
113- event_ref = reinterpret_cast <DPCTLSyclEventRef>(&event);
114-
115- return DPCTLEvent_Copy (event_ref);
116- }
117-
118- template <typename _DataType_input, typename _DataType_output>
119- void dpnp_ediff1d_c (void *result_out,
120- const size_t result_size,
121- const size_t result_ndim,
122- const shape_elem_type *result_shape,
123- const shape_elem_type *result_strides,
124- const void *input1_in,
125- const size_t input1_size,
126- const size_t input1_ndim,
127- const shape_elem_type *input1_shape,
128- const shape_elem_type *input1_strides,
129- const size_t *where)
130- {
131- DPCTLSyclQueueRef q_ref = reinterpret_cast <DPCTLSyclQueueRef>(&DPNP_QUEUE);
132- DPCTLEventVectorRef dep_event_vec_ref = nullptr ;
133- DPCTLSyclEventRef event_ref =
134- dpnp_ediff1d_c<_DataType_input, _DataType_output>(
135- q_ref, result_out, result_size, result_ndim, result_shape,
136- result_strides, input1_in, input1_size, input1_ndim, input1_shape,
137- input1_strides, where, dep_event_vec_ref);
138- DPCTLEvent_WaitAndThrow (event_ref);
139- }
140-
141- template <typename _DataType_input, typename _DataType_output>
142- void (*dpnp_ediff1d_default_c)(void *,
143- const size_t ,
144- const size_t ,
145- const shape_elem_type *,
146- const shape_elem_type *,
147- const void *,
148- const size_t ,
149- const size_t ,
150- const shape_elem_type *,
151- const shape_elem_type *,
152- const size_t *) =
153- dpnp_ediff1d_c<_DataType_input, _DataType_output>;
154-
155- template <typename _DataType_input, typename _DataType_output>
156- DPCTLSyclEventRef (*dpnp_ediff1d_ext_c)(DPCTLSyclQueueRef,
157- void *,
158- const size_t ,
159- const size_t ,
160- const shape_elem_type *,
161- const shape_elem_type *,
162- const void *,
163- const size_t ,
164- const size_t ,
165- const shape_elem_type *,
166- const shape_elem_type *,
167- const size_t *,
168- const DPCTLEventVectorRef) =
169- dpnp_ediff1d_c<_DataType_input, _DataType_output>;
170-
17147template <typename _KernelNameSpecialization1,
17248 typename _KernelNameSpecialization2>
17349class dpnp_modf_c_kernel ;
@@ -260,24 +136,6 @@ DPCTLSyclEventRef (*dpnp_modf_ext_c)(DPCTLSyclQueueRef,
260136void func_map_init_mathematical (func_map_t &fmap)
261137{
262138
263- fmap[DPNPFuncName::DPNP_FN_EDIFF1D][eft_INT][eft_INT] = {
264- eft_LNG, (void *)dpnp_ediff1d_default_c<int32_t , int64_t >};
265- fmap[DPNPFuncName::DPNP_FN_EDIFF1D][eft_LNG][eft_LNG] = {
266- eft_LNG, (void *)dpnp_ediff1d_default_c<int64_t , int64_t >};
267- fmap[DPNPFuncName::DPNP_FN_EDIFF1D][eft_FLT][eft_FLT] = {
268- eft_FLT, (void *)dpnp_ediff1d_default_c<float , float >};
269- fmap[DPNPFuncName::DPNP_FN_EDIFF1D][eft_DBL][eft_DBL] = {
270- eft_DBL, (void *)dpnp_ediff1d_default_c<double , double >};
271-
272- fmap[DPNPFuncName::DPNP_FN_EDIFF1D_EXT][eft_INT][eft_INT] = {
273- eft_LNG, (void *)dpnp_ediff1d_ext_c<int32_t , int64_t >};
274- fmap[DPNPFuncName::DPNP_FN_EDIFF1D_EXT][eft_LNG][eft_LNG] = {
275- eft_LNG, (void *)dpnp_ediff1d_ext_c<int64_t , int64_t >};
276- fmap[DPNPFuncName::DPNP_FN_EDIFF1D_EXT][eft_FLT][eft_FLT] = {
277- eft_FLT, (void *)dpnp_ediff1d_ext_c<float , float >};
278- fmap[DPNPFuncName::DPNP_FN_EDIFF1D_EXT][eft_DBL][eft_DBL] = {
279- eft_DBL, (void *)dpnp_ediff1d_ext_c<double , double >};
280-
281139 fmap[DPNPFuncName::DPNP_FN_MODF][eft_INT][eft_INT] = {
282140 eft_DBL, (void *)dpnp_modf_default_c<int32_t , double >};
283141 fmap[DPNPFuncName::DPNP_FN_MODF][eft_LNG][eft_LNG] = {
0 commit comments