34main(
int argc,
char **argv )
39 char event_name1[]=
"PAPI_TOT_CYC";
40 char event_name2[]=
"PAPI_TOT_INS";
62 if (!
quiet) printf(
"Couldn't add %s\n",event_name1);
63 test_skip(__FILE__,__LINE__,
"Couldn't add PAPI_TOT_CYC",0);
68 if (!
quiet) printf(
"Couldn't add %s\n",event_name2);
69 test_skip(__FILE__,__LINE__,
"Couldn't add PAPI_TOT_INS",0);
74 sprintf( add_event_str,
"PAPI_add_event[%s]", event_name2 );
138 printf(
"Test case 1: Non-overlapping start, stop, read.\n" );
139 printf(
"-----------------------------------------------\n" );
141 printf(
"Default domain is: %d (%s)\n",
tmp,
144 printf(
"Default granularity is: %d (%s)\n",
tmp,
146 printf(
"Using %d iterations of c += a*b\n",
NUM_FLOPS );
147 printf(
"-------------------------------------------------------------------------\n" );
149 printf(
"Test type : 1 2 3 4 5\n" );
150 sprintf( add_event_str,
"%s:", event_name2 );
151 printf(
TAB5, add_event_str,
154 printf(
TAB5,
"PAPI_TOT_CYC:",
157 printf(
"-------------------------------------------------------------------------\n" );
159 printf(
"Verification:\n" );
160 printf(
"Row 1 Column 1 at least %d\n",
NUM_FLOPS );
161 printf(
"%% difference between %s 1 & 2: %.2f\n",
163 100.0 * (
float )
values[0][1] /
165 printf(
"%% difference between %s 1 & 2: %.2f\n",
167 100.0 * (
float )
values[0][0] /
169 printf(
"Column 1 approximately equals column 2\n" );
170 printf(
"Column 3 approximately equals 2 * column 2\n" );
171 printf(
"Column 4 approximately equals 3 * column 2\n" );
172 printf(
"Column 4 exactly equals column 5\n" );
180 max = (
long long ) ( (
double )
values[1][0] * 1.2 );
184 test_fail( __FILE__, __LINE__,
"Cycle Col1!=Col2", 1 );
187 if ( (
values[2][0] > ( 2 * max )) ||
189 test_fail( __FILE__, __LINE__,
"Cycle Col3!=2*Col2", 1 );
192 if ( (
values[3][0] > ( 3 * max )) ||
194 test_fail( __FILE__, __LINE__,
"Cycle Col3!=3*Col2", 1 );
198 test_fail( __FILE__, __LINE__,
"Cycle Col4!=Col5", 1 );
205 max = (
long long ) ( (
double )
values[1][1] * 1.1 );
209 test_fail( __FILE__, __LINE__,
"FLOP Col1!=Col2", 1 );
212 if ( (
values[2][1] > ( 2 * max )) ||
214 test_fail( __FILE__, __LINE__,
"FLOP Col3!=2*Col2", 1 );
217 if ( (
values[3][1] > ( 3 * max )) ||
219 test_fail( __FILE__, __LINE__,
"FLOP Col4!=3*Col2", 1 );
223 test_fail( __FILE__, __LINE__,
"FLOP Col4!=Col5", 1 );
227 test_fail( __FILE__, __LINE__,
"FLOP sanity", 1 );
add PAPI preset or native hardware event by name to an EventSet
Create a new empty PAPI EventSet.
Get PAPI library or event set options.
initialize the PAPI library.
Read hardware counters from an event set.
removes a named hardware event from a PAPI event set.
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 long long values[NUM_EVENTS]
Return codes and api definitions.
int tests_quiet(int argc, char **argv)
char * stringify_all_domains(int domains)
char * stringify_granularity(int granularity)
void PAPI_NORETURN test_fail(const char *file, int line, const char *call, int retval)
long long ** allocate_test_space(int num_tests, int num_events)
void PAPI_NORETURN test_pass(const char *filename)
void PAPI_NORETURN test_skip(const char *file, int line, const char *call, int retval)