Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
ktt::ComputationResult Class Reference

#include <ComputationResult.h>

Public Member Functions

 ComputationResult ()
 
 ComputationResult (const std::string &kernelFunction)
 
 ComputationResult (const ComputationResult &other)
 
void SetDurationData (const Nanoseconds duration, const Nanoseconds overhead, const Nanoseconds compilationOverhead, const Nanoseconds profilingOverhead=0, const Nanoseconds preciseMeasurementOverhead=0)
 
void SetSizeData (const DimensionVector &globalSize, const DimensionVector &localSize)
 
void SetCompilationData (std::unique_ptr< KernelCompilationData > data)
 
void SetProfilingData (std::unique_ptr< KernelProfilingData > data)
 
void SetPowerUsage (const uint32_t powerUsage)
 
void SetTemperature (const double powerUsage)
 
void SetSMFrequency (const uint32_t frequency)
 
void SetMemoryFrequency (const uint32_t frequency)
 
void SetFanSpeed (const int32_t fanSpeed)
 
void SetDurationStdev (const double durationStdev)
 
const std::string & GetKernelFunction () const
 
const DimensionVectorGetGlobalSize () const
 
const DimensionVectorGetLocalSize () const
 
Nanoseconds GetDuration () const
 
Nanoseconds GetOverhead () const
 
Nanoseconds GetCompilationOverhead () const
 
Nanoseconds GetProfilingOverhead () const
 
Nanoseconds GetPreciseMeasurementOverhead () const
 
bool HasCompilationData () const
 
const KernelCompilationDataGetCompilationData () const
 
bool HasProfilingData () const
 
const KernelProfilingDataGetProfilingData () const
 
bool HasRemainingProfilingRuns () const
 
bool HasPowerData () const
 
bool HasTemperatureData () const
 
bool HasSMFrequencyData () const
 
bool HasMemoryFrequencyData () const
 
bool HasFanSpeedData () const
 
uint32_t GetPowerUsage () const
 
double GetTemperature () const
 
uint32_t GetSMFrequency () const
 
uint32_t GetMemoryFrequency () const
 
int32_t GetFanSpeed () const
 
double GetEnergyConsumption () const
 
bool HasDurationStdevData () const
 
double GetDurationStdev () const
 
ComputationResultoperator= (const ComputationResult &other)
 

Detailed Description

Class which holds result data from a single kernel definition run such as duration, overhead and profiling data.

Constructor & Destructor Documentation

◆ ComputationResult() [1/3]

ktt::ComputationResult::ComputationResult ( )

Constructor which creates empty invalid computation result.

◆ ComputationResult() [2/3]

ktt::ComputationResult::ComputationResult ( const std::string &  kernelFunction)
explicit

Constructor which creates computation result for the specified kernel function.

Parameters
kernelFunctionName of kernel function tied to the result.

◆ ComputationResult() [3/3]

ktt::ComputationResult::ComputationResult ( const ComputationResult other)

Copy constructor.

Parameters
otherResult from which the data will be copied.

Member Function Documentation

◆ GetCompilationData()

const KernelCompilationData & ktt::ComputationResult::GetCompilationData ( ) const

Retrieves kernel compilation data. Should only be called after prior check for valid data.

Returns
Compilation data generated by the compute API. See KernelCompilationData for more information.

◆ GetCompilationOverhead()

Nanoseconds ktt::ComputationResult::GetCompilationOverhead ( ) const

Returns overhead related to kernel function compilation.

Returns
Kernel overhead.

◆ GetDuration()

Nanoseconds ktt::ComputationResult::GetDuration ( ) const

Returns raw kernel duration reported by the underlying compute API.

Returns
Kernel duration.

◆ GetDurationStdev()

double ktt::ComputationResult::GetDurationStdev ( ) const

Retrieves duration standard deviation in nanoseconds. Should only be called after prior check for valid data.

Returns
Duration standard deviation in nanoseconds.

◆ GetEnergyConsumption()

