Skip to content

[SYCL][Doc] Add slm_per_subslice query for Xe GPUs #16376

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

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

Conversation

Pennycook
Copy link
Contributor

Extends sycl_ext_intel_device_info with a new query for the amount of SLM per subslice. The amount of SLM per subslice may be greater than the amount of memory available to a single work-group, and can be used to reason about occupancy.

@Pennycook Pennycook added the spec extension All issues/PRs related to extensions specifications label Dec 16, 2024
@Pennycook
Copy link
Contributor Author

@gmlueck - I've opened this as a draft because I think that's your preferred workflow for updates to supported extensions, but this is ready for review.

@bader
Copy link
Contributor

bader commented Dec 16, 2024

@gmlueck, Intel introduced new terminology for GPUs in 2022.

https://www.intel.com/content/www/us/en/docs/oneapi/optimization-guide-gpu/2023-0/intel-iris-xe-gpu-architecture.html#XE-TERMINOLOGY-CHANGES

I think we should update DPC++ documentation/specifications to use new terminology at some point.

@gmlueck
Copy link
Contributor

gmlueck commented Dec 17, 2024

I think we should update DPC++ documentation/specifications to use new terminology at some point.

The APIs in this extension are all pass-throughs to Level Zero. It seems like the Level Zero documentation is still using the old terminology:

https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#_CPPv422ze_device_properties_t

@AlexeySachkov
Copy link
Contributor

I think we should update DPC++ documentation/specifications to use new terminology at some point.

The APIs in this extension are all pass-throughs to Level Zero. It seems like the Level Zero documentation is still using the old terminology:

https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#_CPPv422ze_device_properties_t

But do our customers care about whether or not this is a pass-through to L0? We already have asks to update the used terminology: #16068

@gmlueck
Copy link
Contributor

gmlueck commented Feb 5, 2025

I think many customers who call these low-level APIs do know about the Level Zero interfaces, though. Using different terms in the SYCL API may add more confusion since it will be unclear how the SYCL API relates to the Level Zero one. In addition, all the other APIs in this extension use the old terminology, so it would be weird to change just this one.

Updating the SYCL terminology seems like a good goal, but I'd rather do it in conjunction with changes to the Level Zero API.

@gmlueck
Copy link
Contributor

gmlueck commented Aug 11, 2025

@Pennycook It seems like the issues above are resolved? If that is the case, then I'd suggest:

  • Resolve conflicts
  • Keep the PR as "draft" since we don't want to update the spec until the feature is available for customers to use
  • Open an internal tracker about implementing this new query

I forget which customer request lead to this proposal, but we should include that in the tracker if possible.

Extends sycl_ext_intel_device_info with a new query for the amount of SLM per
subslice. The amount of SLM per subslice may be greater than the amount of
memory available to a single work-group, and can be used to reason about
occupancy.

Signed-off-by: John Pennycook <john.pennycook@intel.com>
@Pennycook Pennycook force-pushed the sycl_ext_intel_device_info branch from 6b68096 to 31d410d Compare August 12, 2025 10:13
@Pennycook
Copy link
Contributor Author

Resolving the merge conflicts was too hard -- the other changes introduced lots of similar subsections, and git diff got very confused. I rebased the changes on top of the sycl branch instead, but had to force push the result as 31d410d.

CMPLRLLVM-64348 already exists to track the implementation, and CMPLRLLVM-64179 is the original customer request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec extension All issues/PRs related to extensions specifications
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants