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, sycl::device::get_info<sycl::info::device::version>
"Returns a backend-defined 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
):
llvm/sycl/plugins/unified_runtime/ur/adapters/level_zero/device.cpp
Lines 279 to 283 in d430bef
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
)