-
Notifications
You must be signed in to change notification settings - Fork 232
SapphireRapids
Intel introduces with the IcelakeSP architecture a generic lookup and configuration mechanism for the Uncore units called "PMON Discovery mechanism" in the Uncore monitoring reference guide. The main idea is to provide the configuration of the performance monitoring units and their counters, called PMON blocks, at specific memory addresses to make it machine-readable. Although the Intel® Icelake SP introduced it, almost all addresses/offsets/bits were documented. With Intel® SapphireRapids, there are hardly any addresses/offsets/bits documented in the official documentation. Now, LIKWID has to perform the "PMON Discovery mechanism".
Intel® SappireRapids Performance groups
The input file for the events on Intel® SappireRapids can be found here. The official event lists by Intel can be found here
- Core-local counters
-
Socket-wide counters
- Energy counters
- Uncore management fixed-purpose counter
- Uncore management general-purpose counters
- Last Level cache counters
- Power control unit fixed-purpose counters
- Power control unit general-purpose counters
- Memory controller fixed-purpose counters
- Memory controller general-purpose counters
- Memory controller free-running counters
- UPI Link Layer counters
- M3UPI counters
- IIO general-purpose counters
- IIO fixed-purpose counters
- IRP general-purpose counters
- Mesh-2-Memory general-purpose counters
- PCIe general-purpose counters
Since the Core2 microarchitecture, Intel® provides a set of fixed-purpose counters. Each can measure only one specific event.
Counter name | Event name |
---|---|
FIXC0 | INSTR_RETIRED_ANY |
FIXC1 | CPU_CLK_UNHALTED_CORE |
FIXC2 | CPU_CLK_UNHALTED_REF |
FIXC3 | TOPDOWN_SLOTS |
Option | Argument | Description | Comment |
---|---|---|---|
anythread | N | Set bit 2+(index*4) in config register | |
kernel | N | Set bit (index*4) in config register |
With the Intel® Icelake microarchitecture a new class of core-local counters was introduced, the so-called perf-metrics. The reflect the first level of the Top-down Microarchitecture Analysis tree.
Counter name | Event name |
---|---|
TMA0 | RETIRING |
TMA1 | BAD_SPECULATION |
TMA2 | FRONTEND_BOUND |
TMA3 | BACKEND_BOUND |
The events return the fraction of slots used by the event.
The Intel® SapphireRapids microarchitecture provides 4 general-purpose counters consisting of a config and a counter register. If HyperThreading is disabled, each hardware thread provides 8 general-purpose counters.
Counter name | Event name |
---|---|
PMC0 | * |
PMC1 | * |
PMC2 | * |
PMC3 | * |
PMC4 | * (only available without HyperThreading) |
PMC5 | * (only available without HyperThreading) |
PMC6 | * (only available without HyperThreading) |
PMC7 | * (only available without HyperThreading) |
Option | Argument | Description | Comment |
---|---|---|---|
edgedetect | N | Set bit 18 in config register | |
kernel | N | Set bit 17 in config register | |
anythread | N | Set bit 21 in config register | The anythread option is deprecated! Please check the documentation how to use it on Icelake |
threshold | 8 bit hex value | Set bits 24-31 in config register | |
invert | N | Set bit 23 in config register | |
in_transaction | N | Set bit 32 in config register | Only available if Intel® Transactional Synchronization Extensions are available |
in_transaction_aborted | N | Set bit 33 in config register | Only counter PMC2 and only if Intel® Transactional Synchronization Extensions are available |
The Intel® SapphireRapids microarchitecture provides one register for the current core temperature.
Counter name | Event name |
---|---|
TMP0 | TEMP_CORE |
The Intel® SapphireRapids microarchitecture provides one register for the current core voltage.
Counter name | Event name |
---|---|
VTG0 | VOLTAGE_CORE |
The Intel® SapphireRapids microarchitecture provides measurements of the current energy consumption through the RAPL interface.
Counter name | Event name |
---|---|
PWR0 | PWR_PKG_ENERGY |
PWR1 | PWR_PP0_ENERGY |
PWR2 | PWR_PP1_ENERGY (*) |
PWR3 | PWR_DRAM_ENERGY |
PWR4 | PWR_PLATFORM_ENERGY (+) |
(*) Commonly not supported (+) Often returns zeros
-
Applications
-
Config files
-
Daemons
-
Architectures
- Available counter options
- AMD
- Intel
- Intel Atom
- Intel Pentium M
- Intel Core2
- Intel Nehalem
- Intel NehalemEX
- Intel Westmere
- Intel WestmereEX
- Intel Xeon Phi (KNC)
- Intel Silvermont & Airmont
- Intel Goldmont
- Intel SandyBridge
- Intel SandyBridge EP/EN
- Intel IvyBridge
- Intel IvyBridge EP/EN/EX
- Intel Haswell
- Intel Haswell EP/EN/EX
- Intel Broadwell
- Intel Broadwell D
- Intel Broadwell EP
- Intel Skylake
- Intel Coffeelake
- Intel Kabylake
- Intel Xeon Phi (KNL)
- Intel Skylake X
- Intel Cascadelake SP/AP
- Intel Tigerlake
- Intel Icelake
- Intel Icelake X
- Intel SappireRapids
- Intel GraniteRapids
- Intel SierraForrest
- ARM
- POWER
-
Tutorials
-
Miscellaneous
-
Contributing