Class MetalThreadgroupOptimizer
- Namespace
- DotCompute.Backends.Metal.Kernels
- Assembly
- DotCompute.Backends.Metal.dll
Intelligent threadgroup size optimizer for Metal kernels. Analyzes GPU architecture and kernel characteristics to select optimal threadgroup sizes. Provides 10-15% occupancy improvement through GPU-specific tuning.
public sealed class MetalThreadgroupOptimizer
- Inheritance
-
MetalThreadgroupOptimizer
- Inherited Members
Constructors
MetalThreadgroupOptimizer(ILogger)
public MetalThreadgroupOptimizer(ILogger logger)
Parameters
loggerILogger
Methods
CalculateOptimalSize(KernelCharacteristics, (int x, int y, int z))
Calculates optimal threadgroup size based on device capabilities and kernel characteristics.
public ThreadgroupConfiguration CalculateOptimalSize(KernelCharacteristics kernelInfo, (int x, int y, int z) gridSize)
Parameters
Returns
GetOptimalSizeFor1D(int)
Gets the optimal threadgroup size for 1D workloads.
public int GetOptimalSizeFor1D(int dataSize)
Parameters
dataSizeint
Returns
RecordPerformanceFeedback((int x, int y, int z), double, KernelCharacteristics)
Tracks performance feedback to improve future recommendations.
public void RecordPerformanceFeedback((int x, int y, int z) threadgroupSize, double executionTimeMs, KernelCharacteristics kernelInfo)
Parameters
ValidateUserSize((int x, int y, int z), KernelCharacteristics, (int x, int y, int z))
Validates and potentially overrides user-specified threadgroup size.
public ThreadgroupSizeValidation ValidateUserSize((int x, int y, int z) userSize, KernelCharacteristics kernelInfo, (int x, int y, int z) gridSize)