|
1 | 1 | #include "sycl_hw.hpp" |
2 | 2 |
|
3 | | -// TODO: currently not used |
4 | | -/* |
5 | | -sycl_hw_info get_device_hw_info(sycl::device *device_ptr) { |
6 | | - sycl_hw_info res; |
7 | | - int32_t id = device_ptr->get_info<sycl::ext::intel::info::device::device_id>(); |
8 | | - res.device_id = id; |
| 3 | +using namespace std; |
9 | 4 |
|
10 | | - syclex::architecture arch = device_ptr->get_info<syclex::info::device::architecture>(); |
11 | | - res.arch = arch; |
| 5 | +/*defined in |
| 6 | +* /opt/intel/oneapi/compiler/latest/include/sycl/ext/oneapi/experimental/device_architecture.def |
| 7 | +*/ |
| 8 | +static map<gpu_arch, std::pair<const char*, sycl_intel_gpu_family>> arch2name = { |
| 9 | + {gpu_arch::intel_gpu_bdw, {"intel_gpu_bdw", GPU_FAMILY_IGPU_NON_XE}}, |
| 10 | + {gpu_arch::intel_gpu_skl, {"intel_gpu_skl", GPU_FAMILY_IGPU_NON_XE}}, |
| 11 | + {gpu_arch::intel_gpu_kbl, {"intel_gpu_kbl", GPU_FAMILY_IGPU_NON_XE}}, |
| 12 | + {gpu_arch::intel_gpu_cfl, {"intel_gpu_cfl", GPU_FAMILY_IGPU_NON_XE}}, |
| 13 | + {gpu_arch::intel_gpu_apl, {"intel_gpu_apl", GPU_FAMILY_IGPU_NON_XE}}, |
| 14 | + {gpu_arch::intel_gpu_glk, {"intel_gpu_glk", GPU_FAMILY_IGPU_NON_XE}}, |
| 15 | + {gpu_arch::intel_gpu_whl, {"intel_gpu_whl", GPU_FAMILY_IGPU_NON_XE}}, |
| 16 | + {gpu_arch::intel_gpu_aml, {"intel_gpu_aml", GPU_FAMILY_IGPU_NON_XE}}, |
| 17 | + {gpu_arch::intel_gpu_cml, {"intel_gpu_cml", GPU_FAMILY_IGPU_NON_XE}}, |
| 18 | + {gpu_arch::intel_gpu_icllp, {"intel_gpu_icllp", GPU_FAMILY_IGPU_NON_XE}}, |
| 19 | + {gpu_arch::intel_gpu_ehl, {"intel_gpu_ehl", GPU_FAMILY_IGPU_NON_XE}}, |
| 20 | + {gpu_arch::intel_gpu_tgllp, {"intel_gpu_tgllp", GPU_FAMILY_IGPU_NON_XE}}, |
| 21 | + {gpu_arch::intel_gpu_rkl, {"intel_gpu_rkl", GPU_FAMILY_IGPU_NON_XE}}, |
| 22 | + {gpu_arch::intel_gpu_adl_s, {"intel_gpu_adl_s", GPU_FAMILY_IGPU_NON_XE}}, |
| 23 | + {gpu_arch::intel_gpu_adl_p, {"intel_gpu_adl_p", GPU_FAMILY_IGPU_NON_XE}}, |
| 24 | + {gpu_arch::intel_gpu_adl_n, {"intel_gpu_adl_n", GPU_FAMILY_IGPU_NON_XE}}, |
| 25 | + {gpu_arch::intel_gpu_dg1, {"intel_gpu_dg1", GPU_FAMILY_DGPU_CLIENT_GAME}}, |
| 26 | + {gpu_arch::intel_gpu_acm_g10, {"intel_gpu_acm_g10", GPU_FAMILY_DGPU_CLIENT_GAME}}, |
| 27 | + {gpu_arch::intel_gpu_acm_g11, {"intel_gpu_acm_g11", GPU_FAMILY_DGPU_CLIENT_GAME}}, |
| 28 | + {gpu_arch::intel_gpu_acm_g12, {"intel_gpu_acm_g12", GPU_FAMILY_DGPU_CLIENT_GAME}}, |
| 29 | + {gpu_arch::intel_gpu_pvc, {"intel_gpu_pvc", GPU_FAMILY_DGPU_CLOUD}}, |
| 30 | + {gpu_arch::intel_gpu_pvc_vg, {"intel_gpu_pvc_vg", GPU_FAMILY_DGPU_CLOUD}}, |
| 31 | + {gpu_arch::intel_gpu_mtl_u, {"intel_gpu_mtl_u", GPU_FAMILY_IGPU_XE}}, |
| 32 | + {gpu_arch::intel_gpu_mtl_h, {"intel_gpu_mtl_h", GPU_FAMILY_IGPU_XE}}, |
| 33 | + {gpu_arch::intel_gpu_arl_h, {"intel_gpu_arl_h", GPU_FAMILY_IGPU_XE}}, |
| 34 | + {gpu_arch::intel_gpu_bmg_g21, {"intel_gpu_bmg_g21", GPU_FAMILY_DGPU_CLIENT_GAME}}, |
| 35 | + {gpu_arch::intel_gpu_bmg_g31, {"intel_gpu_bmg_g31", GPU_FAMILY_DGPU_CLIENT_GAME}}, |
| 36 | + {gpu_arch::intel_gpu_lnl_m, {"intel_gpu_lnl_m", GPU_FAMILY_IGPU_XE}}, |
| 37 | + {gpu_arch::intel_gpu_ptl_h, {"intel_gpu_ptl_h", GPU_FAMILY_IGPU_XE}}, |
| 38 | + {gpu_arch::intel_gpu_ptl_u, {"intel_gpu_ptl_u", GPU_FAMILY_IGPU_XE}}, |
| 39 | + {gpu_arch::intel_gpu_wcl, {"intel_gpu_wcl", GPU_FAMILY_IGPU_XE}} |
| 40 | +}; |
| 41 | + |
| 42 | + |
| 43 | +sycl_hw_info get_device_hw_info(sycl::device* device_ptr) { |
| 44 | + sycl_hw_info res; |
| 45 | + int32_t id = |
| 46 | + device_ptr->get_info<sycl::ext::intel::info::device::device_id>(); |
| 47 | + res.device_id = id; |
| 48 | + |
| 49 | + res.name = device_ptr->get_info<sycl::info::device::name>(); |
12 | 50 |
|
13 | | - return res; |
| 51 | + syclex::architecture arch = |
| 52 | + device_ptr->get_info<syclex::info::device::architecture>(); |
| 53 | + res.arch = arch; |
| 54 | + |
| 55 | + map<syclex::architecture, |
| 56 | + std::pair<const char*, sycl_intel_gpu_family>>::iterator it = |
| 57 | + arch2name.find(res.arch); |
| 58 | + if (it != arch2name.end()) { |
| 59 | + res.arch_name = it->second.first; |
| 60 | + res.gpu_family = it->second.second; |
| 61 | + } else { |
| 62 | + res.arch_name = "unknown"; |
| 63 | + res.gpu_family = GPU_FAMILY_UKNOWN; |
| 64 | + } |
| 65 | + |
| 66 | + return res; |
14 | 67 | } |
15 | | -*/ |
|
0 commit comments