Class MetalGraphOptimizer
- Namespace
- DotCompute.Backends.Metal.Execution.Graph
- Assembly
- DotCompute.Backends.Metal.dll
Provides advanced optimization capabilities for Metal compute graphs including kernel fusion, memory access pattern optimization, and Apple Silicon specific optimizations.
public sealed class MetalGraphOptimizer
- Inheritance
-
MetalGraphOptimizer
- Inherited Members
Remarks
Initializes a new instance of the MetalGraphOptimizer class.
Constructors
MetalGraphOptimizer(ILogger<MetalGraphOptimizer>, MetalOptimizationParameters?)
Provides advanced optimization capabilities for Metal compute graphs including kernel fusion, memory access pattern optimization, and Apple Silicon specific optimizations.
public MetalGraphOptimizer(ILogger<MetalGraphOptimizer> logger, MetalOptimizationParameters? defaultParameters = null)
Parameters
loggerILogger<MetalGraphOptimizer>The logger instance for optimization tracking.
defaultParametersMetalOptimizationParametersDefault optimization parameters to use.
Remarks
Initializes a new instance of the MetalGraphOptimizer class.
Methods
AnalyzeGraphAsync(MetalComputeGraph)
Performs a lightweight analysis of optimization opportunities without applying changes.
public static Task<MetalGraphAnalysis> AnalyzeGraphAsync(MetalComputeGraph graph)
Parameters
graphMetalComputeGraphThe graph to analyze.
Returns
- Task<MetalGraphAnalysis>
Analysis results containing optimization opportunities.
OptimizeAsync(MetalComputeGraph, MetalOptimizationParameters?)
Optimizes a Metal compute graph for maximum performance and efficiency.
public Task<MetalOptimizationResult> OptimizeAsync(MetalComputeGraph graph, MetalOptimizationParameters? parameters = null)
Parameters
graphMetalComputeGraphThe graph to optimize.
parametersMetalOptimizationParametersOptional optimization parameters. Uses defaults if not provided.
Returns
- Task<MetalOptimizationResult>
An optimization result containing applied optimizations and performance improvements.
Exceptions
- ArgumentNullException
Thrown when graph is null.