Skip to content

[SYCL] Implement the sycl_oneapi_raw_kernel_arg extension #14335

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

Merged
merged 13 commits into from
Jul 3, 2024

Conversation

steffenlarsen
Copy link
Contributor

This commit implements the sycl_oneapi_raw_kernel_arg extension.

This commit implements the sycl_oneapi_raw_kernel_arg extension.

Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
@steffenlarsen steffenlarsen marked this pull request as ready for review July 1, 2024 07:22
@steffenlarsen steffenlarsen requested review from a team as code owners July 1, 2024 07:22
Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
Copy link
Contributor

@uditagarwal97 uditagarwal97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SYCL changes LGTM.

Copy link
Contributor

@gmlueck gmlueck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spec changes LGTM.

@steffenlarsen steffenlarsen merged commit b7e8523 into intel:sycl Jul 3, 2024
15 checks passed
aelovikov-intel pushed a commit that referenced this pull request Sep 3, 2024
Support using the `raw_kernel_arg` objects defined by
[sycl_ext_oneapi_raw_kernel_arg](https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_oneapi_raw_kernel_arg.asciidoc)
in SYCL-Graphs.

The majority of changes in this PR are for supporting the
[dynamic_parameter](https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc#742-dynamic-parameters)
feature of SYCL graph. In particular:

* The #14335 implementation of `
`sycl_oneapi_raw_kernel_arg` doesn't use the PIMPL implementation
pattern. We therefore add the `dynamic_parameter` impl class as a friend
so that, it can access the underlying members.

* To prevent circular include dependencies we can't include the public
facing `raw_kernel_arg.hpp` header in the public facing `graph.hpp`
header to using a raw_kernel_arg specific code path for
`dynamic_parameter` update. Instead we overlead the `updateValue(const
void *NewValue, size_t Size);` method with `void updateValue(const
raw_kernel_arg *NewRawValue, size_t Size);` as the `raw_kernel_arg`
pointer can be forward declared and the compiler will pick the correct
code path although the `Size` argument is unused.
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.

3 participants