Skip to content

Commit daec5c2

Browse files
authored
Restyle custom elemwise kernels (#113)
1 parent fab0312 commit daec5c2

File tree

1 file changed

+39
-34
lines changed

1 file changed

+39
-34
lines changed

dpnp/backend/custom_kernels_elemwise.cpp

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,20 @@
4343
_DataType_output* result = reinterpret_cast<_DataType_output*>(result1); \
4444
\
4545
cl::sycl::range<1> gws(size); \
46-
event = DPNP_QUEUE.submit([&](cl::sycl::handler& cgh) { \
47-
cgh.parallel_for<class custom_elemwise_##__name__##_c_kernel<_DataType_input> >( \
48-
gws, \
49-
[=](cl::sycl::id<1> global_id) \
46+
auto kernel_parallel_for_func = [=](cl::sycl::id<1> global_id) { \
47+
size_t i = global_id[0]; /*for (size_t i = 0; i < size; ++i)*/ \
5048
{ \
51-
size_t i = global_id[0]; /*for (size_t i = 0; i < size; ++i)*/ \
52-
{ \
53-
_DataType_output input_elem = array1[i]; \
54-
result[i] = __operation__; \
55-
} \
56-
}); /* parallel_for */ \
57-
}); /* queue.submit */ \
49+
_DataType_output input_elem = array1[i]; \
50+
result[i] = __operation__; \
51+
} \
52+
}; \
53+
\
54+
auto kernel_func = [&](cl::sycl::handler& cgh) { \
55+
cgh.parallel_for<class custom_elemwise_##__name__##_c_kernel<_DataType_input> >( \
56+
gws, kernel_parallel_for_func); \
57+
}; \
58+
\
59+
event = DPNP_QUEUE.submit(kernel_func); \
5860
\
5961
event.wait(); \
6062
} \
@@ -79,18 +81,19 @@
7981
_DataType* result = reinterpret_cast<_DataType*>(result1); \
8082
\
8183
cl::sycl::range<1> gws(size); \
82-
event = DPNP_QUEUE.submit([&](cl::sycl::handler& cgh) { \
83-
cgh.parallel_for<class custom_elemwise_##__name__##_c_kernel<_DataType> >( \
84-
gws, \
85-
[=](cl::sycl::id<1> global_id) \
84+
auto kernel_parallel_for_func = [=](cl::sycl::id<1> global_id) { \
85+
size_t i = global_id[0]; /*for (size_t i = 0; i < size; ++i)*/ \
8686
{ \
87-
size_t i = global_id[0]; /*for (size_t i = 0; i < size; ++i)*/ \
88-
{ \
89-
_DataType input_elem = array1[i]; \
90-
result[i] = __operation__; \
91-
} \
92-
}); /* parallel_for */ \
93-
}); /* queue.submit */ \
87+
_DataType input_elem = array1[i]; \
88+
result[i] = __operation__; \
89+
} \
90+
}; \
91+
\
92+
auto kernel_func = [&](cl::sycl::handler& cgh) { \
93+
cgh.parallel_for<class custom_elemwise_##__name__##_c_kernel<_DataType> >(gws, kernel_parallel_for_func); \
94+
}; \
95+
\
96+
event = DPNP_QUEUE.submit(kernel_func); \
9497
\
9598
event.wait(); \
9699
} \
@@ -118,19 +121,21 @@
118121
_DataType_output* result = reinterpret_cast<_DataType_output*>(result1); \
119122
\
120123
cl::sycl::range<1> gws(size); \
121-
event = DPNP_QUEUE.submit([&](cl::sycl::handler& cgh) { \
122-
cgh.parallel_for<class custom_elemwise_##__name__##_c_kernel<_DataType_input1, _DataType_input2, _DataType_output> >( \
123-
gws, \
124-
[=](cl::sycl::id<1> global_id) \
124+
auto kernel_parallel_for_func = [=](cl::sycl::id<1> global_id) { \
125+
size_t i = global_id[0]; /*for (size_t i = 0; i < size; ++i)*/ \
125126
{ \
126-
size_t i = global_id[0]; /*for (size_t i = 0; i < size; ++i)*/ \
127-
{ \
128-
_DataType_output input_elem1 = array1[i]; \
129-
_DataType_output input_elem2 = array2[i]; \
130-
result[i] = __operation__; \
131-
} \
132-
}); /* parallel_for */ \
133-
}); /* queue.submit */ \
127+
_DataType_output input_elem1 = array1[i]; \
128+
_DataType_output input_elem2 = array2[i]; \
129+
result[i] = __operation__; \
130+
} \
131+
}; \
132+
\
133+
auto kernel_func = [&](cl::sycl::handler& cgh) { \
134+
cgh.parallel_for<class custom_elemwise_##__name__##_c_kernel<_DataType_input1, _DataType_input2, _DataType_output> >( \
135+
gws, kernel_parallel_for_func); \
136+
}; \
137+
\
138+
event = DPNP_QUEUE.submit(kernel_func); \
134139
\
135140
event.wait(); \
136141
} \

0 commit comments

Comments
 (0)