#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 |
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.
| ktt::PreciseMeasurementParameters::PreciseMeasurementParameters | ( | ) |
Default constructor with conservative default values. Defaults: minTime=2000ms, maxTime=20000ms (10x minTime), maxPowerDiff=0.005 (0.5%), durationCalculationMethod=Minimum
| ktt::PreciseMeasurementParameters::PreciseMeasurementParameters | ( | uint64_t | minTimeMs, |
| uint64_t | maxTimeMs, | ||
| double | maxPowerDiff, | ||
| DurationCalculationMethod | durationCalculationMethod = DurationCalculationMethod::Minimum |
||
| ) |
Constructor with custom values.
| minTimeMs | Minimum measurement time in milliseconds. |
| maxTimeMs | Maximum measurement time in milliseconds. |
| maxPowerDiff | Maximum tolerated relative power difference (0.0 - 1.0). |
| durationCalculationMethod | Method to calculate duration from samples (default: Minimum). |
|
static |
Calculates kernel duration from multiple samples based on the selected method.
| samples | Vector of duration samples in nanoseconds. |
| method | Method to use for duration calculation. |
|
static |
Calculates standard deviation of duration samples.
| samples | Vector of duration samples in nanoseconds. |
|
static |
Calculates both duration and standard deviation from samples.
| samples | Vector of duration samples in nanoseconds. |
| method | Method to use for duration calculation. |
| bool ktt::PreciseMeasurementParameters::IsValid | ( | ) | const |
Checks if the parameters are valid.
| DurationCalculationMethod ktt::PreciseMeasurementParameters::durationCalculationMethod |
Method used to calculate kernel duration from multiple samples. Defaults to Minimum for backward compatibility.
| 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.
| 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).
| uint64_t ktt::PreciseMeasurementParameters::minTimeMs |
Minimum measurement time in milliseconds. Measurement continues until at least this much time has elapsed since the first measurement.