Skip to content

Commit 839f0af

Browse files
jzcmaarquitos14
andauthored
[SYCL] Add PTL info to device config file (#16368)
Co-authored-by: Marcos Maronas <[email protected]>
1 parent 6af4e4e commit 839f0af

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,26 @@ class IntelTargetInfo<string Name, list<Aspect> Aspects, list<int> subGroupSizes
189189
// Note: only the "canonical" target names are listed here - see
190190
// SYCL::gen::resolveGenDevice().
191191
//
192-
// TODO: instructions on how to get "???" values below are required. Currently
193-
// device architectures below which have "???" in it are not fully supported.
194-
//
195-
// def : IntelTargetInfo<"intel_gpu_ptl_u", ???, ???>;
196-
// def : IntelTargetInfo<"intel_gpu_ptl_h", ???, ???>;
192+
// When adding the new Intel architectures, the ideal way to get these
193+
// values is to run sycl-ls --verbose on the target machine. However,
194+
// if you don't have access to the target machine, then you can look in
195+
// the intel/compute-runtime source code to get the values. For
196+
// the fp64 and atomic64 aspects, look for the definition
197+
// of specific RuntimeCapabilityTable's. These will be defined in
198+
// a file called hw_info_<device>.cpp. For example, for PVC, it
199+
// would be hw_info_pvc.cpp. For fp16, this is supported by all
200+
// Intel GPUs currently. (see definition of getDeviceExtensions in
201+
// compiler_product_helper_base.inl). For the supported sub-group sizes,
202+
// it is not as straightforward. They are defined per family in
203+
// GfxCoreHelperHw<Family>::getDeviceSubGroupSizes and by default
204+
// the default sub-group sizes are 8, 16, and 32. (see gfx_core_helper_base.inl)
205+
// However, this can be overriden by specific families. For example,
206+
// gfx_core_helper_xe_hpc_core.cpp defines the supported sub-group
207+
// sizes to be 16 and 32, which corresponds to PVC having 16 and 32
208+
// as sub-group sizes the supported sub-group sizes.
209+
210+
def : IntelTargetInfo<"intel_gpu_ptl_u", Fp16Fp64Atomic64, Sg16_32>;
211+
def : IntelTargetInfo<"intel_gpu_ptl_h", Fp16Fp64Atomic64, Sg16_32>;
197212
def : IntelTargetInfo<"intel_gpu_lnl_m", Fp16Fp64Atomic64, Sg16_32>;
198213
def : IntelTargetInfo<"intel_gpu_bmg_g21", Fp16Fp64Atomic64, Sg16_32>;
199214
def : IntelTargetInfo<"intel_gpu_arl_h", Fp16Fp64Atomic64, Sg8_16_32>;

0 commit comments

Comments
 (0)