Ignore:
Timestamp:
Oct 18, 2012, 6:21:17 PM (7 years ago)
Author:
ksherdy
Message:

Updated perflib to allow runs against individual PAPI events.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/perflib/perfsec.h

    r2479 r2481  
    66#elif defined(BUFFER_PROFILING)
    77#include "BOM_Profiler.h"
    8 #elif defined(CODE_CLOCKER)
    9         #include "../cclib/cc.h"
    10         #include "../cclib/cc.cxx"     
     8#elif defined(PAPI)
     9        #include <cc.h>
     10        #include <cc.cxx>
    1111#endif
    1212
     
    6666                timer = init_Wall_timer()
    6767       
     68        #define PERF_SEC_ADD_PARAM(timer, name, value)
     69
    6870        #define PERF_SEC_START(timer) \
    6971                start_Wall_interval(timer)
     
    7476        #define PERF_SEC_DUMP(timer) \
    7577                dump_Timer_Table(timer)
     78
     79        #define PERF_SEC_WRITE(timer)
    7680       
    7781        #define PERF_SEC_DESTROY(timer) \
     
    8286        #define PERF_SEC_INIT(timer) \
    8387                timer = init_BOM_timer()
     88
     89        #define PERF_SEC_ADD_PARAM(timer, name, value)
    8490       
    8591        #define PERF_SEC_START(timer) \
     
    9298                dump_BOM_table(timer)
    9399       
     100        #define PERF_SEC_WRITE(timer)
     101
    94102        #define PERF_SEC_DESTROY(timer) \
    95103                destroy_BOM_timer(timer)       
    96104       
    97 #elif defined(CODE_CLOCKER)
     105#elif defined(PAPI)
    98106
    99         #define PERF_SEC_INIT(timer)
    100                
     107        //#PAPI_L1_DCM 
     108        #if (0x80000000 == CC_EVENT)
     109                                int Events[1] = {PAPI_L1_DCM}; 
     110        //#PAPI_L1_ICM 
     111        #elif (0x80000001 == CC_EVENT)
     112                                int Events[1] = {PAPI_L1_ICM};
     113        //#PAPI_L2_DCM 
     114        #elif (0x80000002 == CC_EVENT)
     115                                int Events[1] = {PAPI_L2_DCM};
     116        //#PAPI_L2_ICM 
     117        #elif (0x80000003 == CC_EVENT)
     118                                int Events[1] = {PAPI_L2_ICM};
     119        //#PAPI_L3_DCM 
     120        #elif (0x80000004 == CC_EVENT)
     121                                int Events[1] = {PAPI_L3_DCM};
     122        //#PAPI_L3_ICM 
     123        #elif (0x80000005 == CC_EVENT)
     124                                int Events[1] = {PAPI_L3_ICM};
     125        //#PAPI_BR_CN   
     126        #elif (0x8000002b == CC_EVENT)
     127                                int Events[1] = {PAPI_BR_CN};
     128        //#PAPI_BR_MSP 
     129        #elif (0x8000002e == CC_EVENT)
     130                                int Events[1] = {PAPI_BR_MSP};
     131        //#PAPI_TOT_INS 
     132        #elif (0x80000032 == CC_EVENT)
     133                                int Events[1] = {PAPI_TOT_INS};
     134        //#PAPI_TOT_CYC   
     135        #elif (0x8000003b == CC_EVENT)
     136                                int Events[1] = {PAPI_TOT_CYC };
     137        #else
     138                                #warning CC_EVENT not defined in Makefile. Default to PAPI_TOT_CYC.
     139                                int Events[1] = {PAPI_TOT_CYC };
     140        #endif
     141
     142        #define PERF_SEC_INIT(timer) \
     143                        timer = new CC(Events,1,0)
     144
     145        #define PERF_SEC_ADD_PARAM(timer, name, value) \
     146                timer->set_param(name, value) \
     147
    101148        #define PERF_SEC_START(timer) \
    102                 timer->start_interval()
     149                timer->start_interval() \
    103150
    104151        #define PERF_SEC_END(timer,elems) \
     
    106153       
    107154        #define PERF_SEC_DUMP(timer) \
     155                timer->display_system_info();\
     156                timer->display_raw_event_data();\
    108157                timer->dump_avg_kelem() \
     158
     159        #define PERF_SEC_WRITE(timer) \
     160                timer->write_xml_file() \
    109161               
    110162        #define PERF_SEC_DESTROY(timer) \
     
    115167        #define PERF_SEC_INIT(timer)
    116168        #define PERF_SEC_START(timer)
     169        #define PERF_SEC_ADD_PARAM(timer, name, value)
    117170        #define PERF_SEC_END(timer,elems)
    118171        #define PERF_SEC_DUMP(timer)
    119172        #define PERF_SEC_DESTROY(timer)
     173        #define PERF_SEC_WRITE(timer)
    120174
    121175#endif
Note: See TracChangeset for help on using the changeset viewer.