@@ -255,6 +255,20 @@ on the command line as this makes configurating the toolset version easier.
255
255
],
256
256
```
257
257
258
+ ## Working on the Exercises
259
+ Once you have a working SYCL compiler, you are ready to start writing some SYCL code. To find the first exercise:
260
+ ```
261
+ cd Code_Exercises/Exercise_01_Compiling_with_SYCL/
262
+ ```
263
+ And read the README.md for further instructions.
264
+
265
+ Each exercise directory contains:
266
+ * ``` README.md ``` , which contains instructions of how to complete a given exercise, as well as directions for compilation.
267
+ * ``` source.cpp ``` , a placeholder file where your code implementation should be written.
268
+ * ``` solution.cpp ``` , where a solution has been implemented in advance.
269
+
270
+ Once you have completed any given exercise make sure to compare your implementation against the corresponding ``` solution.cpp ``` .
271
+
258
272
## Online Interactive Tutorial
259
273
260
274
Hosted by tech.io, this [ SYCL Introduction] ( https://tech.io/playgrounds/48226/introduction-to-sycl/introduction-to-sycl-2 ) tutorial introduces the concepts of SYCL. The website also provides the ability to compile and execute SYCL code from your web browser.
@@ -277,97 +291,97 @@ SYCL and the SYCL logo are trademarks of the Khronos Group Inc.
277
291
[ video-playlist ] : https://youtube.com/playlist?list=PLCssnq0MpRdM-IUAYtNSPYck6u3oz7OZQ
278
292
279
293
[ lesson-1-slides ] : ./Lesson_Materials/Lecture_01_What_is_SYCL/
280
- [ lesson-1-exercise ] : ./Code_Exercises/Exercise_01_Compiling_with_SYCL/doc .md
294
+ [ lesson-1-exercise ] : ./Code_Exercises/Exercise_01_Compiling_with_SYCL/README .md
281
295
[ lesson-1-source ] : ./Code_Exercises/Exercise_01_Compiling_with_SYCL/source.cpp
282
296
[ lesson-1-solution ] : ./Code_Exercises/Exercise_01_Compiling_with_SYCL/solution.cpp
283
297
284
298
[ lesson-2-slides ] : ./Lesson_Materials/Lecture_02_Enqueuing_a_Kernel/
285
- [ lesson-2-exercise ] : ./Code_Exercises/Exercise_02_Hello_World/doc .md
299
+ [ lesson-2-exercise ] : ./Code_Exercises/Exercise_02_Hello_World/README .md
286
300
[ lesson-2-source ] : ./Code_Exercises/Exercise_02_Hello_World/source.cpp
287
301
[ lesson-2-solution ] : ./Code_Exercises/Exercise_02_Hello_World/solution.cpp
288
302
289
303
[ lesson-3-slides ] : ./Lesson_Materials/Lecture_03_Managing_Data/
290
- [ lesson-3-exercise ] : ./Code_Exercises/Exercise_03_Scalar_Add/doc .md
304
+ [ lesson-3-exercise ] : ./Code_Exercises/Exercise_03_Scalar_Add/README .md
291
305
[ lesson-3-source ] : ./Code_Exercises/Exercise_03_Scalar_Add/source.cpp
292
306
[ lesson-3-solution ] : ./Code_Exercises/Exercise_03_Scalar_Add/solution.cpp
293
307
294
308
[ lesson-4-slides ] : ./Lesson_Materials/Lecture_04_Handling_Errors/
295
- [ lesson-4-exercise ] : ./Code_Exercises/Exercise_04_Handling_Errors/doc .md
309
+ [ lesson-4-exercise ] : ./Code_Exercises/Exercise_04_Handling_Errors/README .md
296
310
[ lesson-4-source ] : ./Code_Exercises/Exercise_04_Handling_Errors/source.cpp
297
311
[ lesson-4-solution ] : ./Code_Exercises/Exercise_04_Handling_Errors/solution.cpp
298
312
299
313
[ lesson-5-slides ] : ./Lesson_Materials/Lecture_05_Device_Discovery/
300
- [ lesson-5-exercise ] : ./Code_Exercises/Exercise_05_Device_Selection/doc .md
314
+ [ lesson-5-exercise ] : ./Code_Exercises/Exercise_05_Device_Selection/README .md
301
315
[ lesson-5-source ] : ./Code_Exercises/Exercise_05_Device_Selection/source.cpp
302
316
[ lesson-5-solution ] : ./Code_Exercises/Exercise_05_Device_Selection/solution.cpp
303
317
304
318
[ lesson-6-slides ] : ./Lesson_Materials/Lecture_06_Data_Parallelism/
305
- [ lesson-6-exercise ] : ./Code_Exercises/Exercise_06_Vector_Add/doc .md
319
+ [ lesson-6-exercise ] : ./Code_Exercises/Exercise_06_Vector_Add/README .md
306
320
[ lesson-6-source ] : ./Code_Exercises/Exercise_06_Vector_Add/source.cpp
307
321
[ lesson-6-solution ] : ./Code_Exercises/Exercise_06_Vector_Add/solution.cpp
308
322
309
323
[ lesson-7-slides ] : ./Lesson_Materials/Lecture_07_Introduction_to_USM/
310
- [ lesson-7-exercise ] : ./Code_Exercises/Exercise_07_USM_Selector/doc .md
324
+ [ lesson-7-exercise ] : ./Code_Exercises/Exercise_07_USM_Selector/README .md
311
325
[ lesson-7-source ] : ./Code_Exercises/Exercise_07_USM_Selector/source.cpp
312
326
[ lesson-7-solution ] : ./Code_Exercises/Exercise_07_USM_Selector/solution.cpp
313
327
314
328
[ lesson-8-slides ] : ./Lesson_Materials/Lecture_08_Using_USM/
315
- [ lesson-8-exercise ] : ./Code_Exercises/Exercise_08_USM_Vector_Add/doc .md
329
+ [ lesson-8-exercise ] : ./Code_Exercises/Exercise_08_USM_Vector_Add/README .md
316
330
[ lesson-8-source ] : ./Code_Exercises/Exercise_08_USM_Vector_Add/source.cpp
317
331
[ lesson-8-solution ] : ./Code_Exercises/Exercise_08_USM_Vector_Add/solution.cpp
318
332
319
333
[ lesson-9-slides ] : ./Lesson_Materials/Lecture_09_Asynchronous_Execution/
320
- [ lesson-9-exercise ] : ./Code_Exercises/Exercise_09_Synchronization/doc .md
334
+ [ lesson-9-exercise ] : ./Code_Exercises/Exercise_09_Synchronization/README .md
321
335
[ lesson-9-source ] : ./Code_Exercises/Exercise_09_Synchronization/source.cpp
322
336
[ lesson-9-solution ] : ./Code_Exercises/Exercise_09_Synchronization/solution.cpp
323
337
324
338
[ lesson-10-slides ] : ./Lesson_Materials/Lecture_10_Data_and_Dependencies/
325
- [ lesson-10-exercise ] : ./Code_Exercises/Exercise_10_Managing_Dependencies/doc .md
339
+ [ lesson-10-exercise ] : ./Code_Exercises/Exercise_10_Managing_Dependencies/README .md
326
340
[ lesson-10-source ] : ./Code_Exercises/Exercise_10_Managing_Dependencies/source.cpp
327
341
[ lesson-10-solution ] : ./Code_Exercises/Exercise_10_Managing_Dependencies/solution.cpp
328
342
329
343
[ lesson-11-slides ] : ./Lesson_Materials/Lecture_11_In_Order_Queue/
330
- [ lesson-11-exercise ] : ./Code_Exercises/Exercise_11_In_Order_Queue/doc .md
344
+ [ lesson-11-exercise ] : ./Code_Exercises/Exercise_11_In_Order_Queue/README .md
331
345
[ lesson-11-source ] : ./Code_Exercises/Exercise_11_In_Order_Queue/source.cpp
332
346
[ lesson-11-solution ] : ./Code_Exercises/Exercise_11_In_Order_Queue/solution.cpp
333
347
334
348
[ lesson-12-slides ] : ./Lesson_Materials/Lecture_12_Advanced_Data_Flow/
335
- [ lesson-12-exercise ] : ./Code_Exercises/Exercise_12_Temporary_Data/doc .md
349
+ [ lesson-12-exercise ] : ./Code_Exercises/Exercise_12_Temporary_Data/README .md
336
350
[ lesson-12-source ] : ./Code_Exercises/Exercise_12_Temporary_Data/source.cpp
337
351
[ lesson-12-solution ] : ./Code_Exercises/Exercise_12_Temporary_Data/solution.cpp
338
352
339
353
[ lesson-13-slides ] : ./Lesson_Materials/Lecture_13_Multiple_Devices/
340
- [ lesson-13-exercise ] : ./Code_Exercises/Exercise_13_Load_Balancing/doc .md
354
+ [ lesson-13-exercise ] : ./Code_Exercises/Exercise_13_Load_Balancing/README .md
341
355
[ lesson-13-source ] : ./Code_Exercises/Exercise_13_Load_Balancing/source.cpp
342
356
[ lesson-13-solution ] : ./Code_Exercises/Exercise_13_Load_Balancing/solution.cpp
343
357
344
358
[ lesson-14-slides ] : ./Lesson_Materials/Lecture_14_ND_Range_Kernel/
345
- [ lesson-14-exercise ] : ./Code_Exercises/Exercise_14_ND_Range_Kernel/doc .md
359
+ [ lesson-14-exercise ] : ./Code_Exercises/Exercise_14_ND_Range_Kernel/README .md
346
360
[ lesson-14-source ] : ./Code_Exercises/Exercise_14_ND_Range_Kernel/source.cpp
347
361
[ lesson-14-solution ] : ./Code_Exercises/Exercise_14_ND_Range_Kernel/solution.cpp
348
362
349
363
[ lesson-15-slides ] : ./Lesson_Materials/Lecture_15_Image_Convolution/
350
- [ lesson-15-exercise ] : ./Code_Exercises/Exercise_15_Image_Convolution/doc .md
364
+ [ lesson-15-exercise ] : ./Code_Exercises/Exercise_15_Image_Convolution/README .md
351
365
[ lesson-15-source ] : ./Code_Exercises/Exercise_15_Image_Convolution/source.cpp
352
366
[ lesson-15-solution ] : ./Code_Exercises/Exercise_15_Image_Convolution/reference.cpp
353
367
354
368
[ lesson-16-slides ] : ./Lesson_Materials/Lecture_16_Coalesced_Global_Memory/
355
- [ lesson-16-exercise ] : ./Code_Exercises/Exercise_16_Coalesced_Global_Memory/doc .md
369
+ [ lesson-16-exercise ] : ./Code_Exercises/Exercise_16_Coalesced_Global_Memory/README .md
356
370
[ lesson-16-source ] : ./Code_Exercises/Exercise_16_Coalesced_Global_Memory/source.cpp
357
371
[ lesson-16-solution ] : ./Code_Exercises/Exercise_16_Coalesced_Global_Memory/solution.cpp
358
372
359
373
[ lesson-17-slides ] : ./Lesson_Materials/Lecture_17_Vectors/
360
- [ lesson-17-exercise ] : ./Code_Exercises/Exercise_17_Vectors/doc .md
374
+ [ lesson-17-exercise ] : ./Code_Exercises/Exercise_17_Vectors/README .md
361
375
[ lesson-17-source ] : ./Code_Exercises/Exercise_17_Vectors/source.cpp
362
376
[ lesson-17-solution ] : ./Code_Exercises/Exercise_17_Vectors/solution.cpp
363
377
364
378
[ lesson-18-slides ] : ./Lesson_Materials/Lecture_18_Local_Memory_Tiling/
365
- [ lesson-18-exercise ] : ./Code_Exercises/Exercise_18_Local_Memory_Tiling/doc .md
379
+ [ lesson-18-exercise ] : ./Code_Exercises/Exercise_18_Local_Memory_Tiling/README .md
366
380
[ lesson-18-source ] : ./Code_Exercises/Exercise_18_Local_Memory_Tiling/source.cpp
367
381
[ lesson-18-solution ] : ./Code_Exercises/Exercise_18_Local_Memory_Tiling/solution.cpp
368
382
369
383
[ lesson-19-slides ] : ./Lesson_Materials/Lecture_19_Work_Group_Sizes/
370
- [ lesson-19-exercise ] : ./Code_Exercises/Exercise_19_Work_Group_Sizes/doc .md
384
+ [ lesson-19-exercise ] : ./Code_Exercises/Exercise_19_Work_Group_Sizes/README .md
371
385
[ lesson-19-source ] : ./Code_Exercises/Exercise_19_Work_Group_Sizes/source.cpp
372
386
[ lesson-19-solution ] : ./Code_Exercises/Exercise_19_Work_Group_Sizes/solution.cpp
373
387
0 commit comments