-
Notifications
You must be signed in to change notification settings - Fork 749
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
[Fusion] Add fusion JIT integration design proposal #7204
Conversation
Design document covering the approach to integrate the kernel fusion extension into the runtime and the kernel fusion JIT process. Signed-off-by: Victor Lomuller <victor@codeplay.com> Co-authored-by: Lukas Sommer <lukas.sommer@codeplay.com> Co-authored-by: Victor Perez <victor.perez@codeplay.com>
8e0fefc
to
367a96e
Compare
@bader Thanks for the review and comments. I pushed a new revision of the document addressing your comments. |
Ping |
This is the first patch in a series of patches to add an implementation of the [kernel fusion extension](#7098). We have split the implementation into multiple patches to make them more easy to review. This first patch introduces the user-facing API discussed in the [extension proposal](#7098). It does not yet add any fusion functionality, just the mere API and SYCL properties. Calls to the API will throw an error until the remaining functionality lands with the following patches. The design document for the overall implementation of kernel fusion can be found [here](#7204). Signed-off-by: Lukas Sommer <lukas.sommer@codeplay.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the third patch in a series of patches to add an implementation of the [kernel fusion extension](#7098). We have split the implementation into multiple patches to make them more easy to review. This patch integrates the kernel fusion extension into the SYCL runtime scheduler. Next to collecting the kernels submitted while in fusion mode in the fusion list associated with the queue, the integration into the scheduler is also responsible for detecting the synchronization scenarios. Various scenarios, such as buffer destruction or event wait, require fusion to be aborted early. The full list of scenarios is available in the [extension proposal](https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_codeplay_kernel_fusion.asciidoc#synchronization-in-the-sycl-application). A high-level description of the integration into the scheduler can be found in the [design document](#7204). This PR can be reviewed and merged independently of #7465. Signed-off-by: Lukas Sommer <lukas.sommer@codeplay.com> Signed-off-by: Lukas Sommer <lukas.sommer@codeplay.com>
This is the fifth patch in a series of patches to add an implementation of the [kernel fusion extension](#7098). We have split the implementation into multiple patches to make them more easy to review. This patch connects the JIT compiler for kernel fusion (`sycl-fusion`) with the SYCL runtime. - Enable the feature by default and add an option to `configure.py` to disable it. - Link the runtime against the JIT compiler library as a shared library. - Add logic to retrieve binaries (SPIR-V) and other information (e.g., accessors) from the SYCL RT and invoke the JIT compiler. - Representation to store binaries (SPIR-V) returned by JIT compiler in memory for use as PI device binaries. The integration of the JIT compiler into the SYCL RT is described in [this design document](#7204). Signed-off-by: Lukas Sommer <lukas.sommer@codeplay.com>
Resolved merge conflicts. |
Ping :) |
I think this falls into the same category as the XPTI design document PR. It seems like our decision is that the development team should be primarily responsible for reviewing design docs, and they should the @intel/dpcpp-specification-reviewers for input if there is a specific question about conformance to the language spec. If that is our direction, then I think the development team should be primary reviewer for this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have not reviewed this because we agreed that @intel/dpcpp-specification-reviewers do not need to approve changes to design documents. I'm approving only to allow @bader to merge.
Design document covering the approach to integrate the kernel fusion extension into the runtime and
the kernel fusion JIT process.
Covers design to implement extension proposed in #7098
Signed-off-by: Victor Lomuller victor@codeplay.com
Co-authored-by: Lukas Sommer lukas.sommer@codeplay.com
Co-authored-by: Victor Perez victor.perez@codeplay.com