Table of Contents

Class MetalPerformanceCounters

Namespace
DotCompute.Backends.Metal.Telemetry
Assembly
DotCompute.Backends.Metal.dll

System-level performance counter integration for Metal backend

public sealed class MetalPerformanceCounters : IDisposable
Inheritance
MetalPerformanceCounters
Implements
Inherited Members
Extension Methods

Constructors

MetalPerformanceCounters(ILogger<MetalPerformanceCounters>, MetalPerformanceCountersOptions)

public MetalPerformanceCounters(ILogger<MetalPerformanceCounters> logger, MetalPerformanceCountersOptions options)

Parameters

logger ILogger<MetalPerformanceCounters>
options MetalPerformanceCountersOptions

Properties

CurrentCounters

Gets current counter values as strongly-typed snapshots for AOT compatibility

public Dictionary<string, CounterSnapshot> CurrentCounters { get; }

Property Value

Dictionary<string, CounterSnapshot>

Methods

AnalyzePerformance()

Performs performance analysis

public MetalPerformanceAnalysis AnalyzePerformance()

Returns

MetalPerformanceAnalysis

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

GetCurrentCounters()

Gets current counter values (API compatibility method).

public Dictionary<string, CounterSnapshot> GetCurrentCounters()

Returns

Dictionary<string, CounterSnapshot>

PerformCleanup(DateTimeOffset)

Performs cleanup of old counter data

public void PerformCleanup(DateTimeOffset cutoffTime)

Parameters

cutoffTime DateTimeOffset

RecordDeviceUtilization(double, double)

Records device utilization metrics

public void RecordDeviceUtilization(double gpuUtilization, double memoryUtilization)

Parameters

gpuUtilization double
memoryUtilization double

RecordError(MetalError, string)

Records error events

public void RecordError(MetalError error, string context)

Parameters

error MetalError
context string

RecordKernelExecution(string, TimeSpan, long, bool)

Records kernel execution performance

public void RecordKernelExecution(string kernelName, TimeSpan duration, long dataSize, bool success)

Parameters

kernelName string
duration TimeSpan
dataSize long
success bool

RecordMemoryAllocation(long, TimeSpan, bool)

Records memory allocation performance

public void RecordMemoryAllocation(long sizeBytes, TimeSpan duration, bool success)

Parameters

sizeBytes long
duration TimeSpan
success bool

RecordMemoryPressure(MemoryPressureLevel, double)

Records memory pressure events

public void RecordMemoryPressure(MemoryPressureLevel level, double percentage)

Parameters

level MemoryPressureLevel
percentage double

RecordResourceUsage(ResourceType, long, long, long)

Records resource usage metrics

public void RecordResourceUsage(ResourceType type, long currentUsage, long peakUsage, long limit)

Parameters

type ResourceType
currentUsage long
peakUsage long
limit long