Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
ktt::PreciseMeasurementParameters Struct Reference

#include <PreciseMeasurementParameters.h>

Public Member Functions

 PreciseMeasurementParameters ()
 
 PreciseMeasurementParameters (uint64_t minTimeMs, uint64_t maxTimeMs, double maxPowerDiff, DurationCalculationMethod durationCalculationMethod=DurationCalculationMethod::Minimum)
 
bool IsValid () const
 

Static Public Member Functions

static Nanoseconds CalculateDuration (const std::vector< Nanoseconds > &samples, DurationCalculationMethod method)
 
static double CalculateStandardDeviation (const std::vector< Nanoseconds > &samples)
 
static DurationMeasurementResult ComputeDurationAndStdev (const std::vector< Nanoseconds > &samples, DurationCalculationMethod method)
 

Public Attributes

uint64_t minTimeMs
 
uint64_t maxTimeMs
 
double maxPowerDiff
 
DurationCalculationMethod durationCalculationMethod
 

Detailed Description

Struct which holds parameters for precise measurement during kernel execution. When power measurement is enabled (KTT built with –power-usage), the kernel is executed multiple times until power readings stabilize within the specified tolerance. When power measurement is not available, the kernel is still executed multiple times for the specified minimum time to compute a more stable duration according to the selected calculation method.

Constructor & Destructor Documentation

◆ PreciseMeasurementParameters() [1/2]

ktt::PreciseMeasurementParameters::PreciseMeasurementParameters ( )

Default constructor with conservative default values. Defaults: minTime=2000ms, maxTime=20000ms (10x minTime), maxPowerDiff=0.005 (0.5%), durationCalculationMethod=Minimum

◆ PreciseMeasurementParameters() [2/2]

ktt::PreciseMeasurementParameters::PreciseMeasurementParameters ( uint64_t  minTimeMs,
uint64_t  maxTimeMs,
double  maxPowerDiff,
DurationCalculationMethod  durationCalculationMethod = DurationCalculationMethod::Minimum 
)

Constructor with custom values.

Parameters
minTimeMsMinimum measurement time in milliseconds.
maxTimeMsMaximum measurement time in milliseconds.
maxPowerDiffMaximum tolerated relative power difference (0.0 - 1.0).
durationCalculationMethodMethod to calculate duration from samples (default: Minimum).

Member Function Documentation

◆ CalculateDuration()

static Nanoseconds ktt::PreciseMeasurementParameters::CalculateDuration ( const std::vector< Nanoseconds > &  samples,
DurationCalculationMethod  method 
)
static

Calculates kernel duration from multiple samples based on the selected method.

Parameters
samplesVector of duration samples in nanoseconds.
methodMethod to use for duration calculation.
Returns
Calculated duration in nanoseconds.

◆ CalculateStandardDeviation()

static double ktt::PreciseMeasurementParameters::CalculateStandardDeviation ( const std::vector< Nanoseconds > &  samples)
static

Calculates standard deviation of duration samples.

Parameters
samplesVector of duration samples in nanoseconds.
Returns
Standard deviation of the samples.

◆ ComputeDurationAndStdev()

static DurationMeasurementResult ktt::PreciseMeasurementParameters::ComputeDurationAndStdev ( const std::vector< Nanoseconds > &  samples,
DurationCalculationMethod  method 
)
static

Calculates both duration and standard deviation from samples.

Parameters
samplesVector of duration samples in nanoseconds.
methodMethod to use for duration calculation.
Returns
Result containing duration, standard deviation, and sample count.

◆ IsValid()

bool ktt::PreciseMeasurementParameters::IsValid ( ) const

Checks if the parameters are valid.

Returns
True if parameters are valid (minTime > 0, maxTime >= minTime, 0 < maxPowerDiff <= 1.0).

Member Data Documentation

◆ durationCalculationMethod

DurationCalculationMethod ktt::PreciseMeasurementParameters::durationCalculationMethod

Method used to calculate kernel duration from multiple samples. Defaults to Minimum for backward compatibility.

◆ maxPowerDiff

double ktt::PreciseMeasurementParameters::maxPowerDiff

Maximum tolerated relative difference in power readings (0.0 - 1.0). When all recent samples are within this relative difference from the average, measurement is considered stable. Only used when power measurement is enabled (KTT built with –power-usage). When power measurement is not available, this parameter is ignored.

◆ maxTimeMs

uint64_t ktt::PreciseMeasurementParameters::maxTimeMs

Maximum measurement time in milliseconds. When power measurement is enabled, measurement stops when this time is exceeded, even if stability has not been reached. When power measurement is not available, this parameter is ignored (see maxPowerDiff).

◆ minTimeMs

uint64_t ktt::PreciseMeasurementParameters::minTimeMs

Minimum measurement time in milliseconds. Measurement continues until at least this much time has elapsed since the first measurement.


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