Skip to content

[SYCL][DOC] Add Extension for FPGA task_sequence #6348

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 63 commits into from
Jul 8, 2024
Merged

Conversation

rho180
Copy link
Contributor

@rho180 rho180 commented Jun 23, 2022

This PR:

  1. Adds a new Intel FPGA experimental SYCL extension that introduces support for task_sequences which provides a sub kernel task level parallelism interface.
  2. Updates the fpga_kernel_interface SYCL extension to add the stall_enable_clusters and stall_free_clusters properties. These are used with task sequences as well.

@rho180 rho180 requested a review from a team as a code owner June 23, 2022 14:57
rho180 and others added 4 commits July 4, 2022 11:11
Co-authored-by: Steffen Larsen <[email protected]>
Co-authored-by: GarveyJoe <[email protected]>
Update response_capacity property definition. Remove 'single task' language from forward progress section.
Update properties, fixes to task_sequence class def.
rho180 and others added 3 commits December 5, 2022 10:36
- Add other property type traits
- Mention full name in overview, add note for short name
- change struct task_sequence to class task_sequence
- add note about pipelined property
Copy link
Contributor

@keryell keryell left a comment

Choose a reason for hiding this comment

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

Please start with a commented compelling code sample before diving into the details of the API.

@tiwaria1
Copy link
Contributor

tiwaria1 commented Jan 30, 2023

Please start with a commented compelling code sample before diving into the details of the API.

Yup I have a unaddressed comment I filed on that. I will add some code samples in the next update :)

1. Fix link to kernel properties
2. Clarify effect of multiple async calls
3. Fix Backend Support Status section
4. methods -> member function
5. Correct section that talks about applying property to task_sequence
@tiwaria1
Copy link
Contributor

tiwaria1 commented Feb 3, 2023

ping @steffenlarsen , please take another look. Thank you! :)

dm-vodopyanov pushed a commit that referenced this pull request Mar 12, 2024
…fpga_cluster kernel property (#12453)

Implement task_sequence header, task_sequence properties, and
fpga_cluster kernel property according to the spec updates
#6348 (almost ready to be merged)
Header
- Refactor invocation and response capacity to be on the Create
intrinsic, so Async and Get do not take in respective argument
- Remove max_outstanding argument of Create intrinsic
- Add pipelined and fpga_cluster arguments to Create intrinsic
- Async, Get, and Release intrinsic now accept the TargetExtType
target("spirv.TaskSequenceINTEL") returned from the Create intrinsic,
and do not take in object pointer or task function pointer arguments
- Task Sequence accepts properties

Task Sequence Properties
- Convert invocation and response capacity from template parameters to
properties
- Add balanced property to remove Get intrinsic loop in destructor

FPGA Kernel properties
- Add fpga_cluster property
- Support fpga_cluster and pipelined property for task sequence
@GarveyJoe GarveyJoe self-requested a review June 12, 2024 19:51
Copy link
Contributor

@steffenlarsen steffenlarsen left a comment

Choose a reason for hiding this comment

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

I think it looks good, but I want to resolve the topics we discussed offline, specifically whether we should remove the feature test macro from the existing code and move it to proposed, until the open issues are resolved and we can consider it supported in intel/llvm.

@aejjehint
Copy link
Contributor

I think it looks good, but I want to resolve the topics we discussed offline, specifically whether we should remove the feature test macro from the existing code and move it to proposed, until the open issues are resolved and we can consider it supported in intel/llvm.

@steffenlarsen I have moved the extension to proposed. As for the issue regarding the test macro, the definition of the macro in intel/llvm will be removed once I roll back the change that introduced it a few months ago (#12453). As such, the definition of the macro as described in this spec will be viable as no product has shipped with the macro definition. Once the spec is finalized and checked in, and we are ready to re-apply the headers change I will put the macro definition back in and move the spec to experimental. Let me know if you have any other concerns.

Copy link
Contributor

@steffenlarsen steffenlarsen left a comment

Choose a reason for hiding this comment

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

Sounds good to me. 👍

@aejjehint aejjehint requested a review from GarveyJoe June 25, 2024 18:35
@steffenlarsen steffenlarsen merged commit 86efa23 into intel:sycl Jul 8, 2024
2 checks passed
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.