|
PAPI
5.0.1.0
|
Simplified call to get Mflips/s (floating point instruction rate), real and processor time. More...
| *rtime | total realtime since the first PAPI_flips() call |
| *ptime | total process time since the first PAPI_flips() call |
| *flpins | total floating point instructions since the first call |
| PAPI_EINVAL | The counters were already started by something other than: PAPI_flips() or PAPI_flops(). |
| PAPI_ENOEVNT | The floating point operations, floating point instructions or total cycles event does not exist. |
| PAPI_ENOMEM | Insufficient memory to complete the operation. |
The first call to PAPI_flips() will initialize the PAPI High Level interface, set up the counters to monitor PAPI_FP_INS and PAPI_TOT_CYC events and start the counters. Subsequent calls will read the counters and return total real time, total process time, total floating point instructions since the start of the measurement and the Mflip/s rate since latest call to PAPI_flips(). A call to PAPI_stop_counters() will stop the counters from running and then calls such as PAPI_start_counters() can safely be used.
The next three calls all use _hl_rate_calls() to return an instruction rate value. PAPI_flips returns information related to floating point instructions using the PAPI_FP_INS event. This is intended to measure instruction rate through the floating point pipe with no massaging. PAPI_flops return information related to theoretical floating point operations rather than simple instructions. It uses the PAPI_FP_OPS event which attempts to 'correctly' account for, e.g., FMA undercounts and FP Store overcounts, etc.