-
Notifications
You must be signed in to change notification settings - Fork 29
Support compilation from SYCL source code #2049
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
base: master
Are you sure you want to change the base?
Support compilation from SYCL source code #2049
Conversation
The
|
Builds seem to be failing on the current compiler version, so this will probably need to be gated like the others behind utilities that check for the availability of the "kernel_compiler" extension |
On the plus side, it's passing with 2025.2, and OS builds work—tests won't run until rebased on/merged with master though |
SYCL runtime compilation should also be supported with 2025.1, but the @ndgrigorian Do you know how to distinguish the different minor versions? I tried with |
Compiler also defines |
Enable SYCL source compilation only for DPC++ versions that actually support the compilation, based on the __SYCL_COMPILER_VERSION reported. Use the correct naming for the property based on DPC++ version. Remove all mentions of `std::vector` and other STL types from the header and use opaque pointers instead. Signed-off-by: Lukas Sommer <[email protected]>
9869a76
to
6c12649
Compare
I ended up using |
This commit works around a bug in DPC++ version 2025.1. The constructor with no parameter of class `include_files` was only declared, but never defined. Calling it when creating a SYCL source kernel bundle therefore leads to references to undefined symbols with DPC++ version 2025.1. This change works around this issue by calling an alternative constructor, which is defined in the release. Signed-off-by: Lukas Sommer <[email protected]>
Coverage failure relates to two of the newly-added tests
|
Which version of the Intel OpenCL for CPU runtime is that setup using? Locally, I had segfaults with these tests in If you have control over the setup, we could try updating the driver. Alternatively, we could deactivate the tests (and RTC support) for OpenCL CPU for now. |
This is probably the problem. It installs manually from a pretty old version, I'll go ahead and bump it in a separate PR and if that doesn't introduce any problems, we can rebase this again and see if it resolves it. |
@sommerlukas |
This adds support to create a program/executable kernel_bundle from SYCL source code.
It uses the DPC++
kernel_compiler
extension. As this is only an extension and not all backends are supported, a query on the device was added to check for support for compilation.