Skip to content

[SYCL] Update the sycl_ext_intel_device_info Extension to Include XE Device Props#21826

Open
HPS-1 wants to merge 6 commits intointel:syclfrom
HPS-1:xe_device_props
Open

[SYCL] Update the sycl_ext_intel_device_info Extension to Include XE Device Props#21826
HPS-1 wants to merge 6 commits intointel:syclfrom
HPS-1:xe_device_props

Conversation

@HPS-1
Copy link
Copy Markdown
Contributor

@HPS-1 HPS-1 commented Apr 21, 2026

Level Zero is adding an extension to zeDeviceGetProperties that returns the following information (link to source code: https://github.com/intel/compute-runtime/blob/a852cba41fda2c0cf140e8a3e264f322e9e38911/level_zero/include/level_zero/ze_intel_gpu.h#L594) :

typedef struct _ze_intel_xe_device_exp_properties_t {
    ze_structure_type_ext_t stype;              ///< [in] type of this structure
    void *pNext;                                ///< [in][optional] must be null or a pointer to extension-specific structure
    uint32_t numXeStacks;                       ///< [out] number of stack/chiplets/tiles
    uint32_t numXeRegionsPerStack;              ///< [out] number of Regions sharing local L2/L3 (XE_CU) per stack
    uint32_t numXeClustersPerRegion;            ///< [out] number of Clusters (slices) per Region
    uint32_t numXeCorePerCluster;               ///< [out] number of XE Cores per Cluster
    uint32_t numExecutionEnginesPerXeCore;      ///< [out] number of Execution Engines (EUs) per XE Core
    uint32_t maxNumHwThreadsPerExecutionEngine; ///< [out] maximal number of HW threads per Execution Engine
    uint32_t maxNumLanesPerHwThread;            ///< [out] maximal number of lanes (virtual SIMD size) per HW thread
} ze_intel_xe_device_exp_properties_t;

Therefore, updating the sycl_ext_intel_device_info extension to add support to query these XE device properties.

HPS-1 added 3 commits April 21, 2026 02:59
…ce_exp_properties_t

Signed-off-by: Hu, Peisen <peisen.hu@intel.com>
Signed-off-by: Hu, Peisen <peisen.hu@intel.com>
Signed-off-by: Hu, Peisen <peisen.hu@intel.com>
Comment thread sycl/include/sycl/info/ext_intel_device_traits.def
Comment thread sycl/include/sycl/info/aspects.def
Signed-off-by: Hu, Peisen <peisen.hu@intel.com>
@HPS-1 HPS-1 changed the title [SYCL] Update the sycl_ext_intel_device_info ext for ze_intel_xe_devi… [SYCL] Update the sycl_ext_intel_device_info Extension to Include XE Device Props Apr 23, 2026
HPS-1 added 2 commits April 23, 2026 06:29
Signed-off-by: Hu, Peisen <peisen.hu@intel.com>
Signed-off-by: Hu, Peisen <peisen.hu@intel.com>
@HPS-1 HPS-1 marked this pull request as ready for review April 23, 2026 14:11
@HPS-1 HPS-1 requested review from a team as code owners April 23, 2026 14:11
@HPS-1 HPS-1 requested a review from cperkinsintel April 23, 2026 14:11
Copy link
Copy Markdown
Contributor

@sarnex sarnex left a comment

Choose a reason for hiding this comment

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

lgtm but please have this reviewed by a second member of the runtime team, after merge is fine

[source,c++]
----
namespace sycl::ext::intel::info::device {
struct xe_stacks_count {
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.

Suggested change
struct xe_stacks_count {
struct xe_stack_count {

I think you normally use the singular when describing the count of something.

[source,c++]
----
namespace sycl::ext::intel::info::device {
struct eu_count_per_xe_core {
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.

It seems like this should be named either eus_per_xe_core or execution_engines_per_xe_core to have the same naming pattern as the others. For example, you have xe_cores_per_cluster not xe_core_count_per_cluster.

Alternatively, you could name them all with the word "count" like xe_core_count_per_cluster.

----

'''

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.

It seems like you are missing an equivalent to maxNumHwThreadsPerExecutionEngine:

maximal number of HW threads per Execution Engine

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.

AFAIK this is a duplicate of the existing gpu_hw_threads_per_eu info descriptor (https://github.com/intel/llvm/blob/9d89f0cdbb6c4762a77b2a15e7538e44213973da/sycl/doc/extensions/supported/sycl_ext_intel_device_info.asciidoc#intel-gpu-number-of-hardware-threads-per-eu), so I think it's unnecessary to add it again?

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.

4 participants