Table of Contents

Class KernelExecutionMetrics

Namespace
DotCompute.Core.Telemetry.Metrics
Assembly
DotCompute.Core.dll

Contains detailed performance metrics for kernel execution operations. Provides comprehensive data about kernel efficiency and resource utilization.

public sealed class KernelExecutionMetrics
Inheritance
KernelExecutionMetrics
Inherited Members

Properties

BranchDivergence

Gets or sets the branch divergence percentage. Measures the impact of conditional branches on SIMD efficiency.

public double BranchDivergence { get; set; }

Property Value

double

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

CacheHitRate

Gets or sets the cache hit rate. Measures the percentage of memory accesses that hit the cache.

public double CacheHitRate { get; set; }

Property Value

double

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

ComputeUnitsUsed

Gets or sets the number of compute units used during execution. Indicates the parallel processing resources utilized by the kernel.

public int ComputeUnitsUsed { get; set; }

Property Value

int

The number of compute units used.

EndTime

Gets or sets the timestamp when the kernel execution completed. Marks the end of the kernel operation.

public DateTimeOffset EndTime { get; set; }

Property Value

DateTimeOffset

The end time as a DateTimeOffset.

ExecutionTime

Gets or sets the total execution time for the kernel. Calculated as the difference between end time and start time.

public TimeSpan ExecutionTime { get; set; }

Property Value

TimeSpan

The execution time as a TimeSpan.

InstructionThroughput

Gets or sets the instruction throughput. Measures the rate at which instructions were executed by the kernel.

public double InstructionThroughput { get; set; }

Property Value

double

The instruction throughput in instructions per second.

MemoryBandwidthGBPerSecond

Gets or sets the memory bandwidth utilization in gigabytes per second. Measures the rate of data transfer between the kernel and memory.

public double MemoryBandwidthGBPerSecond { get; set; }

Property Value

double

The memory bandwidth in GB/s.

MemoryCoalescingEfficiency

Gets or sets the memory coalescing efficiency. Measures how well memory accesses were combined for optimal bandwidth utilization.

public double MemoryCoalescingEfficiency { get; set; }

Property Value

double

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

MemoryLatency

Gets or sets the memory latency in milliseconds. Measures the average time for memory operations to complete.

public double MemoryLatency { get; set; }

Property Value

double

The memory latency in milliseconds.

OccupancyPercentage

Gets or sets the occupancy percentage of the compute device. Indicates how effectively the device's parallel processing units were utilized.

public double OccupancyPercentage { get; set; }

Property Value

double

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

PowerConsumption

Gets or sets the power consumption in watts during kernel execution. Provides insights into energy efficiency of the computation.

public double PowerConsumption { get; set; }

Property Value

double

The power consumption in watts.

RegistersPerThread

Gets or sets the number of registers used per thread. Affects occupancy and the number of threads that can run concurrently.

public int RegistersPerThread { get; set; }

Property Value

int

The number of registers per thread.

SharedMemoryUsed

Gets or sets the amount of shared memory used in bytes. Shared memory usage affects occupancy and kernel performance.

public long SharedMemoryUsed { get; set; }

Property Value

long

The shared memory usage in bytes.

StartTime

Gets or sets the timestamp when the kernel execution started. Marks the beginning of the kernel operation.

public DateTimeOffset StartTime { get; set; }

Property Value

DateTimeOffset

The start time as a DateTimeOffset.

ThroughputOpsPerSecond

Gets or sets the throughput in operations per second. Measures the rate at which the kernel processed work items.

public double ThroughputOpsPerSecond { get; set; }

Property Value

double

The throughput in operations per second.

WarpEfficiency

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

public double WarpEfficiency { get; set; }

Property Value

double

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