Table of Contents

Class DiscoveredRingKernel

Namespace
DotCompute.Backends.CUDA.Compilation
Assembly
DotCompute.Backends.CUDA.dll

Represents a discovered Ring Kernel with its metadata.

public sealed class DiscoveredRingKernel
Inheritance
DiscoveredRingKernel
Inherited Members

Properties

Attribute

Gets or sets the [RingKernel] attribute instance.

public required RingKernelAttribute Attribute { get; init; }

Property Value

RingKernelAttribute

Backends

Gets or sets the supported backend flags.

public KernelBackends Backends { get; init; }

Property Value

KernelBackends

BarrierCapacity

Gets or sets the expected number of threads participating in barrier synchronization.

public int BarrierCapacity { get; init; }

Property Value

int

BarrierScope

Gets or sets the synchronization scope for barriers.

public BarrierScope BarrierScope { get; init; }

Property Value

BarrierScope

Capacity

Gets or sets the ring buffer capacity.

public int Capacity { get; init; }

Property Value

int

ContainingType

Gets or sets the type containing the kernel method.

public required Type ContainingType { get; init; }

Property Value

Type

Domain

Gets or sets the domain-specific optimization hint.

public RingKernelDomain Domain { get; init; }

Property Value

RingKernelDomain

EnableCausalOrdering

Gets or sets whether to enable causal memory ordering (release-acquire semantics).

public bool EnableCausalOrdering { get; init; }

Property Value

bool

EnableTimestamps

Gets or sets whether to enable GPU hardware timestamp tracking for temporal consistency.

public bool EnableTimestamps { get; init; }

Property Value

bool

EventDrivenMaxIterations

Gets or sets the maximum number of loop iterations for EventDriven mode kernels.

public int EventDrivenMaxIterations { get; init; }

Property Value

int

HasInlineHandler

Gets or sets whether this kernel has inline handler code (unified kernel model).

public bool HasInlineHandler { get; init; }

Property Value

bool

InlineHandlerCudaCode

Gets or sets the translated CUDA code for the inline handler (if applicable).

public string? InlineHandlerCudaCode { get; set; }

Property Value

string

Remarks

This property can be set after discovery during the compilation phase when the handler code is translated from C# to CUDA.

InputMessageTypeName

Gets the input message type name (for unified kernel API).

public string? InputMessageTypeName { get; init; }

Property Value

string

InputQueueSize

Gets or sets the input queue size.

public int InputQueueSize { get; init; }

Property Value

int

KernelId

Gets or sets the unique kernel identifier.

public required string KernelId { get; init; }

Property Value

string

MaxInputMessageSizeBytes

Gets or sets the maximum input message size in bytes.

public int MaxInputMessageSizeBytes { get; init; }

Property Value

int

MaxMessagesPerIteration

Gets or sets the maximum number of messages processed per dispatch loop iteration.

public int MaxMessagesPerIteration { get; init; }

Property Value

int

MaxOutputMessageSizeBytes

Gets or sets the maximum output message size in bytes.

public int MaxOutputMessageSizeBytes { get; init; }

Property Value

int

MemoryConsistency

Gets or sets the memory consistency model for this ring kernel's memory operations.

public MemoryConsistencyModel MemoryConsistency { get; init; }

Property Value

MemoryConsistencyModel

MessageQueueSize

Gets or sets a unified message queue size that overrides both InputQueueSize and OutputQueueSize.

public int MessageQueueSize { get; init; }

Property Value

int

MessagingStrategy

Gets or sets the message passing strategy.

public MessagePassingStrategy MessagingStrategy { get; init; }

Property Value

MessagePassingStrategy

Method

Gets or sets the reflected method info.

public required MethodInfo Method { get; init; }

Property Value

MethodInfo

Mode

Gets or sets the execution mode (Persistent or EventDriven).

public RingKernelMode Mode { get; init; }

Property Value

RingKernelMode

NamedBarriers

Gets or sets the list of named barriers used by this kernel.

public IReadOnlyList<string> NamedBarriers { get; init; }

Property Value

IReadOnlyList<string>

Namespace

Gets or sets the namespace containing the kernel.

public required string Namespace { get; init; }

Property Value

string

OutputQueueSize

Gets or sets the output queue size.

public int OutputQueueSize { get; init; }

Property Value

int

Parameters

Gets or sets the method parameters metadata.

public required List<KernelParameterMetadata> Parameters { get; init; }

Property Value

List<KernelParameterMetadata>

ProcessingMode

Gets or sets how the ring kernel processes messages from its input queue.

public RingProcessingMode ProcessingMode { get; init; }

Property Value

RingProcessingMode

PublishesToKernels

Gets or sets the list of kernel IDs this kernel publishes to.

public IReadOnlyList<string> PublishesToKernels { get; init; }

Property Value

IReadOnlyList<string>

PublishesToTopics

Gets or sets the list of pub/sub topic names this kernel publishes to.

public IReadOnlyList<string> PublishesToTopics { get; init; }

Property Value

IReadOnlyList<string>

SubscribesToKernels

Gets or sets the list of kernel IDs this kernel subscribes to.

public IReadOnlyList<string> SubscribesToKernels { get; init; }

Property Value

IReadOnlyList<string>

SubscribesToTopics

Gets or sets the list of pub/sub topic names this kernel subscribes to.

public IReadOnlyList<string> SubscribesToTopics { get; init; }

Property Value

IReadOnlyList<string>

UseBarriers

Gets or sets whether this ring kernel uses GPU thread barriers for synchronization.

public bool UseBarriers { get; init; }

Property Value

bool

UsesK2KMessaging

Gets or sets whether this kernel uses kernel-to-kernel (actor) messaging.

public bool UsesK2KMessaging { get; init; }

Property Value

bool

UsesTemporalApis

Gets or sets whether this kernel uses temporal (HLC) APIs.

public bool UsesTemporalApis { get; init; }

Property Value

bool

UsesWarpPrimitives

Gets or sets whether this kernel uses warp-level primitives (shuffle, reduce, etc.).

public bool UsesWarpPrimitives { get; init; }

Property Value

bool