Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
KernelResult.h
1
4#pragma once
5
6#include <vector>
7
11#include <KttPlatform.h>
12#include <KttTypes.h>
13
14namespace ktt
15{
16
20class KTT_API KernelResult
21{
22public:
27
34 explicit KernelResult(const std::string& kernelName, const KernelConfiguration& configuration, const std::string& timestamp);
35
44 explicit KernelResult(const std::string& kernelName, const KernelConfiguration& configuration,
45 const std::vector<ComputationResult>& results, const std::string& timestamp);
46
51 void SetStatus(const ResultStatus status);
52
57 void SetExtraDuration(const Nanoseconds duration);
58
64 [[deprecated("Use SetDataMovementOverhead() instead.")]] void SetExtraOverhead(const Nanoseconds overhead);
65
71
76 void SetValidationOverhead(const Nanoseconds overhead);
77
82 void SetSearcherOverhead(const Nanoseconds overhead);
83
89
95
100 void SetProfilingOverhead(const Nanoseconds overhead);
101
107
112 const std::string& GetKernelName() const;
113
118 const std::vector<ComputationResult>& GetResults() const;
119
124 const std::string& GetTimestamp() const;
125
131
137
143
149
155
161
167
173
179
185 [[deprecated("Use GetDataMovementOverhead() instead.")]] Nanoseconds GetExtraOverhead() const;
186
192
198
204
210
217
218
224
230
236
242
248
255
261
267
275
280 bool IsValid() const;
281
288
294 void FuseProfilingTimes(const KernelResult& previousResult, bool first);
295
300 void CopyProfilingTimes(const KernelResult& originalResult);
301
306 void TransferPowerData(const KernelResult& previousResult);
307
308private:
309 KernelConfiguration m_Configuration;
310 std::vector<ComputationResult> m_Results;
311 std::string m_KernelName;
312 std::string m_Timestamp;
313 Nanoseconds m_ExtraDuration;
314 Nanoseconds m_DataMovementOverhead;
315 Nanoseconds m_ValidationOverhead;
316 Nanoseconds m_SearcherOverhead;
317 Nanoseconds m_FailedKernelOverhead;
318 Nanoseconds m_ProfilingRunsOverhead; //overhead of all profiling runs, including kernel overhead and kernel duration and extra duration of extra passes
319 Nanoseconds m_ProfilingOverhead; //overhead of profiling infrastructure, with data movement and validation, for all profiling passes
320 Nanoseconds m_ProfilingInfrastructureOverhead; //overhead of profiling infrastructure, but without data movement and extra duration, for all profiling passes
321 Nanoseconds m_PreciseMeasurementOverhead; //overhead of the precise multi-run measurement loop, including all kernel executions performed within the loop
322 Nanoseconds m_CompilationOverhead;
323 Nanoseconds m_KernelOverhead;
324 Nanoseconds m_KernelOverheadFirstPass; //kernel overhead of the first pass (i.e. full compilation and run without profiling)
325 Nanoseconds m_ExtraDurationFirstPass; //extra duration of the first pass
326 ResultStatus m_Status;
327};
328
329} // namespace ktt
Definition KernelConfiguration.h:19
Definition KernelResult.h:21
Nanoseconds GetKernelOverheadFirstPass() const
Nanoseconds GetCompilationOverheadFromCompResults() const
Nanoseconds GetDataMovementOverhead() const
Nanoseconds GetCompilationOverhead() const
Nanoseconds GetSearcherOverhead() const
Nanoseconds GetProfilingInfrastructureOverhead() const
bool HasRemainingProfilingRuns() const
Nanoseconds GetPreciseMeasurementOverhead() const
Nanoseconds GetProfilingOverheadFromCompResults() const
Nanoseconds GetTotalDuration() const
Nanoseconds GetExtraDurationFirstPass() const
void TransferPowerData(const KernelResult &previousResult)
const std::vector< ComputationResult > & GetResults() const
void CopyProfilingTimes(const KernelResult &originalResult)
Nanoseconds GetTotalOverhead() const
void FuseProfilingTimes(const KernelResult &previousResult, bool first)
void SetValidationOverhead(const Nanoseconds overhead)
Nanoseconds GetProfilingTotalOverhead() const
const std::string & GetTimestamp() const
Nanoseconds GetKernelOverheadFromCompResults() const
Nanoseconds GetProfilingOverhead() const
void SetDataMovementOverhead(const Nanoseconds overhead)
void SetExtraOverhead(const Nanoseconds overhead)
void SetProfilingRunsOverhead(const Nanoseconds overhead)
void SetExtraDuration(const Nanoseconds duration)
ResultStatus GetStatus() const
Nanoseconds GetProfilingRunsOverhead() const
const KernelConfiguration & GetConfiguration() const
void SetProfilingOverhead(const Nanoseconds overhead)
Nanoseconds GetKernelOverhead() const
Nanoseconds GetValidationOverhead() const
Nanoseconds GetPreciseMeasurementOverheadFromCompResults() const
Nanoseconds GetKernelDuration() const
KernelResult(const std::string &kernelName, const KernelConfiguration &configuration, const std::vector< ComputationResult > &results, const std::string &timestamp)
void SetSearcherOverhead(const Nanoseconds overhead)
Nanoseconds GetExtraDuration() const
void SetStatus(const ResultStatus status)
void SetFailedKernelOverhead(const Nanoseconds overhead)
Nanoseconds GetExtraOverhead() const
const std::string & GetKernelName() const
void SetPreciseMeasurementOverhead(const Nanoseconds overhead)
Nanoseconds GetFailedKernelOverhead() const
bool IsValid() const
KernelResult(const std::string &kernelName, const KernelConfiguration &configuration, const std::string &timestamp)
Definition KttPlatform.h:41
uint64_t Nanoseconds
Definition KttTypes.h:75
ResultStatus
Definition ResultStatus.h:13