Skip to content

Instantly share code, notes, and snippets.

@goyalankit
Last active August 29, 2015 14:09
Show Gist options
  • Save goyalankit/8d9aa20dc92cc3fd05cd to your computer and use it in GitHub Desktop.
Save goyalankit/8d9aa20dc92cc3fd05cd to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include "papi_helper.h"
int rozmer = 100;
void compute() {
// startPapiCounters();
float matice1[rozmer][rozmer];
float matice2[rozmer][rozmer];
float matice3[rozmer][rozmer];
//Main multiply code
int j,k,m;
for(j = 0; j < rozmer; j++)
{
for (k = 0; k < rozmer; k++)
{
float temp = 0;
for (m = 0; m < rozmer; m++)
{
temp = temp + matice1[j][m] * matice2[m][k];
}
matice3[j][k] = temp;
}
}
// stopPapiCounters();
}
void main(){
compute();
}

Results from hardware counters rozmer = 100

hardware counter code: https://github.com/goyalankit/po-compiler/blob/master/hardware-counters/papi_helper.c

            1081 PAPI_L1_DCM     Level 1 data cache misses
            1212 PAPI_L2_DCA     Level 2 data cache accesses
             889 PAPI_L2_DCH     Level 2 data cache hits
             363 PAPI_L2_DCM     Level 2 data cache misses
            1187 PAPI_L2_DCR     Level 2 data cache reads
              55 PAPI_L2_DCW     Level 2 data cache writes
             262 PAPI_L2_ICA     Level 2 instruction cache accesses
             126 PAPI_L2_ICH     Level 2 instruction cache hits
             216 PAPI_L1_ICM     Level 1 instruction cache misses
             136 PAPI_L2_ICM     Level 2 instruction cache misses
            1502 PAPI_L2_TCA     Level 2 total cache accesses
            1456 PAPI_L1_TCM     Level 1 cache misses
             499 PAPI_L2_TCM     Level 2 cache misses

results from macpo rozmer = 100

command used:

macpo.sh -O0 --macpo:disable-sampling --macpo:instrument=compute program.c -o macpo
Total Conflicts: 18299
Conflicts for core number: 7
set_num num_conflicts
0 107
1 97
2 97
3 98
4 101
5 324
6 335
7 384
8 384
9 349
10 263
11 384
12 360
13 267
14 279
15 368
16 324
17 283
18 395
19 379
20 352
21 394
22 388
23 343
24 276
25 272
26 365
27 270
28 275
29 396
30 346
31 353
32 397
33 375
34 342
35 268
36 380
37 374
38 289
39 272
40 357
41 325
42 276
43 403
44 382
45 333
46 408
47 374
48 329
49 279
50 260
51 334
52 281
53 281
54 361
55 111
56 111
57 116
58 119
59 118
60 113
61 112
62 116
63 95
--------------------------------
      L2 Cache Conflicts
--------------------------------
Conflicts for core number: 7
0 3.85093e-18
1 3.71638e-18
2 3.93456e-18
3 3.94547e-18
4 4.14911e-18
5 3.96971e-18
6 3.97558e-18
7 3.95829e-18
8 3.80618e-18
9 3.90644e-18
10 4.01015e-18
11 3.90298e-18
12 4.062e-18
13 3.96866e-18
14 3.95829e-18
15 3.96866e-18
16 4.1104e-18
17 3.92372e-18
18 4.0136e-18
19 3.94101e-18
20 3.94262e-18
21 3.92535e-18
22 3.90461e-18
23 4.00827e-18
24 3.96335e-18
25 3.96335e-18
26 4.04283e-18
27 3.93571e-18
28 3.90461e-18
29 3.98754e-18
30 4.13958e-18
31 3.92189e-18
32 3.89079e-18
33 3.89079e-18
34 3.97027e-18
35 3.95299e-18
36 3.8977e-18
37 3.95644e-18
38 3.91152e-18
39 4.02203e-18
40 4.17456e-18
41 4.27638e-18
42 4.2182e-18
43 4.13456e-18
44 4.09456e-18
45 4.21456e-18
46 4.17093e-18
47 4.20365e-18
48 4.20002e-18
49 4.21093e-18
50 4.09456e-18
51 4.20729e-18
52 4.14911e-18
53 4.14547e-18
54 4.21156e-18
55 4.46547e-18
56 3.78911e-18
57 4.01093e-18
58 3.97456e-18
59 3.65093e-18
60 3.98911e-18
61 4.10547e-18
62 3.79638e-18
63 3.90547e-18


Results from hardware counters rozmer = 50

              524 PAPI_L1_DCM     Level 1 data cache misses
             521 PAPI_L2_DCA     Level 2 data cache accesses
             331 PAPI_L2_DCH     Level 2 data cache hits
             181 PAPI_L2_DCM     Level 2 data cache misses
             486 PAPI_L2_DCR     Level 2 data cache reads
              73 PAPI_L2_DCW     Level 2 data cache writes
             214 PAPI_L2_ICA     Level 2 instruction cache accesses
             126 PAPI_L2_ICH     Level 2 instruction cache hits
             176 PAPI_L1_ICM     Level 1 instruction cache misses
              88 PAPI_L2_ICM     Level 2 instruction cache misses
             771 PAPI_L2_TCA     Level 2 total cache accesses
             733 PAPI_L1_TCM     Level 1 cache misses
             269 PAPI_L2_TCM     Level 2 cache misses

results from macpo rozmer = 50

Total Conflicts: 0
--------------------------------
      L2 Cache Conflicts
--------------------------------
Conflicts for core number: 15
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
31 0
32 0
33 0
34 0
35 0
36 0
37 0
38 0
39 0
40 0
41 0
42 0
43 0
44 0
45 0
46 0
47 0
48 0
49 0
50 0
51 0
52 0
53 0
54 0
55 0
56 0
57 0
58 0
59 0
60 0
61 0
62 0
63 0

             123 PAPI_L1_DCM     Level 1 data cache misses
             104 PAPI_L2_DCA     Level 2 data cache accesses
              46 PAPI_L2_DCH     Level 2 data cache hits
              84 PAPI_L2_DCM     Level 2 data cache misses
             100 PAPI_L2_DCR     Level 2 data cache reads
              14 PAPI_L2_DCW     Level 2 data cache writes
             137 PAPI_L2_ICA     Level 2 instruction cache accesses
              55 PAPI_L2_ICH     Level 2 instruction cache hits
             109 PAPI_L1_ICM     Level 1 instruction cache misses
              82 PAPI_L2_ICM     Level 2 instruction cache misses
             251 PAPI_L2_TCA     Level 2 total cache accesses
             223 PAPI_L1_TCM     Level 1 cache misses
             166 PAPI_L2_TCM     Level 2 cache misses
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment