Skip to content

[SYCL][UR] Add partial support for IGCA device query - #23254

Open
KornevNikita wants to merge 3 commits into
intel:syclfrom
KornevNikita:support-sycl-igca-ext
Open

KornevNikita wants to merge 3 commits into
intel:syclfrom
KornevNikita:support-sycl-igca-ext

Conversation

@KornevNikita

@KornevNikita KornevNikita commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Adds the ext_intel_igca device query: a new UR device info pair
(UR_DEVICE_INFO_IGCA_TARGET, UR_DEVICE_INFO_IGCA_FEATURE_SET) and the SYCL
ext::intel::info::device::igca descriptor returning info::igca { level, features },
guarded by the new aspect::ext_intel_igca.

Spec: #23240

Level Zero does not report IGCA yet, so the adapter returns dummy values (level 0,
empty feature set), which are both invalid and can't be mistaken for real data.
Other adapters return UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION, so the aspect is
false everywhere for now. A follow-up patch will wire it up once zeDeviceGetProperties
exposes it; SYCL_EXT_INTEL_DEVICE_INFO will be bumped to 11 at that point.

UR files under include/ and generated sources were produced by the UR code
generator from unified-runtime/scripts/core/device.yml.

🤖 Generated with Claude Code

KornevNikita and others added 2 commits September 23, 2026 21:32
Spec: intel#23240

Level Zero does not report IGCA yet, so the adapter returns dummy values.
A follow-up patch will wire it up once support lands.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@KornevNikita
KornevNikita marked this pull request as ready for review September 24, 2026 14:56
@KornevNikita
KornevNikita requested review from a team as code owners September 24, 2026 14:56
ldorau
ldorau previously requested changes Sep 25, 2026
Comment thread sycl/test-e2e/Basic/intel-ext-device.cpp
Comment thread sycl/test-e2e/Basic/intel-ext-device.cpp
@KornevNikita

Copy link
Copy Markdown
Contributor Author

@ldorau could you please undo changes request if you don't have critical concerns anymore

@ldorau
ldorau dismissed their stale review September 25, 2026 12:07

Issues resolved

@ldorau

ldorau commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

@ldorau could you please undo changes request if you don't have critical concerns anymore

Done

Comment on lines +1607 to +1613
// TODO: Level Zero does not report IGCA yet. Return dummy values until an
// extension to zeDeviceGetProperties exposes it. Target 0 and an empty set of
// feature sets are both invalid, so they can't be mistaken for real values.
case UR_DEVICE_INFO_IGCA_TARGET:
return ReturnValue(uint32_t{0});
case UR_DEVICE_INFO_IGCA_FEATURE_SET:
return ReturnValue(ur_device_igca_feature_flags_t{0});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

OK, but since Level Zero doesn't report real IGCA data yet, UR_DEVICE_INFO_IGCA_TARGET / UR_DEVICE_INFO_IGCA_FEATURE_SET return UR_RESULT_SUCCESS with dummy 0 / 0 values here. The problem is that has_info_desc() (sycl/source/detail/device_impl.hpp) only checks that the underlying urDeviceGetInfo() call succeeds - it doesn't inspect the returned value. So dev.has(aspect::ext_intel_igca) will unconditionally report true on every L0 GPU today, and an app calling dev.get_info<ext::intel::info::device::igca>() silently gets back Target=0/no feature sets, with no way to tell that from a real (if unlikely) empty result.
Could this return UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION instead until Level Zero actually exposes IGCA data? That's the pattern the other adapters (CUDA/HIP/OpenCL/native_cpu) already use for these two queries, and it would make has(aspect::ext_intel_igca) correctly report false on L0 in the meantime.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

That makes sense, applied 6f13fb5

This branch has not been deployed

No deployments
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