Class MetalGraphConfiguration
- Namespace
- DotCompute.Backends.Metal.Execution.Graph.Configuration
- Assembly
- DotCompute.Backends.Metal.dll
Configuration settings for Metal compute graph construction and execution.
public class MetalGraphConfiguration
- Inheritance
-
MetalGraphConfiguration
- Inherited Members
Properties
DebuggingOptions
Gets or sets debugging options for graph execution.
public MetalGraphDebuggingOptions DebuggingOptions { get; set; }
Property Value
EnableAppleSiliconOptimizations
Gets or sets a value indicating whether to enable Apple Silicon specific optimizations.
public bool EnableAppleSiliconOptimizations { get; set; }
Property Value
EnableCommandBufferBatching
Gets or sets a value indicating whether to enable command buffer batching.
public bool EnableCommandBufferBatching { get; set; }
Property Value
EnableGraphValidation
Gets or sets a value indicating whether to validate the graph structure before execution.
public bool EnableGraphValidation { get; set; }
Property Value
EnableKernelFusion
Gets or sets a value indicating whether to enable automatic kernel fusion optimization.
public bool EnableKernelFusion { get; set; }
Property Value
EnableMemoryOptimization
Gets or sets a value indicating whether to enable memory access pattern optimization.
public bool EnableMemoryOptimization { get; set; }
Property Value
EnableParallelExecution
Gets or sets a value indicating whether to enable parallel execution of independent nodes.
public bool EnableParallelExecution { get; set; }
Property Value
EnablePerformanceMetrics
Gets or sets a value indicating whether to collect detailed performance metrics.
public bool EnablePerformanceMetrics { get; set; }
Property Value
ExecutionPriority
Gets or sets the priority level for graph execution.
public MetalExecutionPriority ExecutionPriority { get; set; }
Property Value
GraphExecutionTimeoutMs
Gets or sets the timeout for overall graph execution in milliseconds.
public int GraphExecutionTimeoutMs { get; set; }
Property Value
MaxCommandBufferSize
Gets or sets the maximum number of operations to batch in a single command buffer.
public int MaxCommandBufferSize { get; set; }
Property Value
MaxConcurrentOperations
Gets or sets the maximum number of concurrent operations during graph execution.
public int MaxConcurrentOperations { get; set; }
Property Value
MaxKernelFusionDepth
Gets or sets the maximum number of nodes that can be fused together.
public int MaxKernelFusionDepth { get; set; }
Property Value
MaxThreadgroupSize
Gets or sets the maximum threadgroup size allowed for compute kernels.
public uint MaxThreadgroupSize { get; set; }
Property Value
MemoryStrategy
Gets or sets the memory allocation strategy for graph operations.
public MetalMemoryStrategy MemoryStrategy { get; set; }
Property Value
NodeExecutionTimeoutMs
Gets or sets the timeout for individual node execution in milliseconds.
public int NodeExecutionTimeoutMs { get; set; }
Property Value
OptimizationParameters
Gets or sets custom optimization parameters.
public MetalOptimizationParameters OptimizationParameters { get; set; }
Property Value
PreferredThreadgroupSize
Gets or sets the preferred threadgroup size for compute kernels.
public uint PreferredThreadgroupSize { get; set; }
Property Value
ResourceLimits
Gets or sets resource limits for graph execution.
public MetalResourceLimits ResourceLimits { get; set; }
Property Value
Methods
CreateAppleSiliconOptimized()
Creates a configuration optimized for Apple Silicon devices.
public static MetalGraphConfiguration CreateAppleSiliconOptimized()
Returns
- MetalGraphConfiguration
A new configuration instance optimized for Apple Silicon.
CreateDebugOptimized()
Creates a configuration optimized for debugging and development.
public static MetalGraphConfiguration CreateDebugOptimized()
Returns
- MetalGraphConfiguration
A new configuration instance optimized for debugging.
CreateDiscreteGpuOptimized()
Creates a configuration optimized for discrete GPUs.
public static MetalGraphConfiguration CreateDiscreteGpuOptimized()
Returns
- MetalGraphConfiguration
A new configuration instance optimized for discrete GPUs.
Validate()
Validates the configuration settings.
public IReadOnlyList<string> Validate()
Returns
- IReadOnlyList<string>
A list of validation errors, or an empty list if valid.