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
Backends
Gets or sets the supported backend flags.
public KernelBackends Backends { get; init; }
Property Value
BarrierCapacity
Gets or sets the expected number of threads participating in barrier synchronization.
public int BarrierCapacity { get; init; }
Property Value
BarrierScope
Gets or sets the synchronization scope for barriers.
public BarrierScope BarrierScope { get; init; }
Property Value
Capacity
Gets or sets the ring buffer capacity.
public int Capacity { get; init; }
Property Value
ContainingType
Gets or sets the type containing the kernel method.
public required Type ContainingType { get; init; }
Property Value
Domain
Gets or sets the domain-specific optimization hint.
public RingKernelDomain Domain { get; init; }
Property Value
EnableCausalOrdering
Gets or sets whether to enable causal memory ordering (release-acquire semantics).
public bool EnableCausalOrdering { get; init; }
Property Value
EnableTimestamps
Gets or sets whether to enable GPU hardware timestamp tracking for temporal consistency.
public bool EnableTimestamps { get; init; }
Property Value
EventDrivenMaxIterations
Gets or sets the maximum number of loop iterations for EventDriven mode kernels.
public int EventDrivenMaxIterations { get; init; }
Property Value
HasInlineHandler
Gets or sets whether this kernel has inline handler code (unified kernel model).
public bool HasInlineHandler { get; init; }
Property Value
InlineHandlerCudaCode
Gets or sets the translated CUDA code for the inline handler (if applicable).
public string? InlineHandlerCudaCode { get; set; }
Property Value
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
InputQueueSize
Gets or sets the input queue size.
public int InputQueueSize { get; init; }
Property Value
KernelId
Gets or sets the unique kernel identifier.
public required string KernelId { get; init; }
Property Value
MaxInputMessageSizeBytes
Gets or sets the maximum input message size in bytes.
public int MaxInputMessageSizeBytes { get; init; }
Property Value
MaxMessagesPerIteration
Gets or sets the maximum number of messages processed per dispatch loop iteration.
public int MaxMessagesPerIteration { get; init; }
Property Value
MaxOutputMessageSizeBytes
Gets or sets the maximum output message size in bytes.
public int MaxOutputMessageSizeBytes { get; init; }
Property Value
MemoryConsistency
Gets or sets the memory consistency model for this ring kernel's memory operations.
public MemoryConsistencyModel MemoryConsistency { get; init; }
Property Value
MessageQueueSize
Gets or sets a unified message queue size that overrides both InputQueueSize and OutputQueueSize.
public int MessageQueueSize { get; init; }
Property Value
MessagingStrategy
Gets or sets the message passing strategy.
public MessagePassingStrategy MessagingStrategy { get; init; }
Property Value
Method
Gets or sets the reflected method info.
public required MethodInfo Method { get; init; }
Property Value
Mode
Gets or sets the execution mode (Persistent or EventDriven).
public RingKernelMode Mode { get; init; }
Property Value
NamedBarriers
Gets or sets the list of named barriers used by this kernel.
public IReadOnlyList<string> NamedBarriers { get; init; }
Property Value
Namespace
Gets or sets the namespace containing the kernel.
public required string Namespace { get; init; }
Property Value
OutputQueueSize
Gets or sets the output queue size.
public int OutputQueueSize { get; init; }
Property Value
Parameters
Gets or sets the method parameters metadata.
public required List<KernelParameterMetadata> Parameters { get; init; }
Property Value
ProcessingMode
Gets or sets how the ring kernel processes messages from its input queue.
public RingProcessingMode ProcessingMode { get; init; }
Property Value
PublishesToKernels
Gets or sets the list of kernel IDs this kernel publishes to.
public IReadOnlyList<string> PublishesToKernels { get; init; }
Property Value
PublishesToTopics
Gets or sets the list of pub/sub topic names this kernel publishes to.
public IReadOnlyList<string> PublishesToTopics { get; init; }
Property Value
SubscribesToKernels
Gets or sets the list of kernel IDs this kernel subscribes to.
public IReadOnlyList<string> SubscribesToKernels { get; init; }
Property Value
SubscribesToTopics
Gets or sets the list of pub/sub topic names this kernel subscribes to.
public IReadOnlyList<string> SubscribesToTopics { get; init; }
Property Value
UseBarriers
Gets or sets whether this ring kernel uses GPU thread barriers for synchronization.
public bool UseBarriers { get; init; }
Property Value
UsesK2KMessaging
Gets or sets whether this kernel uses kernel-to-kernel (actor) messaging.
public bool UsesK2KMessaging { get; init; }
Property Value
UsesTemporalApis
Gets or sets whether this kernel uses temporal (HLC) APIs.
public bool UsesTemporalApis { get; init; }
Property Value
UsesWarpPrimitives
Gets or sets whether this kernel uses warp-level primitives (shuffle, reduce, etc.).
public bool UsesWarpPrimitives { get; init; }