intel / intel/llvm

More meaningful info::device::version for Intel GPUs

Open
#10,384 5 comments 0 reactions 0 assignees View on GitHub
enhancement spec extension
Dominant language
LLVM
Stars
1.5k
Forks
854
Avg merge
3d 17h
Merged PRs (30d)
137

Description

**Is your feature request related to a problem? Please describe**

We want an easy way to check the architecture of the device: Gen11, Xe-HPC, Xe-HPG, and so on, to select the best kernels based on earlier empirical tuning.

[Per spec](https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#_device_information_descriptors), `sycl::device::get_info` "Returns a backend-defined [device](https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#device) version."

AMD and NVIDIA plugins use `sycl::info::device::version` field to return the device architecture (like `8.6` or `gfx90a`, respectively), which looks like a reasonable interpretation of the standard.

However, OpenCL and LevelZero backends return the API versions (`OpenCL 3.0 NEO` or `1.3`):

https://github.com/intel/llvm/blob/d430bef7a653e3eb9689a06d86c435155dec15c7/sycl/plugins/unified_runtime/ur/adapters/level_zero/device.cpp#L279-L283

This piece of information, IMO, better belongs in either `platform::version` or `device::backend_version` descriptors, while `device::version` should return something more device-specific.

**Describe the solution you would like**

Using `releaseAcronyms` or `deviceAcronyms` from the AOT compiler (https://github.com/intel/compute-runtime/blob/master/third_party/aot_config_headers/platforms.h) sounds like a good idea.

**Describe alternatives you have considered**

- A concatenation of family, release, and device, like `xe:xe-hpg:dg2-g10`.
- Hex value of `PRODUCT_CONFIG` (from the same file)
- Decoded value of `PRODUCT_CONFIG` (e.g., `11.0.0` for ICL / `0x02c00000`)
- PCIe device ID (was previously reported as part of the `device::name`)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.