Skip to content

Commit d97594a

Browse files
author
Diptorup Deb
authored
Apply clamg-format to C++ files in cython examples. (#418)
1 parent e753fd4 commit d97594a

File tree

6 files changed

+326
-251
lines changed

6 files changed

+326
-251
lines changed

examples/cython/sycl_buffer/use_sycl_buffer.cpp

Lines changed: 82 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,111 @@
1-
#include <CL/sycl.hpp>
21
#include "use_sycl_buffer.h"
3-
#include <oneapi/mkl.hpp>
42
#include "dpctl_sycl_types.h"
3+
#include <CL/sycl.hpp>
4+
#include <oneapi/mkl.hpp>
55

6-
int
7-
c_columnwise_total(DPCTLSyclQueueRef q_ref, size_t n, size_t m, double *mat, double *ct) {
6+
int c_columnwise_total(DPCTLSyclQueueRef q_ref,
7+
size_t n,
8+
size_t m,
9+
double *mat,
10+
double *ct)
11+
{
812

913
sycl::queue q = *(reinterpret_cast<sycl::queue *>(q_ref));
1014

11-
sycl::buffer<double, 1> mat_buffer = sycl::buffer(mat, sycl::range<1>(n * m));
15+
sycl::buffer<double, 1> mat_buffer =
16+
sycl::buffer(mat, sycl::range<1>(n * m));
1217
sycl::buffer<double, 1> ct_buffer = sycl::buffer(ct, sycl::range<1>(m));
1318

1419
double *ones = reinterpret_cast<double *>(malloc(n * sizeof(double)));
1520
{
16-
sycl::buffer<double, 1> ones_buffer = sycl::buffer(ones, sycl::range<1>(n));
17-
18-
try {
19-
auto ev = q.submit([&](sycl::handler &cgh) {
20-
auto ones_acc = ones_buffer.get_access<sycl::access::mode::read_write>(cgh);
21-
cgh.fill(ones_acc, double(1.0));
22-
});
23-
24-
ev.wait_and_throw();
25-
}
26-
catch (sycl::exception const& e) {
27-
std::cout << "\t\tCaught synchronous SYCL exception during fill:\n"
28-
<< e.what() << std::endl << "OpenCL status: " << e.get_cl_code() << std::endl;
29-
goto cleanup;
30-
}
31-
32-
try {
33-
oneapi::mkl::blas::row_major::gemv(
34-
q,
35-
oneapi::mkl::transpose::trans,
36-
n, m, double(1.0), mat_buffer, m,
37-
ones_buffer, 1,
38-
double(0.0), ct_buffer, 1);
39-
q.wait();
40-
}
41-
catch (sycl::exception const &e) {
42-
std::cout << "\t\tCaught synchronous SYCL exception during GEMV:\n"
43-
<< e.what() << std::endl << "OpenCL status: " << e.get_cl_code() << std::endl;
44-
goto cleanup;
45-
}
21+
sycl::buffer<double, 1> ones_buffer =
22+
sycl::buffer(ones, sycl::range<1>(n));
23+
24+
try {
25+
auto ev = q.submit([&](sycl::handler &cgh) {
26+
auto ones_acc =
27+
ones_buffer.get_access<sycl::access::mode::read_write>(cgh);
28+
cgh.fill(ones_acc, double(1.0));
29+
});
30+
31+
ev.wait_and_throw();
32+
} catch (sycl::exception const &e) {
33+
std::cout << "\t\tCaught synchronous SYCL exception during fill:\n"
34+
<< e.what() << std::endl
35+
<< "OpenCL status: " << e.get_cl_code() << std::endl;
36+
goto cleanup;
37+
}
38+
39+
try {
40+
oneapi::mkl::blas::row_major::gemv(
41+
q, oneapi::mkl::transpose::trans, n, m, double(1.0), mat_buffer,
42+
m, ones_buffer, 1, double(0.0), ct_buffer, 1);
43+
q.wait();
44+
} catch (sycl::exception const &e) {
45+
std::cout << "\t\tCaught synchronous SYCL exception during GEMV:\n"
46+
<< e.what() << std::endl
47+
<< "OpenCL status: " << e.get_cl_code() << std::endl;
48+
goto cleanup;
49+
}
4650
}
47-
51+
4852
free(ones);
4953
return 0;
5054

51-
cleanup:
55+
cleanup:
5256
free(ones);
5357
return -1;
5458
}
5559

56-
inline size_t upper_multiple(size_t n, size_t wg) { return wg * ((n + wg - 1)/wg); }
60+
inline size_t upper_multiple(size_t n, size_t wg)
61+
{
62+
return wg * ((n + wg - 1) / wg);
63+
}
5764

58-
int
59-
c_columnwise_total_no_mkl(DPCTLSyclQueueRef q_ref, size_t n, size_t m, double *mat, double *ct) {
65+
int c_columnwise_total_no_mkl(DPCTLSyclQueueRef q_ref,
66+
size_t n,
67+
size_t m,
68+
double *mat,
69+
double *ct)
70+
{
6071

6172
sycl::queue q = *(reinterpret_cast<sycl::queue *>(q_ref));
6273

63-
sycl::buffer<double, 2> mat_buffer = sycl::buffer(mat, sycl::range<2>(n, m));
74+
sycl::buffer<double, 2> mat_buffer =
75+
sycl::buffer(mat, sycl::range<2>(n, m));
6476
sycl::buffer<double, 1> ct_buffer = sycl::buffer(ct, sycl::range<1>(m));
6577

66-
auto e = q.submit(
67-
[&](sycl::handler &h) {
68-
sycl::accessor ct_acc {ct_buffer, h, sycl::write_only};
69-
h.parallel_for(
70-
sycl::range<1>(m),
71-
[=](sycl::id<1> i){
72-
ct_acc[i] = 0.0;
73-
});
74-
});
78+
auto e = q.submit([&](sycl::handler &h) {
79+
sycl::accessor ct_acc{ct_buffer, h, sycl::write_only};
80+
h.parallel_for(sycl::range<1>(m),
81+
[=](sycl::id<1> i) { ct_acc[i] = 0.0; });
82+
});
7583

7684
constexpr size_t wg = 256;
77-
auto e2 = q.submit(
78-
[&](sycl::handler &h) {
79-
80-
sycl::accessor mat_acc {mat_buffer, h, sycl::read_only};
81-
sycl::accessor ct_acc {ct_buffer, h};
82-
h.depends_on(e);
83-
84-
sycl::range<2> global {upper_multiple(n, wg), m};
85-
sycl::range<2> local {wg, 1};
86-
87-
h.parallel_for(
88-
sycl::nd_range<2>(global, local),
89-
[=](sycl::nd_item<2> it) {
90-
size_t i = it.get_global_id(0);
91-
size_t j = it.get_global_id(1);
92-
double group_sum = sycl::ONEAPI::reduce(
93-
it.get_group(),
94-
(i < n) ? mat_acc[it.get_global_id()] : 0.0,
95-
std::plus<double>()
96-
);
97-
if (it.get_local_id(0) == 0) {
98-
sycl::ONEAPI::atomic_ref<
99-
double,
100-
sycl::ONEAPI::memory_order::relaxed,
101-
sycl::ONEAPI::memory_scope::system,
102-
sycl::access::address_space::global_space>(ct_acc[j]) += group_sum;
103-
}
104-
});
105-
});
85+
auto e2 = q.submit([&](sycl::handler &h) {
86+
sycl::accessor mat_acc{mat_buffer, h, sycl::read_only};
87+
sycl::accessor ct_acc{ct_buffer, h};
88+
h.depends_on(e);
89+
90+
sycl::range<2> global{upper_multiple(n, wg), m};
91+
sycl::range<2> local{wg, 1};
92+
93+
h.parallel_for(
94+
sycl::nd_range<2>(global, local), [=](sycl::nd_item<2> it) {
95+
size_t i = it.get_global_id(0);
96+
size_t j = it.get_global_id(1);
97+
double group_sum = sycl::ONEAPI::reduce(
98+
it.get_group(), (i < n) ? mat_acc[it.get_global_id()] : 0.0,
99+
std::plus<double>());
100+
if (it.get_local_id(0) == 0) {
101+
sycl::ONEAPI::atomic_ref<
102+
double, sycl::ONEAPI::memory_order::relaxed,
103+
sycl::ONEAPI::memory_scope::system,
104+
sycl::access::address_space::global_space>(ct_acc[j]) +=
105+
group_sum;
106+
}
107+
});
108+
});
106109

107110
e2.wait_and_throw();
108111
return 0;
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1-
#include <CL/sycl.hpp>
21
#include "dpctl_sycl_types.h"
2+
#include <CL/sycl.hpp>
33

4-
extern int c_columnwise_total(
5-
DPCTLSyclQueueRef q, size_t n, size_t m, double *mat, double *ct);
6-
extern int c_columnwise_total_no_mkl(
7-
DPCTLSyclQueueRef q, size_t n, size_t m, double *mat, double *ct);
4+
extern int c_columnwise_total(DPCTLSyclQueueRef q,
5+
size_t n,
6+
size_t m,
7+
double *mat,
8+
double *ct);
9+
extern int c_columnwise_total_no_mkl(DPCTLSyclQueueRef q,
10+
size_t n,
11+
size_t m,
12+
double *mat,
13+
double *ct);

examples/cython/sycl_direct_linkage/sycl_function.cpp

Lines changed: 39 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,55 @@
1-
#include <CL/sycl.hpp>
21
#include "sycl_function.hpp"
3-
#include <oneapi/mkl.hpp>
42
#include "mkl.h"
3+
#include <CL/sycl.hpp>
4+
#include <oneapi/mkl.hpp>
55

6-
int c_columnwise_total(cl::sycl::queue &q, size_t n, size_t m, double *mat, double *ct) {
7-
sycl::buffer<double, 1> mat_buffer = sycl::buffer(mat, sycl::range<1>(n * m));
6+
int c_columnwise_total(cl::sycl::queue &q,
7+
size_t n,
8+
size_t m,
9+
double *mat,
10+
double *ct)
11+
{
12+
sycl::buffer<double, 1> mat_buffer =
13+
sycl::buffer(mat, sycl::range<1>(n * m));
814
sycl::buffer<double, 1> ct_buffer = sycl::buffer(ct, sycl::range<1>(m));
915

1016
double *ones = reinterpret_cast<double *>(malloc(n * sizeof(double)));
1117
{
12-
sycl::buffer<double, 1> ones_buffer = sycl::buffer(ones, sycl::range<1>(n));
18+
sycl::buffer<double, 1> ones_buffer =
19+
sycl::buffer(ones, sycl::range<1>(n));
1320

14-
try {
15-
auto ev = q.submit([&](sycl::handler &cgh) {
16-
auto ones_acc = ones_buffer.get_access<sycl::access::mode::read_write>(cgh);
17-
cgh.fill(ones_acc, double(1.0));
18-
});
19-
20-
ev.wait_and_throw();
21-
}
22-
catch (sycl::exception const& e) {
23-
std::cout << "\t\tCaught synchronous SYCL exception during fill:\n"
24-
<< e.what() << std::endl << "OpenCL status: " << e.get_cl_code() << std::endl;
25-
goto cleanup;
26-
}
21+
try {
22+
auto ev = q.submit([&](sycl::handler &cgh) {
23+
auto ones_acc =
24+
ones_buffer.get_access<sycl::access::mode::read_write>(cgh);
25+
cgh.fill(ones_acc, double(1.0));
26+
});
2727

28-
try {
29-
oneapi::mkl::blas::row_major::gemv(
30-
q,
31-
oneapi::mkl::transpose::trans,
32-
n, m, double(1.0), mat_buffer, m,
33-
ones_buffer, 1,
34-
double(0.0), ct_buffer, 1);
35-
q.wait();
36-
}
37-
catch (sycl::exception const &e) {
38-
std::cout << "\t\tCaught synchronous SYCL exception during GEMV:\n"
39-
<< e.what() << std::endl << "OpenCL status: " << e.get_cl_code() << std::endl;
40-
goto cleanup;
41-
}
28+
ev.wait_and_throw();
29+
} catch (sycl::exception const &e) {
30+
std::cout << "\t\tCaught synchronous SYCL exception during fill:\n"
31+
<< e.what() << std::endl
32+
<< "OpenCL status: " << e.get_cl_code() << std::endl;
33+
goto cleanup;
34+
}
35+
36+
try {
37+
oneapi::mkl::blas::row_major::gemv(
38+
q, oneapi::mkl::transpose::trans, n, m, double(1.0), mat_buffer,
39+
m, ones_buffer, 1, double(0.0), ct_buffer, 1);
40+
q.wait();
41+
} catch (sycl::exception const &e) {
42+
std::cout << "\t\tCaught synchronous SYCL exception during GEMV:\n"
43+
<< e.what() << std::endl
44+
<< "OpenCL status: " << e.get_cl_code() << std::endl;
45+
goto cleanup;
46+
}
4247
}
43-
48+
4449
free(ones);
4550
return 0;
4651

47-
cleanup:
52+
cleanup:
4853
free(ones);
4954
return -1;
5055
}
51-
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
#include <CL/sycl.hpp>
22

3-
int c_columnwise_total(cl::sycl::queue&, size_t n, size_t m, double *mat, double *ct);
3+
int c_columnwise_total(cl::sycl::queue &,
4+
size_t n,
5+
size_t m,
6+
double *mat,
7+
double *ct);

0 commit comments

Comments
 (0)