Table of Contents

Class KernelRegistrationInfo

Namespace
DotCompute.Runtime.Services
Assembly
DotCompute.Runtime.dll

Information about a registered kernel from the generated registry.

public class KernelRegistrationInfo
Inheritance
KernelRegistrationInfo
Inherited Members

Properties

ContainingType

Gets the type containing the kernel method.

public required Type ContainingType { get; init; }

Property Value

Type

CpuInvoker

Generator-emitted CPU invoker: void (KernelArguments args, int start, int end). It unpacks the kernel arguments into typed spans/scalars and runs the kernel body over the half-open work range [start, end). Null when the kernel does not target CPU. This is the AOT-safe CPU execution path (no runtime C# compilation).

public Delegate? CpuInvoker { get; init; }

Property Value

Delegate

CudaEntryPoint

CUDA-C entry point (the extern "C" global function name) for CudaSource. Defaults to Name when not set.

public string? CudaEntryPoint { get; init; }

Property Value

string

CudaNeedsLength

True when CudaSource declares a trailing implicit unsigned int __length parameter (the kernel body used a buffer's .Length, which a CUDA pointer lacks). When set, the runtime appends the work-item count as an extra scalar argument for CUDA launches.

public bool CudaNeedsLength { get; init; }

Property Value

bool

CudaSource

Real CUDA-C source for the kernel (translated from the [Kernel] body by the source generator). When present, the CUDA backend compiles this directly via NVRTC. Null when the kernel does not target CUDA or generation produced no source.

public string? CudaSource { get; init; }

Property Value

string

Dimensions

Launch dimensionality (1, 2, or 3), detected by the generator from which of KernelContext.ThreadId.X/.Y/.Z the kernel body uses. The runtime derives a D-dimensional launch whose per-axis extents are the last D integer scalar arguments (last → X, second-last → Y, third-last → Z). Defaults to 1 (flat over the output).

public int Dimensions { get; init; }

Property Value

int

ExtentParamIndices

Per-dimension parameter indices supplying the launch extents, detected by the generator from the kernel's own guard comparisons (e.g. x >= width maps width to the X extent). -1 for undetected dimensions; null when nothing was detected. Positional heuristics remain the fallback.

public int[]? ExtentParamIndices { get; init; }

Property Value

int[]

FullName

Gets the fully qualified kernel name.

public required string FullName { get; init; }

Property Value

string

IsParallel

Gets whether the kernel supports parallel execution.

public bool IsParallel { get; init; }

Property Value

bool

Metadata

Gets additional kernel metadata.

public Dictionary<string, object> Metadata { get; init; }

Property Value

Dictionary<string, object>

MetalSource

Real Metal Shading Language source for the kernel. Null when not targeting Metal.

public string? MetalSource { get; init; }

Property Value

string

Name

Gets the kernel name.

public required string Name { get; init; }

Property Value

string

Parameters

Ordered parameter descriptors matching the kernel method signature. Drives argument marshalling (buffer vs scalar), writable-output copy-back, and launch-size derivation.

public IReadOnlyList<KernelParameterInfo> Parameters { get; init; }

Property Value

IReadOnlyList<KernelParameterInfo>

SupportedBackends

Gets the supported backend types.

public required string[] SupportedBackends { get; init; }

Property Value

string[]

VectorSize

Gets the preferred vector size for SIMD operations.

public int VectorSize { get; init; }

Property Value

int