Skip to content
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

[SPIR-V][DOC] add extensions for subgroup requirements #11301

Draft
wants to merge 1 commit into
base: sycl
Choose a base branch
from

Conversation

bashbaug
Copy link
Contributor

This PR has draft SPIR-V and OpenCL extensions to describe "subgroup requirements". These are preview extensions, intended to provide early access to a feature for review and community feedback.

These sorts of "subgroup requirements" could be used to implement sycl_ext_oneapi_named_sub_group_sizes, for example.

Signed-off-by: Ben Ashbaugh <ben.ashbaugh@intel.com>
@bashbaug bashbaug requested review from a team as code owners September 25, 2023 21:51
@bashbaug bashbaug marked this pull request as draft September 25, 2023 21:51
|=====
2+^.^| Execution Mode 3+<.^| Extra Operands | Enabling Capabilities
| 6446 | *NamedSubgroupSizeINTEL*
3+| _Named Subgroup Size_ | *SubgroupRequirementsINTEL*
Copy link
Contributor

Choose a reason for hiding this comment

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

The SubgroupSize execution mode has SubgroupDispatch as an enabling capability, should NamedSubgroupSizeINTEL have SubgroupDispatch as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good question, and good observation!

I think it could, but currently the SubgroupDispatch capability "implicitly declares" the DeviceEnqueue capability. This is almost certainly a mistake, and we're looking at ways to fix this in the Khronos SPIR working group (for Khronos folks, see internal SPIR-V issue 525). Until this is resolved though, I'd prefer not to propagate this mistake to another feature, and I think this feature can stand on its own without needing anything else from SubgroupDispatch. Does this make sense?

Copy link
Contributor

Choose a reason for hiding this comment

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

I see, that makes sense, thanks for the clarification.

MrSidims pushed a commit to KhronosGroup/SPIRV-LLVM-Translator that referenced this pull request Feb 8, 2024
Spec: intel/llvm#11301

More accurately, this PR adds support for the named subgroup related features of SPV_INTEL_subgroup_requirements to support implementation of sycl_ext_named_sub_group_sizes (also see intel/llvm#12335). The features related to subgroup lane mapping are not added yet.
jsji pushed a commit that referenced this pull request Feb 8, 2024
Spec: #11301

More accurately, this PR adds support for the named subgroup related features of SPV_INTEL_subgroup_requirements to support implementation of sycl_ext_named_sub_group_sizes (also see #12335). The features related to subgroup lane mapping are not added yet.

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@43acfef
Copy link
Contributor

This pull request is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be automatically closed in 30 days.

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