Gromacs  2026.0-dev-20241204-d69d709
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Enumerations | Functions | Variables
device_management_sycl_intel_device_ids.cpp File Reference
#include "gmxpre.h"
#include "device_management_sycl_intel_device_ids.h"
#include <optional>
#include <unordered_map>
#include <unordered_set>
+ Include dependency graph for device_management_sycl_intel_device_ids.cpp:

Description

Defines the mapping from Intel PCIE device ID to hardware version.

Author
Andrey Alekseenko al42a.nosp@m.nd@g.nosp@m.mail..nosp@m.com

Enumerations

enum  IntelProductConfig : unsigned int {
  BDW = 0x02000000, IntelProductConfig::SKL = 0x02400009, IntelProductConfig::KBL = 0x02404009, IntelProductConfig::CFL = 0x02408009,
  IntelProductConfig::APL = 0x0240c000, IntelProductConfig::GLK = 0x02410000, IntelProductConfig::WHL = 0x02414000, AML = 0x02418000,
  CML = 0x0241c000, ICL = 0x02c00000, IntelProductConfig::LKF = 0x02c04000, EHL = 0x02c08000,
  TGL = 0x03000000, IntelProductConfig::RKL = 0x03004000, RPL_S = 0x03008000, ADL_S = 0x03008000,
  IntelProductConfig::ADL_P = 0x0300c000, ADL_N = 0x03010000, DG1 = 0x03028000, IntelProductConfig::XEHP_SDV = 0x030c8004,
  IntelProductConfig::DG2_G10_A0 = 0x030dc000, IntelProductConfig::DG2_G10_A1 = 0x030dc001, DG2_G10_B0 = 0x030dc004, DG2_G10_C0 = 0x030dc008,
  DG2_G11_A0 = 0x030e0000, IntelProductConfig::DG2_G11_B0 = 0x030e0004, DG2_G11_B1 = 0x030e0005, DG2_G12_A0 = 0x030e4000,
  IntelProductConfig::PVC_XL_A0 = 0x030f0000, IntelProductConfig::PVC_XL_A0P = 0x030f0001, PVC_XT_A0 = 0x030f0003, PVC_XT_B0 = 0x030f0005,
  PVC_XT_B1 = 0x030f0006, PVC_XT_C0 = 0x030f0007, PVC_XT_C0_VG = 0x030f4007, IntelProductConfig::MTL_U_A0 = 0x03118000,
  IntelProductConfig::MTL_U_B0 = 0x03118004, MTL_H_A0 = 0x0311c000, IntelProductConfig::MTL_H_B0 = 0x0311c004, ARL_H_A0 = 0x03128000,
  IntelProductConfig::ARL_H_B0 = 0x03128004, BMG_G21_A0 = 0x05004000, IntelProductConfig::BMG_G21_A1 = 0x05004001, BMG_G21_B0 = 0x05004004,
  LNL_A0 = 0x05010000, IntelProductConfig::LNL_A1 = 0x05010001, LNL_B0 = 0x05010004
}
 

Functions

static constexpr std::tuple
< int, int, int > 
getHardwareVersionFromIntelProductConfig (const IntelProductConfig productConfig)
 
static std::optional
< IntelProductConfig
getProductConfigFromPciExpressID (unsigned int pciExpressID)
 
std::optional< std::tuple< int,
int, int > > 
getIntelHardwareVersionFromPciExpressID (unsigned int pciExpressID)
 Look up Intel hardware version from device's PCI Express ID. More...
 

Variables

static const
std::unordered_map
< IntelProductConfig,
std::unordered_set< unsigned
int > > 
c_pciExpressIdsForProduct
 

Enumeration Type Documentation

enum IntelProductConfig : unsigned int
strong
Enumerator
SKL 

Broadwell (Gen8), 8.0.0.

KBL 

Skylake (Gen9), 9.0.9.

CFL 

Kaby Lake (Gen9p5), 9.1.9.

APL 

Coffee Lake, 9.2.9.

GLK 

Apollo Lake (Gen9LP) 9.3.0.

WHL 

Gemini Lake (Gen9LP) 9.4.0.

LKF 

Ice Lake (Gen11), 11.0.0.

RKL 

Tiger Lake (Gen12), 12.0.0.

ADL_P 

Alder Lake S (Gen12), 12.2.0.

XEHP_SDV 

DG1 (XeLP), 12.10.0.

DG2_G10_A0 

XeHP SDV, 12.50.4.

DG2_G10_A1 

DG2 G10 (Arc, Xe-HPG), 12.55.0.

DG2_G11_B0 

DG2 G11 (Arc, Xe-HPG), 12.56.0.

PVC_XL_A0 

DG2 G12 (Arc, Xe-HPG), 12.57.0.

PVC_XL_A0P 

Ponte Vecchio (Xe-HPC), 12.60.0.

MTL_U_A0 

Ponte Vecchio VG (Xe-HPC), 12.61.7.

MTL_U_B0 

Meteor Lake (Xe-LPG), 12.70.0.

MTL_H_B0 

Meteor Lake (Xe-LPG), 12.71.0.

ARL_H_B0 

Arrow Lake (Xe-HPG), 12.74.0.

BMG_G21_A1 

G21 (Battlemage, Xe2-HPG), 20.1.0.

LNL_A1 

Lunar Lake (Xe2-HPG), 20.4.0.

Function Documentation

std::optional<std::tuple<int, int, int> > getIntelHardwareVersionFromPciExpressID ( unsigned int  pciExpressID)

Look up Intel hardware version from device's PCI Express ID.

The returned values correspond to the ones ocloc uses.

Parameters
[in]pciExpressIDDevice ID reported in the device name.
Returns
major.minor.revision if device is found in the database, std::nullopt otherwise.