Skip to content

[SYCL][UR] Add max_threads_per_compute_unit device query#22666

Open
zjin-lcf wants to merge 1 commit into
intel:syclfrom
zjin-lcf:device-max-threads-per-multiprocessor
Open

[SYCL][UR] Add max_threads_per_compute_unit device query#22666
zjin-lcf wants to merge 1 commit into
intel:syclfrom
zjin-lcf:device-max-threads-per-multiprocessor

Conversation

@zjin-lcf

Copy link
Copy Markdown
Contributor

Expose the maximum number of work-items (threads) that can be resident on a single compute unit, which CUDA and HIP report as
CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR and hipDeviceAttributeMaxThreadsPerMultiProcessor respectively. This complements the existing ext::oneapi::info::device::num_compute_units query and lets applications reason about per-SM/CU occupancy in a backend-portable way.

Plumbing (mirrors num_compute_units):

  • UR: new optional-query UR_DEVICE_INFO_MAX_THREADS_PER_COMPUTE_UNIT (device.yml
    • generated ur_api.h/ur_print.hpp).
  • Adapters: implemented in the CUDA and HIP adapters; other backends fall through to the existing UNSUPPORTED_ENUMERATION default, as befits an optional query.
  • SYCL: new ext::oneapi::info::device::max_threads_per_compute_unit descriptor (return_type size_t), runtime dispatch in device_impl.hpp, return-type map entry, and explicit template instantiation in device.cpp.
  • Updated the Linux/Windows ABI symbol dumps for the new instantiation.

Expose the maximum number of work-items (threads) that can be resident on a
single compute unit, which CUDA and HIP report as
CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR and
hipDeviceAttributeMaxThreadsPerMultiProcessor respectively. This complements
the existing ext::oneapi::info::device::num_compute_units query and lets
applications reason about per-SM/CU occupancy in a backend-portable way.

Plumbing (mirrors num_compute_units):
- UR: new optional-query UR_DEVICE_INFO_MAX_THREADS_PER_COMPUTE_UNIT (device.yml
  + generated ur_api.h/ur_print.hpp).
- Adapters: implemented in the CUDA and HIP adapters; other backends fall
  through to the existing UNSUPPORTED_ENUMERATION default, as befits an
  optional query.
- SYCL: new ext::oneapi::info::device::max_threads_per_compute_unit descriptor
  (return_type size_t), runtime dispatch in device_impl.hpp, return-type map
  entry, and explicit template instantiation in device.cpp.
- Updated the Linux/Windows ABI symbol dumps for the new instantiation.

Co-authored-by: Cursor <cursoragent@cursor.com>
@zjin-lcf
zjin-lcf requested review from a team as code owners July 18, 2026 13:03
@zjin-lcf
zjin-lcf requested review from rafNNN and uditagarwal97 July 18, 2026 13:03
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.

1 participant