kernelfoundry.eval_pipeline.utils.hw_datatypes

provides information on the GPU ISAs and supported datatypes.

info taken from https://uxlfoundation.github.io/oneDNN/dev_guide_data_types.html

OneDNN Data Type Support by microArchitecture (uArch)

Legend: True indicates the hardware support this data type False indicates no support for this data type Note: Support via conversion to higher precision is not tracked in this simplified representation

Footnotes (CPU ISA): s8/u8 for AVX2 and AVX-512: (1) See Nuances of int8 Computations in the Developer Guide for additional limitations related to int8 arithmetic bf16 for AVX-512 and AVX-512 with Intel DL Boost (int8): (2) The library has functional bfloat16 support on processors with Intel AVX-512 Byte and Word Instructions (AVX512BW) support for validation purposes. The performance of bfloat16 primitives on platforms without hardware acceleration for bfloat16 is 3-4x lower in comparison to the same operations on the fp32 data type f16 for Intel AVX10.1/512 with Intel AMX (int8, bf16): (3) Intel AVX-512 f16 instructions accumulate to f16. To avoid overflow, the f16 primitives might up-convert the data to f32 before performing math operations. This can lead to scenarios where a f16 primitive may perform slower than similar f32 primitive

Footnotes (GPU ISA): f16 for Xe-LP, Xe-LPG, Xe-HPG: (1) Xe-LP architecture does not natively support f16 operations with f32 accumulation. Consider using relaxed accumulation mode for the best performance results.

Functions

get_all_isas()

Get list of all ISAs (CPU and GPU)

get_cpu_isas()

Get list of all CPU ISAs

get_datatype_support(isa[, datatype])

Get data type support information for a specific ISA

get_gpu_isas()

Get list of all GPU ISAs

get_isas_supporting_datatype(datatype[, ...])

Get list of ISAs that support a specific data type

get_supported_datatypes(isa[, native_only, ...])

Get list of supported data types for a specific ISA

print_support_matrix([device_type])

Print formatted support matrix

kernelfoundry.eval_pipeline.utils.hw_datatypes.get_datatype_support(isa, datatype=None)[source]

Get data type support information for a specific ISA

Parameters:
  • isa (str) – The ISA/uArch name (e.g., “Xe-HPG”, “Intel AVX-512”)

  • datatype (str, optional) – Specific data type to query (e.g., “bf16”)

Returns:

Support information for all datatypes or specific datatype

Return type:

dict or str

kernelfoundry.eval_pipeline.utils.hw_datatypes.get_supported_datatypes(isa, native_only=True, device_type='gpu')[source]

Get list of supported data types for a specific ISA

Parameters:
  • isa (str) – The ISA/uArch name

  • native_only (bool) – If True, only return natively supported types (True values). Default is True.

  • device_type (str, optional) – “gpu” or “cpu” to search specific device type

Returns:

List of supported data types

Return type:

list

kernelfoundry.eval_pipeline.utils.hw_datatypes.get_isas_supporting_datatype(datatype, native_only=False, device_type=None)[source]

Get list of ISAs that support a specific data type

Parameters:
  • datatype (str) – The data type to query

  • native_only (bool) – If True, only return ISAs with native support (True values)

  • device_type (str, optional) – “gpu”, “cpu”, or None for both

Returns:

List of ISAs supporting the data type

Return type:

list

kernelfoundry.eval_pipeline.utils.hw_datatypes.get_cpu_isas()[source]

Get list of all CPU ISAs

kernelfoundry.eval_pipeline.utils.hw_datatypes.get_gpu_isas()[source]

Get list of all GPU ISAs

kernelfoundry.eval_pipeline.utils.hw_datatypes.get_all_isas()[source]

Get list of all ISAs (CPU and GPU)

kernelfoundry.eval_pipeline.utils.hw_datatypes.print_support_matrix(device_type=None)[source]

Print formatted support matrix

Parameters:

device_type (str, optional) – “gpu”, “cpu”, or None for both