In years gone past, a common measure of CPU performance was MIPS (Millions of instructions retired per second). CPUs are faster now and I frequently use GIPS (Giga (or billions) instruction retired per second). If we think of 'work getting done' as 'instructions retired', then instructions retired per second is a measure of how fast the CPU can get work done. The higher the GIPS, the more work gets done per second.
Use one of the fixed counters to compute GIPS: INST_RETIRED.ANY. INST_RETIRED.ANY is incremented once for each instruction retired in counting mode. In sampling mode, INST_RETIRED.ANY is incremented once for every 'sample after value' instructions retired.
GIPS is computed as:
GIPS = 1.0e-9 * INST_RETIRED.ANY / 'elapsed time'
To use the above method, you need to collect INST_RETIRED.ANY. Intel® VTune™ and Intel® Performance Tuning Utility (Intel® PTU) usually collect INST_RETIRED.ANY by default since the event is one of the fixed counters.
If you are using Intel® VTune™ and Intel® Performance Tuning Utility (Intel® PTU) data, be clear whether you are looking at 'samples' or 'events'. You need use 'events'. If you are using sampling mode, you can compute the
Events of INST_RETIRED.ANY = 'samples of INST_RETIRED.ANY' * sample_after_value (SAV)