Table of Contents

Class MetalRingKernelStubGenerator

Namespace
DotCompute.Backends.Metal.Compilation
Assembly
DotCompute.Backends.Metal.dll

Generates Metal Shading Language (MSL) kernel stubs from runtime-discovered Ring Kernel metadata.

public sealed class MetalRingKernelStubGenerator
Inheritance
MetalRingKernelStubGenerator
Inherited Members

Remarks

This generator creates Metal Shading Language source code (.metal files) from Ring Kernel definitions discovered at runtime via reflection. The generated code includes: - MSL kernel function declarations with proper type mapping - Message queue parameter setup using Metal buffers - Ring buffer management code for persistent kernels - Thread group and SIMD group synchronization

The generated stubs integrate with the Ring Kernel message processing pipeline, supporting MemoryPack serialization and Apple Silicon unified memory.

Constructors

MetalRingKernelStubGenerator(ILogger<MetalRingKernelStubGenerator>)

Initializes a new instance of the MetalRingKernelStubGenerator class.

public MetalRingKernelStubGenerator(ILogger<MetalRingKernelStubGenerator> logger)

Parameters

logger ILogger<MetalRingKernelStubGenerator>

Logger for diagnostic output.

Methods

GenerateBatchKernelStubs(IEnumerable<DiscoveredMetalRingKernel>, string)

Generates MSL stubs for multiple Ring Kernels in a single compilation unit.

public static string GenerateBatchKernelStubs(IEnumerable<DiscoveredMetalRingKernel> kernels, string compilationUnitName = "RingKernels")

Parameters

kernels IEnumerable<DiscoveredMetalRingKernel>
compilationUnitName string

Returns

string

GenerateKernelStub(DiscoveredMetalRingKernel)

Generates a complete MSL source file (.metal) for a Ring Kernel.

public string GenerateKernelStub(DiscoveredMetalRingKernel kernel)

Parameters

kernel DiscoveredMetalRingKernel

The discovered Ring Kernel metadata.

Returns

string

The generated Metal Shading Language source code.

ValidateKernelForMetal(DiscoveredMetalRingKernel)

Validates that a kernel can be compiled to MSL.

public static bool ValidateKernelForMetal(DiscoveredMetalRingKernel kernel)

Parameters

kernel DiscoveredMetalRingKernel

Returns

bool