LAMA
|
00001 00033 #ifndef LAMA_TRACING_HPP_ 00034 #define LAMA_TRACING_HPP_ 00035 00036 /* ToDo: use it from CUDA directory 00037 #ifdef LAMA_BUILD_CUDA 00038 #include <lama/tracing/CUDATracerHelper.hpp> 00039 #endif 00040 */ 00041 00042 #if defined( LAMA_TRACE_LEVEL_VT ) || defined( LAMA_TRACE_LEVEL_TIME ) 00043 00044 #include <lama/tracing/TraceRegionRecord.hpp> 00045 00046 #define LAMA_REGION( name ) tracing::TraceRegionRecord LAMA_Trc__( name, __FILE__, __LINE__ ) 00047 00048 #define LAMA_REGION_N( name, n ) tracing::TraceRegionRecord LAMA_Trc__( name, n, __FILE__, __LINE__ ) 00049 00050 #define LAMA_REGION_START( name ) tracing::TraceRegionRecord::start( name, __FILE__, __LINE__ ) 00051 00052 #define LAMA_REGION_END( name ) tracing::TraceRegionRecord::stop( name ) 00053 00054 /* ToDo: use it from CUDA subdirectory 00055 #ifdef LAMA_BUILD_CUDA 00056 #define LAMA_CUDAREGION( name, syncToken ) \ 00057 CUDATracerHelper<tracing::TraceRegionRecord> LAMA_Trc__( name, __FILE__, __LINE__, syncToken ) 00058 #else 00059 #define LAMA_CUDAREGION( name, syncToken ) 00060 #endif 00061 00062 #ifdef LAMA_BUILD_OPENCL 00063 //TODO: OpenCLTracerHelper 00064 #define LAMA_OPENCLREGION( name, syncToken ) 00065 #else 00066 #define LAMA_OPENCLREGION( name, syncToken ) 00067 #endif 00068 */ 00069 00070 #define LAMA_TIMETRACER( name ) tracing::TraceRegionRecord::spentLast( name ) 00071 00072 #elif defined( LAMA_TRACE_LEVEL_SIMPLE ) 00073 00074 #include <lama/tracing/LAMASimpleTimeTracer.hpp> 00075 00076 #define LAMA_REGION( name ) LAMASimpleTimeTracer LAMA_Trc__( name, __FILE__, __LINE__ ) 00077 00078 #define LAMA_REGION_N( name, n ) 00079 00080 #define LAMA_REGION_START( name ) 00081 00082 #define LAMA_REGION_END( name ) 00083 00084 #ifdef LAMA_BUILD_CUDA 00085 #define LAMA_CUDAREGION( name, syncToken ) \ 00086 CUDATracerHelper<LAMASimpleTimeTracer> LAMA_Trc__( name, __FILE__, __LINE__, syncToken ) 00087 #else 00088 #define LAMA_CUDAREGION( name, syncToken ) 00089 #endif 00090 00091 #ifdef LAMA_BUILD_OPENCL 00092 //TODO: OpenCLTracerHelper 00093 #define LAMA_OPENCLREGION( name, syncToken ) 00094 #else 00095 #define LAMA_OPENCLREGION( name, syncToken ) 00096 #endif 00097 00098 #define LAMA_TIMETRACER( name ) LAMASimpleTimeTracer::spentLast( name ) 00099 00100 #elif defined( LAMA_TRACE_LEVEL_OFF ) 00101 00102 #define LAMA_REGION( name ) 00103 00104 #define LAMA_REGION_START( name ) 00105 00106 #define LAMA_REGION_END( name ) 00107 00108 #define LAMA_REGION_N( name, n ) 00109 00110 #define LAMA_CUDAREGION( name, syncToken ) 00111 00112 #define LAMA_OPENCLREGION( name, syncToken ) 00113 00114 #define LAMA_TIMETRACER( name ) 0.0 00115 00116 #else 00117 00118 //Macro LAMA_REGION should also be defined in case of error for convenience with Eclipse. 00119 00120 #define LAMA_REGION( name ) 00121 00122 #define LAMA_REGION_START( name ) 00123 00124 #define LAMA_REGION_END( name ) 00125 00126 #define LAMA_REGION_N( name, n ) 00127 00128 #define LAMA_CUDAREGION( name, syncToken ) 00129 00130 #define LAMA_OPENCLREGION( name, syncToken ) 00131 00132 #define LAMA_TIMETRACER( name ) 0.0 00133 00134 #error "Must define LAMA_TRACE_LEVEL_xxx with xxx = VT, TIME, SIMPLE, or OFF" 00135 00136 #endif 00137 00138 #endif // LAMA_TRACING_HPP_