Table of Contents

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

MetalGraphDebuggingOptions

EnableAppleSiliconOptimizations

Gets or sets a value indicating whether to enable Apple Silicon specific optimizations.

public bool EnableAppleSiliconOptimizations { get; set; }

Property Value

bool

EnableCommandBufferBatching

Gets or sets a value indicating whether to enable command buffer batching.

public bool EnableCommandBufferBatching { get; set; }

Property Value

bool

EnableGraphValidation

Gets or sets a value indicating whether to validate the graph structure before execution.

public bool EnableGraphValidation { get; set; }

Property Value

bool

EnableKernelFusion

Gets or sets a value indicating whether to enable automatic kernel fusion optimization.

public bool EnableKernelFusion { get; set; }

Property Value

bool

EnableMemoryOptimization

Gets or sets a value indicating whether to enable memory access pattern optimization.

public bool EnableMemoryOptimization { get; set; }

Property Value

bool

EnableParallelExecution

Gets or sets a value indicating whether to enable parallel execution of independent nodes.

public bool EnableParallelExecution { get; set; }

Property Value

bool

EnablePerformanceMetrics

Gets or sets a value indicating whether to collect detailed performance metrics.

public bool EnablePerformanceMetrics { get; set; }

Property Value

bool

ExecutionPriority

Gets or sets the priority level for graph execution.

public MetalExecutionPriority ExecutionPriority { get; set; }

Property Value

MetalExecutionPriority

GraphExecutionTimeoutMs

Gets or sets the timeout for overall graph execution in milliseconds.

public int GraphExecutionTimeoutMs { get; set; }

Property Value

int

MaxCommandBufferSize

Gets or sets the maximum number of operations to batch in a single command buffer.

public int MaxCommandBufferSize { get; set; }

Property Value

int

MaxConcurrentOperations

Gets or sets the maximum number of concurrent operations during graph execution.

public int MaxConcurrentOperations { get; set; }

Property Value

int

MaxKernelFusionDepth

Gets or sets the maximum number of nodes that can be fused together.

public int MaxKernelFusionDepth { get; set; }

Property Value

int

MaxThreadgroupSize

Gets or sets the maximum threadgroup size allowed for compute kernels.

public uint MaxThreadgroupSize { get; set; }

Property Value

uint

MemoryStrategy

Gets or sets the memory allocation strategy for graph operations.

public MetalMemoryStrategy MemoryStrategy { get; set; }

Property Value

MetalMemoryStrategy

NodeExecutionTimeoutMs

Gets or sets the timeout for individual node execution in milliseconds.

public int NodeExecutionTimeoutMs { get; set; }

Property Value

int

OptimizationParameters

Gets or sets custom optimization parameters.

public MetalOptimizationParameters OptimizationParameters { get; set; }

Property Value

MetalOptimizationParameters

PreferredThreadgroupSize

Gets or sets the preferred threadgroup size for compute kernels.

public uint PreferredThreadgroupSize { get; set; }

Property Value

uint

ResourceLimits

Gets or sets resource limits for graph execution.

public MetalResourceLimits ResourceLimits { get; set; }

Property Value

MetalResourceLimits

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.