8
8
work. If not, see <http://creativecommons.org/licenses/by-sa/4.0/>.
9
9
*/
10
10
11
- #include " ../helpers.hpp"
12
11
#include < sycl/sycl.hpp>
13
12
13
+ #include " ../helpers.hpp"
14
+
14
15
class vector_add_1 ;
15
16
class vector_add_2 ;
16
17
class vector_add_3 ;
@@ -20,8 +21,7 @@ class vector_add_6;
20
21
21
22
int usm_selector (const sycl::device& dev) {
22
23
if (dev.has (sycl::aspect::usm_device_allocations)) {
23
- if (dev.has (sycl::aspect::gpu))
24
- return 2 ;
24
+ if (dev.has (sycl::aspect::gpu)) return 2 ;
25
25
return 1 ;
26
26
}
27
27
return -1 ;
@@ -38,26 +38,26 @@ void test_buffer_event_wait() {
38
38
}
39
39
40
40
try {
41
- auto defaultQueue = sycl::queue {};
41
+ auto defaultQueue = sycl::queue{};
42
42
43
- auto bufA = sycl::buffer { a, sycl::range { dataSize } };
44
- auto bufB = sycl::buffer { b, sycl::range { dataSize } };
45
- auto bufR = sycl::buffer { r, sycl::range { dataSize } };
43
+ auto bufA = sycl::buffer{ a, sycl::range{ dataSize} };
44
+ auto bufB = sycl::buffer{ b, sycl::range{ dataSize} };
45
+ auto bufR = sycl::buffer{ r, sycl::range{ dataSize} };
46
46
47
47
defaultQueue
48
48
.submit ([&](sycl::handler& cgh) {
49
- auto accA = sycl::accessor { bufA, cgh, sycl::read_only };
50
- auto accB = sycl::accessor { bufB, cgh, sycl::read_only };
51
- auto accR = sycl::accessor { bufR, cgh, sycl::write_only };
49
+ auto accA = sycl::accessor{ bufA, cgh, sycl::read_only};
50
+ auto accB = sycl::accessor{ bufB, cgh, sycl::read_only};
51
+ auto accR = sycl::accessor{ bufR, cgh, sycl::write_only};
52
52
53
53
cgh.parallel_for <vector_add_1>(
54
- sycl::range { dataSize },
54
+ sycl::range{ dataSize},
55
55
[=](sycl::id<1 > idx) { accR[idx] = accA[idx] + accB[idx]; });
56
56
})
57
- .wait (); // Synchronize
57
+ .wait (); // Synchronize
58
58
59
59
defaultQueue.throw_asynchronous ();
60
- } catch (const sycl::exception & e) { // Copy back
60
+ } catch (const sycl::exception & e) { // Copy back
61
61
std::cout << " Exception caught: " << e.what () << std::endl;
62
62
}
63
63
@@ -77,24 +77,24 @@ void test_buffer_queue_wait() {
77
77
}
78
78
79
79
try {
80
- auto defaultQueue = sycl::queue {};
80
+ auto defaultQueue = sycl::queue{};
81
81
82
- auto bufA = sycl::buffer { a, sycl::range { dataSize } };
83
- auto bufB = sycl::buffer { b, sycl::range { dataSize } };
84
- auto bufR = sycl::buffer { r, sycl::range { dataSize } };
82
+ auto bufA = sycl::buffer{ a, sycl::range{ dataSize} };
83
+ auto bufB = sycl::buffer{ b, sycl::range{ dataSize} };
84
+ auto bufR = sycl::buffer{ r, sycl::range{ dataSize} };
85
85
86
86
defaultQueue.submit ([&](sycl::handler& cgh) {
87
- auto accA = sycl::accessor { bufA, cgh, sycl::read_only };
88
- auto accB = sycl::accessor { bufB, cgh, sycl::read_only };
89
- auto accR = sycl::accessor { bufR, cgh, sycl::write_only };
87
+ auto accA = sycl::accessor{ bufA, cgh, sycl::read_only};
88
+ auto accB = sycl::accessor{ bufB, cgh, sycl::read_only};
89
+ auto accR = sycl::accessor{ bufR, cgh, sycl::write_only};
90
90
91
91
cgh.parallel_for <vector_add_2>(
92
- sycl::range { dataSize },
92
+ sycl::range{ dataSize},
93
93
[=](sycl::id<1 > idx) { accR[idx] = accA[idx] + accB[idx]; });
94
94
});
95
95
96
- defaultQueue.wait_and_throw (); // Synchronize
97
- } catch (const sycl::exception & e) { // Copy back
96
+ defaultQueue.wait_and_throw (); // Synchronize
97
+ } catch (const sycl::exception & e) { // Copy back
98
98
std::cout << " Exception caught: " << e.what () << std::endl;
99
99
}
100
100
@@ -114,23 +114,23 @@ void test_buffer_buffer_destruction() {
114
114
}
115
115
116
116
try {
117
- auto defaultQueue = sycl::queue {};
117
+ auto defaultQueue = sycl::queue{};
118
118
119
119
{
120
- auto bufA = sycl::buffer { a, sycl::range { dataSize } };
121
- auto bufB = sycl::buffer { b, sycl::range { dataSize } };
122
- auto bufR = sycl::buffer { r, sycl::range { dataSize } };
120
+ auto bufA = sycl::buffer{ a, sycl::range{ dataSize} };
121
+ auto bufB = sycl::buffer{ b, sycl::range{ dataSize} };
122
+ auto bufR = sycl::buffer{ r, sycl::range{ dataSize} };
123
123
124
124
defaultQueue.submit ([&](sycl::handler& cgh) {
125
- auto accA = sycl::accessor { bufA, cgh, sycl::read_only };
126
- auto accB = sycl::accessor { bufB, cgh, sycl::read_only };
127
- auto accR = sycl::accessor { bufR, cgh, sycl::write_only };
125
+ auto accA = sycl::accessor{ bufA, cgh, sycl::read_only};
126
+ auto accB = sycl::accessor{ bufB, cgh, sycl::read_only};
127
+ auto accR = sycl::accessor{ bufR, cgh, sycl::write_only};
128
128
129
129
cgh.parallel_for <vector_add_3>(
130
- sycl::range { dataSize },
130
+ sycl::range{ dataSize},
131
131
[=](sycl::id<1 > idx) { accR[idx] = accA[idx] + accB[idx]; });
132
132
});
133
- } // Synchronize and copy-back
133
+ } // Synchronize and copy-back
134
134
135
135
defaultQueue.throw_asynchronous ();
136
136
} catch (const sycl::exception & e) {
@@ -153,32 +153,32 @@ void test_usm_event_wait() {
153
153
}
154
154
155
155
try {
156
- auto usmQueue = sycl::queue { usm_selector };
156
+ auto usmQueue = sycl::queue{ usm_selector};
157
157
158
158
auto devicePtrA = sycl::malloc_device<float >(dataSize, usmQueue);
159
159
auto devicePtrB = sycl::malloc_device<float >(dataSize, usmQueue);
160
160
auto devicePtrR = sycl::malloc_device<float >(dataSize, usmQueue);
161
161
162
162
usmQueue.memcpy (devicePtrA, a,
163
163
sizeof (float ) * dataSize)
164
- .wait (); // Synchronize
164
+ .wait (); // Synchronize
165
165
usmQueue.memcpy (devicePtrB, b,
166
166
sizeof (float ) * dataSize)
167
- .wait (); // Synchronize
167
+ .wait (); // Synchronize
168
168
169
169
usmQueue
170
- .parallel_for <vector_add_4>(sycl::range { dataSize },
170
+ .parallel_for <vector_add_4>(sycl::range{ dataSize},
171
171
[=](sycl::id<1 > idx) {
172
172
auto globalId = idx[0 ];
173
173
devicePtrR[globalId] =
174
174
devicePtrA[globalId] +
175
175
devicePtrB[globalId];
176
176
})
177
- .wait (); // Synchronize
177
+ .wait (); // Synchronize
178
178
179
179
usmQueue.memcpy (r, devicePtrR,
180
180
sizeof (float ) * dataSize)
181
- .wait (); // Synchronize and copy-back
181
+ .wait (); // Synchronize and copy-back
182
182
183
183
sycl::free (devicePtrA, usmQueue);
184
184
sycl::free (devicePtrB, usmQueue);
@@ -205,7 +205,7 @@ void test_usm_queue_wait() {
205
205
}
206
206
207
207
try {
208
- auto usmQueue = sycl::queue { usm_selector };
208
+ auto usmQueue = sycl::queue{ usm_selector};
209
209
210
210
auto devicePtrA = sycl::malloc_device<float >(dataSize, usmQueue);
211
211
auto devicePtrB = sycl::malloc_device<float >(dataSize, usmQueue);
@@ -214,21 +214,21 @@ void test_usm_queue_wait() {
214
214
usmQueue.memcpy (devicePtrA, a, sizeof (float ) * dataSize);
215
215
usmQueue.memcpy (devicePtrB, b, sizeof (float ) * dataSize);
216
216
217
- usmQueue.wait (); // Synchronize
217
+ usmQueue.wait (); // Synchronize
218
218
219
219
usmQueue.parallel_for <vector_add_5>(
220
- sycl::range { dataSize }, [=](sycl::id<1 > idx) {
220
+ sycl::range{ dataSize}, [=](sycl::id<1 > idx) {
221
221
auto globalId = idx[0 ];
222
222
devicePtrR[globalId] = devicePtrA[globalId] + devicePtrB[globalId];
223
223
});
224
224
225
- usmQueue.wait (); // Synchronize
225
+ usmQueue.wait (); // Synchronize
226
226
227
227
usmQueue.memcpy (r, devicePtrR,
228
228
sizeof (float ) * dataSize)
229
- .wait (); // Copy-back
229
+ .wait (); // Copy-back
230
230
231
- usmQueue.wait (); // Synchronize
231
+ usmQueue.wait (); // Synchronize
232
232
233
233
sycl::free (devicePtrA, usmQueue);
234
234
sycl::free (devicePtrB, usmQueue);
@@ -255,34 +255,34 @@ void test_buffer_host_accessor() {
255
255
}
256
256
257
257
try {
258
- auto defaultQueue = sycl::queue {};
258
+ auto defaultQueue = sycl::queue{};
259
259
260
260
{
261
- auto bufA = sycl::buffer { a, sycl::range { dataSize } };
262
- auto bufB = sycl::buffer { b, sycl::range { dataSize } };
263
- auto bufR = sycl::buffer { r, sycl::range { dataSize } };
261
+ auto bufA = sycl::buffer{ a, sycl::range{ dataSize} };
262
+ auto bufB = sycl::buffer{ b, sycl::range{ dataSize} };
263
+ auto bufR = sycl::buffer{ r, sycl::range{ dataSize} };
264
264
265
265
defaultQueue.submit ([&](sycl::handler& cgh) {
266
- auto accA = sycl::accessor { bufA, cgh, sycl::read_only };
267
- auto accB = sycl::accessor { bufB, cgh, sycl::read_only };
268
- auto accR = sycl::accessor { bufR, cgh, sycl::write_only };
266
+ auto accA = sycl::accessor{ bufA, cgh, sycl::read_only};
267
+ auto accB = sycl::accessor{ bufB, cgh, sycl::read_only};
268
+ auto accR = sycl::accessor{ bufR, cgh, sycl::write_only};
269
269
270
270
cgh.parallel_for <vector_add_6>(
271
- sycl::range { dataSize },
271
+ sycl::range{ dataSize},
272
272
[=](sycl::id<1 > idx) { accR[idx] = accA[idx] + accB[idx]; });
273
273
});
274
274
275
- defaultQueue.wait (); // Synchronize
275
+ defaultQueue.wait (); // Synchronize
276
276
277
277
{
278
- auto hostAccR = bufR.get_host_access (sycl::read_only); // Copy-to-host
278
+ auto hostAccR = bufR.get_host_access (sycl::read_only); // Copy-to-host
279
279
280
280
for (int i = 0 ; i < dataSize; ++i) {
281
281
SYCLACADEMY_ASSERT (hostAccR[i] == i * 2 );
282
282
}
283
283
}
284
284
285
- } // Copy-back
285
+ } // Copy-back
286
286
287
287
defaultQueue.throw_asynchronous ();
288
288
} catch (const sycl::exception & e) {
0 commit comments