double ktt::ComputationResult::GetEnergyConsumption ( ) const

Retrieves total energy consumption in joules. Should only be called after prior check for valid data.

Returns
Total energy consumption in joules.

◆ GetFanSpeed()

int32_t ktt::ComputationResult::GetFanSpeed ( ) const

Retrieves average fan speed in RPM. Should only be called after prior check for valid data.

Returns
Average fan speed in RPM, or -1 if not supported by the device.

◆ GetGlobalSize()

const DimensionVector & ktt::ComputationResult::GetGlobalSize ( ) const

Returns global thread size with which the kernel was launched.

Returns
Global thread size with which the kernel was launched.

◆ GetKernelFunction()

const std::string & ktt::ComputationResult::GetKernelFunction ( ) const

Returns name of a kernel function tied to the result.

Returns
Name of a kernel function tied to the result.

◆ GetLocalSize()

const DimensionVector & ktt::ComputationResult::GetLocalSize ( ) const

Returns local thread size with which the kernel was launched.

Returns
Local thread size with which the kernel was launched.

◆ GetMemoryFrequency()

uint32_t ktt::ComputationResult::GetMemoryFrequency ( ) const

Retrieves average memory frequency in MHz. Should only be called after prior check for valid data.

Returns
Average memory frequency in MHz.

◆ GetOverhead()

Nanoseconds ktt::ComputationResult::GetOverhead ( ) const

Returns overhead related to kernel launch such as kernel function compilation and profiling data collection.

Returns
Kernel overhead.

◆ GetPowerUsage()

uint32_t ktt::ComputationResult::GetPowerUsage ( ) const

Retrieves average power usage in milliwats. Should only be called after prior check for valid data.

Returns
Average power usage in milliwats.

◆ GetPreciseMeasurementOverhead()

Nanoseconds ktt::ComputationResult::GetPreciseMeasurementOverhead ( ) const

Returns overhead of the precise multi-run measurement loop.

Returns
Precise measurement overhead.

◆ GetProfilingData()

const KernelProfilingData & ktt::ComputationResult::GetProfilingData ( ) const

Retrieves kernel profiling data. Should only be called after prior check for valid data.

Returns
Profiling data generated by the compute API. See KernelProfilingData for more information.

◆ GetProfilingOverhead()

Nanoseconds ktt::ComputationResult::GetProfilingOverhead ( ) const

Returns overhead related to profiling data collection.

Returns
Profiling overhead.

◆ GetSMFrequency()

uint32_t ktt::ComputationResult::GetSMFrequency ( ) const

Retrieves average SM frequency in MHz. Should only be called after prior check for valid data.

Returns
Average SM frequency in MHz.

◆ GetTemperature()

double ktt::ComputationResult::GetTemperature ( ) const

Retrieves average temperature in degrees of Celsius. Should only be called after prior check for valid data.

Returns
Average temperature in degrees of Celsius.

◆ HasCompilationData()

bool ktt::ComputationResult::HasCompilationData ( ) const

Checks whether result contains valid compilation data.

Returns
True if compilation data is valid. False otherwise.

◆ HasDurationStdevData()

bool ktt::ComputationResult::HasDurationStdevData ( ) const

Checks whether result contains valid duration standard deviation data.

Returns
True if duration standard deviation data is available. False otherwise.

◆ HasFanSpeedData()

bool ktt::ComputationResult::HasFanSpeedData ( ) const

Checks whether result contains valid fan speed data.

Returns
True if fan speed data is available. False otherwise.

◆ HasMemoryFrequencyData()

bool ktt::ComputationResult::HasMemoryFrequencyData ( ) const

Checks whether result contains valid memory frequency data.

Returns
True if memory frequency data is available. False otherwise.

◆ HasPowerData()

bool ktt::ComputationResult::HasPowerData ( ) const

Checks whether result contains valid power usage data.

Returns
True if power usage data is available. False otherwise.

◆ HasProfilingData()

