Table of Contents

Class KernelAnalysisResult

Namespace
DotCompute.Core.Telemetry.Analysis
Assembly
DotCompute.Core.dll

Contains comprehensive analysis results for a specific kernel's performance over time. Provides statistical insights and trend analysis for kernel execution patterns.

public sealed class KernelAnalysisResult
Inheritance
KernelAnalysisResult
Inherited Members

Properties

AverageBranchDivergence

Gets or sets the average branch divergence (GPU-specific). Measures the impact of conditional branches on performance.

public double AverageBranchDivergence { get; set; }

Property Value

double

The average branch divergence as a decimal (0.0 to 1.0).

AverageCacheHitRate

Gets or sets the average cache hit rate across all executions. Measures the effectiveness of caching for this kernel.

public double AverageCacheHitRate { get; set; }

Property Value

double

The average cache hit rate as a decimal (0.0 to 1.0).

AverageExecutionTime

Gets or sets the average execution time across all analyzed executions. Provides a baseline measure of kernel performance.

public double AverageExecutionTime { get; set; }

Property Value

double

The average execution time in milliseconds.

AverageMemoryBandwidth

Gets or sets the average memory bandwidth utilization. Indicates how effectively the kernel used memory bandwidth.

public double AverageMemoryBandwidth { get; set; }

Property Value

double

The average memory bandwidth in GB/s.

AverageMemoryCoalescing

Gets or sets the average memory coalescing efficiency. Measures how well memory accesses were optimized.

public double AverageMemoryCoalescing { get; set; }

Property Value

double

The average memory coalescing as a decimal (0.0 to 1.0).

AverageOccupancy

Gets or sets the average occupancy across all executions. Indicates how effectively the kernel utilized compute resources.

public double AverageOccupancy { get; set; }

Property Value

double

The average occupancy as a decimal (0.0 to 1.0).

AverageThroughput

Gets or sets the average throughput across all executions. Measures the typical processing rate of the kernel.

public double AverageThroughput { get; set; }

Property Value

double

The average throughput in operations per second.

AverageWarpEfficiency

Gets or sets the average warp efficiency (GPU-specific). Measures how effectively SIMD execution units were utilized.

public double AverageWarpEfficiency { get; set; }

Property Value

double

The average warp efficiency as a decimal (0.0 to 1.0).

DeviceDistribution

Gets or sets the distribution of executions across different devices. Maps device IDs to the number of executions on each device.

public Dictionary<string, int> DeviceDistribution { get; init; }

Property Value

Dictionary<string, int>

A dictionary mapping device IDs to execution counts.

ExecutionCount

Gets or sets the total number of kernel executions analyzed. Provides context for the statistical significance of the results.

public int ExecutionCount { get; set; }

Property Value

int

The execution count as an integer.

ExecutionTimeStdDev

Gets or sets the standard deviation of execution times. Measures the variability in kernel performance.

public double ExecutionTimeStdDev { get; set; }

Property Value

double

The execution time standard deviation in milliseconds.

KernelName

Gets or sets the name of the kernel that was analyzed. Identifies the specific compute operation this analysis covers.

public string KernelName { get; set; }

Property Value

string

The kernel name as a string.

MaxExecutionTime

Gets or sets the maximum execution time observed. Indicates the worst-case performance for this kernel.

public double MaxExecutionTime { get; set; }

Property Value

double

The maximum execution time in milliseconds.

Message

Gets or sets an optional message describing the analysis status. Typically used to provide error details when status is not successful.

public string? Message { get; set; }

Property Value

string

The status message as a string or null if not provided.

MinExecutionTime

Gets or sets the minimum execution time observed. Indicates the best-case performance for this kernel.

public double MinExecutionTime { get; set; }

Property Value

double

The minimum execution time in milliseconds.

OptimizationRecommendations

Gets or sets the list of optimization recommendations specific to this kernel. Provides actionable suggestions for improving kernel performance.

public IList<string> OptimizationRecommendations { get; }

Property Value

IList<string>

A list of optimization recommendation strings.

PerformanceTrend

Gets or sets the performance trend observed over the analysis period. Indicates whether performance is improving, stable, or degrading.

public PerformanceTrend PerformanceTrend { get; set; }

Property Value

PerformanceTrend

The performance trend from the PerformanceTrend enumeration.

Status

Gets or sets the status of the analysis operation. Indicates whether the analysis completed successfully or encountered issues.

public AnalysisStatus Status { get; set; }

Property Value

AnalysisStatus

The analysis status from the AnalysisStatus enumeration.

TimeWindow

Gets or sets the time window covered by this analysis. Indicates the duration of data that was analyzed.

public TimeSpan TimeWindow { get; set; }

Property Value

TimeSpan

The time window as a TimeSpan.