This article will introduce you to the SoC uncore performance monitoring event set and provide details on the events and how to interpret results.
The Silvermont generation of SoCs features a new set of uncore performance monitoring events which provide insight to platform behavior which has previously not been available. The uncore events can be used for platform characterization, application characterization and tuning, performance debug and optimization.
In order to use and understand uncore performance monitoring one must first become familiar with the basic SoC configuration.
The below image shows the block diagram of the Baytrail SoC and consists of:
The green arrows in the diagram represent points of observation that are available with uncore events.
In the Intel Atom SoC, there are three architectural regions for performance monitoring. The most well-known region is the core PerfMon events which count core centric behavior such as instructions retired, highlighted in yellow below.
The second region is the offcore matrix events which count events leaving/entering the processor module such as memory reads, highlighted in orange below.
The third region is the uncore, which encompasses system agent, memory and per uncore agents such as graphics controller, display controller, memory controller and IO, highlighted in red below.
Up to eight uncore events can be monitored concurrently and this set of events being monitored are referred to as a group. Groups and the events in the group are pre-determined and counting is done by selecting a sampling group, not a single event. Each group is represented as one input file to sampling software.
Pre-packed group files come with the monitoring tools and contain all of the available uncore events. It is important to understand that only one group/file can be sampled at a time.
Each group file used by the sampling software is available for viewing in plain text and contains:
Baytrail, Merrifield and Rangeley share common uncore events but each SoC can have unique events that apply only to that platform.
There are four steps required to collect and analyze uncore performance monitoring events.
To learn about the uncore events and groups available and how to analyze results, please select your SoC of interest below.
Monitoring SoC uncore performance events can only be done with Intel performance monitoring software. VTune/Amplifier, SEP and SoCWatch all provide tool specific documentation on how to sample uncore events. Please refer to the documentation included with the sampling software on how to collect events with that tool.
In order to sample uncore events, the feature must be enabled by BIOS/FW. Indicators that the FW is not configured for uncore monitoring are:
On a platform enabled with BIOS menus, there may be a menu option to change PDM/DFX setting. The desired setting is “PerfMode”. Otherwise you must acquire a FW version with uncore monitoring enabled from your firmware provider.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804