Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
ComputationResult.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <cstdint>
7#include <memory>
8#include <optional>
9#include <string>
10#include <vector>
11
15#include <KttPlatform.h>
16#include <KttTypes.h>
17
18namespace ktt
19{
20
24class KTT_API ComputationResult
25{
26public:
31
36 explicit ComputationResult(const std::string& kernelFunction);
37
43
52 void SetDurationData(const Nanoseconds duration, const Nanoseconds overhead, const Nanoseconds compilationOverhead, const Nanoseconds profilingOverhead = 0, const Nanoseconds preciseMeasurementOverhead = 0);
53
59 void SetSizeData(const DimensionVector& globalSize, const DimensionVector& localSize);
60
65 void SetCompilationData(std::unique_ptr<KernelCompilationData> data);
66
71 void SetProfilingData(std::unique_ptr<KernelProfilingData> data);
72
77 void SetPowerUsage(const uint32_t powerUsage);
78
83 void SetTemperature(const double powerUsage);
84
89 void SetSMFrequency(const uint32_t frequency);
90
95 void SetMemoryFrequency(const uint32_t frequency);
96
101 void SetFanSpeed(const int32_t fanSpeed);
102
107 void SetDurationStdev(const double durationStdev);
108
113 const std::string& GetKernelFunction() const;
114
120
126
132
138
144
150
156
161 bool HasCompilationData() const;
162
168
173 bool HasProfilingData() const;
174
180
187
192 bool HasPowerData() const;
193
198 bool HasTemperatureData() const;
199
204 bool HasSMFrequencyData() const;
205
211
216 bool HasFanSpeedData() const;
217
222 uint32_t GetPowerUsage() const;
223
228 double GetTemperature() const;
229
234 uint32_t GetSMFrequency() const;
235
240 uint32_t GetMemoryFrequency() const;
241
246 int32_t GetFanSpeed() const;
247
252 double GetEnergyConsumption() const;
253
259
264 double GetDurationStdev() const;
265
271
272private:
273 std::string m_KernelFunction;
274 DimensionVector m_GlobalSize;
275 DimensionVector m_LocalSize;
276 Nanoseconds m_Duration;
277 Nanoseconds m_Overhead;
278 Nanoseconds m_CompilationOverhead;
279 Nanoseconds m_ProfilingOverhead;
280 Nanoseconds m_PreciseMeasurementOverhead;
281 std::unique_ptr<KernelCompilationData> m_CompilationData;
282 std::unique_ptr<KernelProfilingData> m_ProfilingData;
283 std::optional<uint32_t> m_PowerUsage;
284 std::optional<double> m_Temperature;
285 std::optional<uint32_t> m_SMFrequency;
286 std::optional<uint32_t> m_MemFrequency;
287 std::optional<int32_t> m_FanSpeed;
288 std::optional<double> m_DurationStdev;
289};
290
291} // namespace ktt
Definition ComputationResult.h:25
bool HasPowerData() const
Nanoseconds GetPreciseMeasurementOverhead() const
double GetTemperature() const
ComputationResult & operator=(const ComputationResult &other)
void SetDurationData(const Nanoseconds duration, const Nanoseconds overhead, const Nanoseconds compilationOverhead, const Nanoseconds profilingOverhead=0, const Nanoseconds preciseMeasurementOverhead=0)
Nanoseconds GetDuration() const
void SetSizeData(const DimensionVector &globalSize, const DimensionVector &localSize)
bool HasProfilingData() const
double GetDurationStdev() const
void SetFanSpeed(const int32_t fanSpeed)
Nanoseconds GetCompilationOverhead() const
const KernelProfilingData & GetProfilingData() const
bool HasRemainingProfilingRuns() const
Nanoseconds GetOverhead() const
const KernelCompilationData & GetCompilationData() const
bool HasTemperatureData() const
int32_t GetFanSpeed() const
uint32_t GetPowerUsage() const
const DimensionVector & GetLocalSize() const
bool HasFanSpeedData() const
uint32_t GetSMFrequency() const
const DimensionVector & GetGlobalSize() const
ComputationResult(const std::string &kernelFunction)
void SetTemperature(const double powerUsage)
const std::string & GetKernelFunction() const
void SetMemoryFrequency(const uint32_t frequency)
Nanoseconds GetProfilingOverhead() const
void SetProfilingData(std::unique_ptr< KernelProfilingData > data)
bool HasSMFrequencyData() const
void SetDurationStdev(const double durationStdev)
void SetCompilationData(std::unique_ptr< KernelCompilationData > data)
void SetSMFrequency(const uint32_t frequency)
bool HasDurationStdevData() const
double GetEnergyConsumption() const
void SetPowerUsage(const uint32_t powerUsage)
bool HasCompilationData() const
ComputationResult(const ComputationResult &other)
uint32_t GetMemoryFrequency() const
bool HasMemoryFrequencyData() const
Definition DimensionVector.h:21
Definition KernelProfilingData.h:18
Definition KttPlatform.h:41
uint64_t Nanoseconds
Definition KttTypes.h:75
Definition KernelCompilationData.h:17