34 ns = (seconds*1000000000ULL)+ns;
40int main(
int argc,
char **argv) {
48 long long count,high=0,low=0,
total=0,average=0;
66 printf(
"\nTesting PAPI_TOT_CYC\n\n");
70 printf(
"Testing a sleep of 1 second (%d times):\n",
SLEEP_RUNS);
80 if (!
quiet) printf(
"Could not add PAPI_TOT_CYC\n");
105 printf(
"\tAverage should be low, as no user cycles when sleeping\n");
106 printf(
"\tMeasured average: %lld\n",average);
109 if (average>100000) {
110 if (!
quiet) printf(
"Average cycle count too high!\n");
119 printf(
"\nEstimating GHz with matrix matrix multiply\n");
128 clock_gettime(CLOCK_REALTIME,&before);
141 clock_gettime(CLOCK_REALTIME,&after);
145 mmm_ghz=(double)
count/(
double)nsecs;
148 printf(
"\tActual measured cycles = %lld\n",
count);
149 printf(
"\tEstimated actual GHz = %.2lfGHz\n",mmm_ghz);
158 if (!
quiet) printf(
"\nTesting for a linear cycle increase\n");
162 clock_gettime(CLOCK_REALTIME,&before);
177 clock_gettime(CLOCK_REALTIME,&after);
187 printf(
"\tError=%.2f%%\n",error);
190 if ((error>10.0) || (error<-10.0)) {
192 if (!
quiet) printf(
"Error too high!\n");
196 if (!
quiet) printf(
"\n");
add PAPI preset or native hardware event by name to an EventSet
Create a new empty PAPI EventSet.
initialize the PAPI library.
Reset the hardware event counts in an event set.
Start counting hardware events in an event set.
Stop counting hardware events in an event set.
static int expected[NUM_THREADS]
double naive_matrix_multiply(int quiet)
Return codes and api definitions.
int tests_quiet(int argc, char **argv)
void PAPI_NORETURN test_fail(const char *file, int line, const char *call, int retval)
void PAPI_NORETURN test_pass(const char *filename)
void PAPI_NORETURN test_skip(const char *file, int line, const char *call, int retval)
static long long convert_to_ns(struct timespec *before, struct timespec *after)
__syscall_slong_t tv_nsec