GPUOcelot

TraceGenerator.h

Go to the documentation of this file.
00001 
00009 #ifndef TRACE_TRACEGENERATOR_H_INCLUDED
00010 #define TRACE_TRACEGENERATOR_H_INCLUDED
00011 
00012 // C++ includes
00013 #include <string>
00014 #include <vector>
00015 
00016 // forward declare TraceEvent
00017 namespace trace {
00018   class TraceEvent;
00019 }
00020 
00021 // forward declare EmulatedKernel
00022 namespace executive {
00023   class ExecutableKernel;
00024 }
00025 
00026 namespace trace {
00027 
00031   class TraceGenerator {
00032   public:
00036     enum TraceFormat {
00037       ParallelismTraceFormat,
00038       BranchTraceFormat,
00039       MemoryTraceFormat,
00040       SharedComputationTraceFormat,
00041       InstructionTraceFormat,
00042       KernelDimensionsFormat,
00043       MachineAttributesFormat,
00044       WatchTraceFormat,
00045       WarpSynchronousTraceFormat,
00046       PerformanceBoundTraceFormat,
00047       ConvergenceTraceFormat,
00048       BasicBlockCountFormat,
00049       InvalidTraceFormat
00050     };
00051     
00052   public:
00056     std::string database;
00057   
00058   public:
00059     TraceGenerator();
00060     virtual ~TraceGenerator();
00061 
00065     virtual void initialize(const executive::ExecutableKernel& kernel);
00066 
00072     virtual void event(const TraceEvent & event);
00073     
00076     virtual void postEvent(const TraceEvent & event);
00077     
00081     virtual void finish();
00082   };
00083 
00084   typedef std::vector< TraceGenerator *> TraceGeneratorVector;
00085 }
00086 
00087 #endif
00088 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines