Skip to content

Support SYCL source compilation - #2206

Open
ndgrigorian wants to merge 14 commits into
masterfrom
feature/sycl-source-compilation
Open

Support SYCL source compilation#2206
ndgrigorian wants to merge 14 commits into
masterfrom
feature/sycl-source-compilation

Conversation

@ndgrigorian

Copy link
Copy Markdown
Collaborator

This PR adds support for creating an executable kernel_bundle from SYCL source code to dpctl using the kernel_compiler DPC++ extension

Supersedes gh-2049

  • Have you provided a meaningful PR description?
  • Have you added a test, reproducer or referred to an issue with a reproducer?
  • Have you tested your changes locally for CPU and GPU devices?
  • Have you made sure that new changes do not introduce compiler warnings?
  • Have you checked performance impact of proposed changes?
  • Have you added documentation for your changes, if necessary?
  • Have you added your changes to the changelog?
  • If this PR is a work in progress, are you opening the PR as a draft?

@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

Array API standard conformance tests for dpctl=0.22.0dev0=py310h93fe807_65 ran successfully.
Passed: 1111
Failed: 47
Skipped: 82

@coveralls

coveralls commented Nov 30, 2025

Copy link
Copy Markdown
Collaborator

Coverage Status

coverage: 74.373% (+0.3%) from 74.054% — feature/sycl-source-compilation into master

@github-actions

github-actions Bot commented Dec 3, 2025

Copy link
Copy Markdown

Array API standard conformance tests for dpctl=0.22.0dev0=py310h93fe807_66 ran successfully.
Passed: 1115
Failed: 43
Skipped: 82

@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch from 9d64cb8 to 22475d9 Compare December 17, 2025 21:13
@github-actions

Copy link
Copy Markdown

Array API standard conformance tests for dpctl=0.22.0dev0=py310h93fe807_104 ran successfully.
Passed: 1114
Failed: 44
Skipped: 82

@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch 2 times, most recently from 75969ce to be75a7e Compare February 11, 2026 22:44
@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch from cf56032 to 7a58ef7 Compare February 17, 2026 02:13
@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch from 43d385b to 788fdd2 Compare April 8, 2026 09:12
@ndgrigorian
ndgrigorian changed the base branch from master to feature/uncouple-tensor-from-dpctl April 8, 2026 09:13
@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch from 788fdd2 to 4656feb Compare April 8, 2026 09:39
@ndgrigorian
ndgrigorian force-pushed the feature/uncouple-tensor-from-dpctl branch 2 times, most recently from b610ee3 to dd74214 Compare April 13, 2026 16:47
Base automatically changed from feature/uncouple-tensor-from-dpctl to master April 13, 2026 20:20
@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch from 4656feb to cae6959 Compare April 28, 2026 21:01
@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch 3 times, most recently from 417c4a0 to ece9fa0 Compare May 26, 2026 15:26
Comment thread dpctl/program/_program.pyx Outdated
Comment thread dpctl/program/_program.pyx Outdated
Comment thread dpctl/program/_program.pyx Outdated
Comment thread dpctl/program/_program.pyx Outdated
Comment thread dpctl/program/_program.pyx Outdated
Comment thread libsyclinterface/source/dpctl_sycl_kernel_bundle_interface.cpp
Comment thread dpctl/program/_program.pyx Outdated
Comment thread docs/doc_sources/api_reference/dpctl/program.rst
Comment thread dpctl/program/_program.pyx Outdated
@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch from 8d662b5 to f27db86 Compare August 5, 2026 21:05
ndgrigorian added a commit that referenced this pull request Aug 5, 2026
sommerlukas and others added 4 commits August 5, 2026 20:10
Enable SYCL source compilation, but only for DPC++ versions that actually
support the compilation, based on the __SYCL_COMPILER_VERSION reported.

Uses the correct naming for the property based on DPC++ version,
detected through C++ type traits to check which property actually refers
to a fully defined type.

This commit also 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 <lukas.sommer@codeplay.com>
@ndgrigorian
ndgrigorian force-pushed the feature/sycl-source-compilation branch from 838dcaf to 57cd047 Compare August 6, 2026 03:10
Comment thread libsyclinterface/source/dpctl_sycl_device_interface.cpp
Comment thread libsyclinterface/source/dpctl_sycl_device_interface.cpp Outdated
Comment thread CHANGELOG.md Outdated
Comment thread libsyclinterface/source/dpctl_sycl_device_interface.cpp Outdated
@ndgrigorian
ndgrigorian requested a review from antonwolfy August 6, 2026 13:28
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.

5 participants