bool ktt::ComputationResult::HasProfilingData ( ) const

Checks whether result contains valid profiling data.

Returns
True if profiling data is valid. False otherwise.

◆ HasRemainingProfilingRuns()

bool ktt::ComputationResult::HasRemainingProfilingRuns ( ) const

Checks whether more kernel runs under the corresponding configuration need to be performed before profiling data contains valid information.

Returns
True if more kernel runs need to be performed under the same configuration. False otherwise.

◆ HasSMFrequencyData()

bool ktt::ComputationResult::HasSMFrequencyData ( ) const

Checks whether result contains valid SM frequency data.

Returns
True if SM frequency data is available. False otherwise.

◆ HasTemperatureData()

bool ktt::ComputationResult::HasTemperatureData ( ) const

Checks whether result contains valid processor temperature data.

Returns
True if temperature data is available. False otherwise.

◆ operator=()

ComputationResult & ktt::ComputationResult::operator= ( const ComputationResult other)

Copy assignment operator.

Parameters
otherResult from which the data will be copied.

◆ SetCompilationData()

void ktt::ComputationResult::SetCompilationData ( std::unique_ptr< KernelCompilationData data)

Fills compilation data for the result.

Parameters
dataCompilation data generated by the compute API. See KernelCompilationData for more information.

◆ SetDurationData()

void ktt::ComputationResult::SetDurationData ( const Nanoseconds  duration,
const Nanoseconds  overhead,
const Nanoseconds  compilationOverhead,
const Nanoseconds  profilingOverhead = 0,
const Nanoseconds  preciseMeasurementOverhead = 0 
)

Fills duration data for the result.

Parameters
durationRaw kernel duration, usually reported by the underlying compute API.
overheadOverhead related to kernel launch such as kernel function compilation.
compilationOverheadOverhead related purely to kernel function compilation.
profilingOverheadOverhead related to profiling data collection.
preciseMeasurementOverheadOverhead of the precise multi-run measurement loop.

◆ SetDurationStdev()

void ktt::ComputationResult::SetDurationStdev ( const double  durationStdev)

Fills duration standard deviation for the result.

Parameters
durationStdevStandard deviation of kernel duration samples in nanoseconds.

◆ SetFanSpeed()

void ktt::ComputationResult::SetFanSpeed ( const int32_t  fanSpeed)

Fills fan speed for the result.

Parameters
fanSpeedFan speed in RPM generated by the compute API. -1 if not supported.

◆ SetMemoryFrequency()

void ktt::ComputationResult::SetMemoryFrequency ( const uint32_t  frequency)

Fills Memory frequency for the result.

Parameters
frequencyFrequency of memory data (MHz) generated by the compute API.

◆ SetPowerUsage()

void ktt::ComputationResult::SetPowerUsage ( const uint32_t  powerUsage)

Fills power usage for the result.

Parameters
powerUsagePower usage data (milliwats) generated by the compute API.

◆ SetProfilingData()

void ktt::ComputationResult::SetProfilingData ( std::unique_ptr< KernelProfilingData data)

Fills profiling data for the result.

Parameters
dataProfiling data generated by the compute API. See KernelProfilingData for more information.

◆ SetSizeData()

void ktt::ComputationResult::SetSizeData ( const DimensionVector globalSize,
const DimensionVector localSize 
)

Fills thread size data for the result.

Parameters
globalSizeGlobal thread size with which the kernel was launched.
localSizeLocal thread size with which the kernel was launched.

◆ SetSMFrequency()

void ktt::ComputationResult::SetSMFrequency ( const uint32_t  frequency)

Fills SM frequency for the result.

Parameters
frequencyFrequency of SM data (MHz) generated by the compute API.

◆ SetTemperature()

void ktt::ComputationResult::SetTemperature ( const double  temperature)

Fills processor temperature for the result.

Parameters
temperatureTemperature data (Celsius) generated by the compute API.

The documentation for this class was generated from the following file: