Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge the ND-Range Kernel lesson into Data Parallelism #388

Merged
merged 2 commits into from
Jan 15, 2025

Conversation

rafbiels
Copy link
Collaborator

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 only sycl::range as the SYCL execution model, and only later the "ND-Range Kernel" lesson introduced nd_range, extending the knowledge. Now, the nd_range is introduced first as the SYCL execution model and then, at the end of the same section, the sycl::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" tested sycl::item as well as sycl::nd_item. Merge the two by using most of the code from the latter, but using sycl::id instead of sycl::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.

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 exercises were also
similar, where "Data Paralellism" tested sycl::range + sycl::id
version and ND-Range tested sycl::range + sycl::item as well as
sycl::nd_range + sycl::nd_item. Merge the two by using most of
the code from the latter, but using sycl::id instead of sycl::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.
Constant memory is deprecated in SYCL 2020, so remove
it from the slides about the SYCL memory model.
@DuncanMcBain DuncanMcBain merged commit f1091a6 into codeplaysoftware:main Jan 15, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants