Skip to content

Conversation

steffenlarsen
Copy link
Contributor

This commit adds a new link overload under the experimental namespace taking a compile-time property list. With this, a new property is added for enabling fast-linking, i.e. linking allowing AOT binaries in a SYCLBIN-based kernel bundle together with JIT binaries. These are all added as part of the sycl_ext_oneapi_syclbin extension.

This commit adds a new link overload under the experimental namespace
taking a compile-time property list. With this, a new property is added
for enabling fast-linking, i.e. linking allowing AOT binaries in a
SYCLBIN-based kernel bundle together with JIT binaries. These are all
added as part of the sycl_ext_oneapi_syclbin extension.

Signed-off-by: Larsen, Steffen <[email protected]>
@steffenlarsen steffenlarsen requested a review from a team as a code owner October 2, 2025 14:43

|====

=== New free function for linking
Copy link
Contributor

Choose a reason for hiding this comment

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

I think it would be better to add these overloads of link to the sycl_ext_oneapi_kernel_compiler instead. That way, all the new overloads of build, compile, and link taking a PropertyList will be together in one extension. Do you see a downside to that?


This property instructs the `link` operation to do "fast linking". Enabling this
instructs the implementation to use device binary images that have been
pre-compiled.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd add another couple of sentences explaining the tradeoff:

Fast linking trades off potentially slower kernel code for faster link times. When doing normal linking, the compiler may be able to optimize across calls from one bundle to another, but this is not possible when doing fast linking.

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