Merge the ND-Range Kernel lesson into Data Parallelism #388
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The "Data Parallelism" and "ND-Range Kernel" lessons duplicated a lot of material, which became confusing when we tried presenting both in a workshop. The duplication is unneccesary and also adds to the maintenance cost.
Merge the "ND-Range Kernel" lesson into "Data Parallelism" by moving all the unique slides from the latter into the former and reordering so it has a reasonable flow. The only significant change in the flow is how
sycl::range
kernels are introduced. Previously, the "Data Parallelism" introduced onlysycl::range
as the SYCL execution model, and only later the "ND-Range Kernel" lesson introducednd_range
, extending the knowledge. Now, thend_range
is introduced first as the SYCL execution model and then, at the end of the same section, thesycl::range
model is introduced as a simplified model that is "useful for simple problems which don't require synchronization, local memory and ultimate performance". This is a true reflection of how SYCL is used in real life and sets the right expectations.The exercises were also similar, where "Data Paralellism" tested a
sycl::id
kernel and "ND-Range Kernel" testedsycl::item
as well assycl::nd_item
. Merge the two by using most of the code from the latter, but usingsycl::id
instead ofsycl::item
. Merge the README instructions from both to retain full detail.The top-level README is adjusted to renumber all lessons after the removed one.