Technical report detail

Accuracy of Performance Counter Measurements

by Dmitrijs Zaparanuks and Milan Jovic and Matthias Hauswirth

Many workload characterization studies depend on accurate measurements of the cost of executing a piece of code. Often these measurements are conducted using infrastructures to access hardware performance counters. Most modern processors provide such counters to count micro-architectural events such as retired instructions or clock cycles. These counters can be difficult to configure, may not be programmable or readable from user-level code, and can not discriminate between events caused by different software threads. Various software infrastructures address this problem, providing access to per-thread counters from application code. This paper constitutes the first comparative study of the accuracy of three commonly used measurement infrastructures (perfctr, perfmon2, and PAPI) on three common processors (Pentium D, Core 2 Duo, and AMD ATHLON 64 X2). We find significant differences in accuracy of various usage patterns for the different infrastructures and processors. Based on these results we provide guidelines for finding the best measurement approach.

Technical report 2008/05, September 2008

BibTex entry

@techreport{08accuracy, author = {Dmitrijs Zaparanuks and Milan Jovic and Matthias Hauswirth}, title = {Accuracy of Performance Counter Measurements}, institution = {University of Lugano}, number = {2008/05}, year = 2008, month = sep }