36#ifndef EXECUTION_STATS_H
37#define EXECUTION_STATS_H
41#include "tpg/instrumented/tpgExecutionEngineInstrumented.h"
42#include "tpg/tpgGraph.h"
60 const std::vector<const TPG::TPGVertex*>
trace;
117 double avgEvaluatedTeams = 0.0;
120 double avgEvaluatedPrograms = 0.0;
123 double avgExecutedLines = 0.0;
130 std::map<size_t, double> avgNbExecutionPerInstruction;
135 std::vector<TraceStats> inferenceTracesStats;
145 std::map<size_t, size_t> distribEvaluatedTeams;
154 std::map<size_t, size_t> distribEvaluatedPrograms;
162 std::map<size_t, size_t> distribExecutedLines;
171 std::map<size_t, std::map<size_t, size_t>>
172 distribNbExecutionPerInstruction;
181 std::map<const TPG::TPGVertex*, size_t> distribUsedVertices;
184 const TPGGraph* lastAnalyzedGraph =
nullptr;
196 std::map<uint64_t, uint64_t>& instructionCounts,
273 const std::map<size_t, std::map<size_t, size_t>>&
366 bool noIndent =
false)
const;
The Program class contains a list of program lines that can be executed within a well defined Environ...
Definition program.h:57
Utility class for extracting execution statistics from a TPGExecutionEngineInstrumented and an instru...
Definition executionStats.h:111
const std::vector< TraceStats > & getInferenceTracesStats() const
Get stored trace statistics.
Definition executionStats.cpp:200
void writeStatsToJson(const char *filePath, bool noIndent=false) const
Export the execution statistics of the last analyzeExecution() call to a file using Json format.
Definition executionStats.cpp:242
const std::map< size_t, std::map< size_t, size_t > > & getDistribNbExecutionPerInstruction() const
Get distributions of the number of executions for each instruction.
Definition executionStats.cpp:221
virtual ~ExecutionStats()=default
Default destructor.
double getAvgExecutedLines() const
Get the average number of executed lines per inference.
Definition executionStats.cpp:189
const std::map< size_t, size_t > & getDistribExecutedLines() const
Get the distribution of the number of executed lines.
Definition executionStats.cpp:215
const std::map< size_t, double > & getAvgNbExecutionPerInstruction() const
Definition executionStats.cpp:194
static void analyzeProgram(std::map< uint64_t, uint64_t > &instructionCounts, const Program::Program &program)
Analyze a program to get how many times each instruction is used.
Definition executionStats.cpp:50
double getAvgEvaluatedTeams() const
Get the average number of evaluated teams per inference.
Definition executionStats.cpp:181
ExecutionStats()=default
Default constructor.
void analyzeExecution(const TPG::TPGExecutionEngineInstrumented &tee, const TPGGraph *graph)
Analyze the execution statistics of multiple inferences done with a TPGExecutionEngineInstrumented.
Definition executionStats.cpp:169
const std::map< size_t, size_t > & getDistribEvaluatedPrograms() const
Get the distribution of the number of evaluated programs.
Definition executionStats.cpp:211
const std::map< const TPG::TPGVertex *, size_t > & getDistribUsedVertices() const
Get the distribution if the number of visit for each vertex.
Definition executionStats.cpp:226
void analyzeInferenceTrace(const std::vector< const TPGVertex * > &trace)
Analyze the execution statistics of one inference trace.
Definition executionStats.cpp:126
void analyzeInstrumentedGraph(const TPGGraph *graph)
Analyze the average statistics of an instrumented TPGGraph execution.
Definition executionStats.cpp:60
const std::map< size_t, size_t > & getDistribEvaluatedTeams() const
Get the distribution of the number of evaluated teams.
Definition executionStats.cpp:205
void clearInferenceTracesStats()
Clear stored trace statistics and distributions.
Definition executionStats.cpp:231
double getAvgEvaluatedPrograms() const
Get the average number of programs evaluated per inference.
Definition executionStats.cpp:185
Definition tpgExecutionEngineInstrumented.h:55
Class for storing a Tangled-Program-Graph.
Definition tpgGraph.h:58
Definition executionStats.h:44
Store execution statistics of one inference trace.
Definition executionStats.h:58
const uint64_t nbEvaluatedTeams
Number of team evaluated.
Definition executionStats.h:63
const uint64_t nbExecutedLines
Number of program lines executed.
Definition executionStats.h:67
const std::map< uint64_t, uint64_t > nbExecutionPerInstruction
Definition executionStats.h:70
const uint64_t nbEvaluatedPrograms
Number of programs evaluated.
Definition executionStats.h:65
const std::vector< const TPG::TPGVertex * > trace
The inference trace.
Definition executionStats.h:60