Table of Contents

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

logger ILogger

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

kernelInfo KernelCharacteristics
gridSize (int x, int y, int z)

Returns

ThreadgroupConfiguration

GetOptimalSizeFor1D(int)

Gets the optimal threadgroup size for 1D workloads.

public int GetOptimalSizeFor1D(int dataSize)

Parameters

dataSize int

Returns

int

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

threadgroupSize (int x, int y, int z)
executionTimeMs double
kernelInfo KernelCharacteristics

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)

Parameters

userSize (int x, int y, int z)
kernelInfo KernelCharacteristics
gridSize (int x, int y, int z)

Returns

ThreadgroupSizeValidation