Measurement - Counters

Back to overview ...

Overview

The examples require the PAPI library from https://icl.utk.edu/papi. The library is available as a software package in commom Linux distributions, and is alread installed on the lab computers.

See the course examples repository for PAPI coding examples.

papi_avail

Use the papi_avail command to list the standard events available to PAPI.

Available PAPI preset and user defined events plus hardware information.
...
================================================================================
  PAPI Preset Events
================================================================================
    Name        Code    Avail Deriv Description (Note)
PAPI_L1_DCM  0x80000000  Yes   No   Level 1 data cache misses
PAPI_L1_ICM  0x80000001  Yes   No   Level 1 instruction cache misses
...

papi_native_avail

Use the papi_native_avail command to list the native events available to PAPI.

Available native events and hardware information.
...
===============================================================================
 Native Events in Component: perf_event
===============================================================================
| ix86arch::UNHALTED_CORE_CYCLES                                               |
|            count core clock cycles whenever the clock signal on the specific |
|            core is running (not halted)                                      |
|     :e=0                                                                     |
|            edge level (may require counter-mask >= 1)                        |
|     :i=0                                                                     |
|            invert                                                            |
|     :c=0                                                                     |
|            counter-mask in range [0-255]                                     |
|     :t=0                                                                     |
|            measure any thread                                                |
|     :period=0                                                                |
|            sampling period                                                   |
|     :freq=0                                                                  |
|            sampling frequency (Hz)                                           |
|     :excl=0                                                                  |
|            exclusive access                                                  |
|     :cpu=0                                                                   |
|            CPU to program                                                    |
|     :pinned=0                                                                |
|            pin event to counters                                             |
--------------------------------------------------------------------------------
...