Introduction

This site provides a reference for performance monitoring events supported by Intel Performance Monitoring Units (PMUs). The PMU is hardware built inside a processor to measure its performance parameters such as instruction cycles, cache hits, cache misses, branch misses,and many others.Performance monitoring events provide facilities to characterize the interaction between programmed sequences of instructions and microarchitectural sub-systems.
Performance monitoring events are actively used by performance profiling tools, e.g., the Intel® VTune™ Profiler, that provide event-based sampling microarchitecture analysis types to understand how effectively code uses hardware resources and recommend relevant optimization techniques.
The events listed are the performance monitoring events that can be monitored with the Intel® 64 or IA-32 processors. The ability to monitor performance events and the events that can be monitored in these processors are mostly model-specific, except for architectural performance events which are listed separately.
These performance monitoring events are intended to be used as guides for performance tuning. The counter values reported by the performance monitoring events are approximate and believed to be useful as relative guides for tuning software. Known discrepancies are documented where applicable.
All performance event encodings not documented for the given processor are considered reserved, and their use will result in undefined counter updates with associated overflow actions.
For recommendations on which events to use see the Intel® 64 and IA-32 architectures optimization reference manual. For additional details on programming tools to use the performance monitoring events, see Chapter 20 Performance Monitoring in the Intel® 64 and IA-32 Architectures Software Developers Manual, Volume 3B for the core or see the corresponding Uncore Performance Monitoring Reference Manual for your platform for the uncore. Tool developers can use https://github.com/intel/perfmon as a place to get the latest event list in a format that tools can use. Additional details for developing tools which use these events can be found in various articles at Intel® SDM Specifications. For additional details on performance monitoring, see Chapter 20 "Performance Monitoring" in the Intel® 64 and IA-32 Architectures Software Developers Manual, Volume 3B

Note

These performance monitoring events are intended to be used as guides for performance tuning. The counter values reported by the performance monitoring events are approximate and believed to be useful as relative guides for tuning software. Known discrepancies are documented where applicable.
All performance event encodings not documented in the appropriate tables for the given processor are considered reserved, and their use will result in undefined counter updates with associated overflow actions.

PerfMon Support

For any questions, please