Table of Contents

Class RingKernelConfig

Namespace
Orleans.GpuBridge.Abstractions.Kernels
Assembly
Orleans.GpuBridge.Abstractions.dll

Configuration for GPU-resident ring kernel actors. Ring kernels are persistent GPU threads that process messages at sub-microsecond latencies.

public sealed record RingKernelConfig : IEquatable<RingKernelConfig>
Inheritance
RingKernelConfig
Implements
Inherited Members

Remarks

GPU-Native Actor Model:

  • Actors reside permanently in GPU memory
  • Ring kernel runs infinite dispatch loop (launched once, runs forever)
  • Message queue and state maintained entirely on GPU
  • 100-500ns message latency (vs 10-100μs for CPU actors)

Use Cases:

  • High-frequency messaging between actors
  • Real-time temporal graph pattern detection
  • Digital twins with physics simulation
  • Knowledge organisms with emergent intelligence

Properties

AutoEnableP2P

Enable automatic P2P path discovery and setup. When enabled, automatically detects and enables P2P access between GPUs.

public bool AutoEnableP2P { get; init; }

Property Value

bool

Default

Default configuration for standard ring kernel actors

public static RingKernelConfig Default { get; }

Property Value

RingKernelConfig

EnableGpuDirectMessaging

Enable GPU-to-GPU direct messaging (bypasses CPU) Requires GPUDirect or similar technology

public bool EnableGpuDirectMessaging { get; init; }

Property Value

bool

EnableHLC

Enable GPU-resident Hybrid Logical Clock for temporal ordering

public bool EnableHLC { get; init; }

Property Value

bool

EnableP2PAtomics

Enable P2P atomics for lock-free queue operations. Requires hardware support (NVLink, certain PCIe configurations).

public bool EnableP2PAtomics { get; init; }

Property Value

bool

EnablePersistentStorage

Enable persistent storage integration (GPUDirect Storage)

public bool EnablePersistentStorage { get; init; }

Property Value

bool

EnableTemporalPatterns

Enable temporal pattern detection on message processing

public bool EnableTemporalPatterns { get; init; }

Property Value

bool

EnableVectorClock

Enable vector clock for distributed causality tracking

public bool EnableVectorClock { get; init; }

Property Value

bool

GPUResident

Keep actor state permanently in GPU memory (vs CPU-GPU transfers)

public bool GPUResident { get; init; }

Property Value

bool

HighPerformance

High-performance configuration for low-latency messaging

public static RingKernelConfig HighPerformance { get; }

Property Value

RingKernelConfig

KnowledgeOrganism

Configuration for knowledge organism actors

public static RingKernelConfig KnowledgeOrganism { get; }

Property Value

RingKernelConfig

MaxStateSizeBytes

Maximum state size in bytes (must fit in GPU memory)

public long MaxStateSizeBytes { get; init; }

Property Value

long

MessageTimeoutMicroseconds

Maximum message processing time before timeout (microseconds)

public long MessageTimeoutMicroseconds { get; init; }

Property Value

long

MessagingMode

GPU direct messaging mode for K2K communication. Controls how messages are routed between GPU-resident actors.

public GpuDirectMessagingMode MessagingMode { get; init; }

Property Value

GpuDirectMessagingMode

P2PMaxLatencyNs

Maximum latency threshold (nanoseconds) to prefer P2P over CPU routing. P2P paths with higher latency will fall back to CPU routing.

public double P2PMaxLatencyNs { get; init; }

Property Value

double

P2PMinBandwidthGBps

Minimum bandwidth threshold (GB/s) to prefer P2P over CPU routing. P2P paths with lower bandwidth will fall back to CPU routing.

public double P2PMinBandwidthGBps { get; init; }

Property Value

double

PollingIntervalNanoseconds

Ring kernel dispatch loop polling interval (nanoseconds) Lower = lower latency, higher = better GPU efficiency

public long PollingIntervalNanoseconds { get; init; }

Property Value

long

QueueDepth

Message queue depth (power of 2 recommended for lock-free operations)

public int QueueDepth { get; init; }

Property Value

int

TemporalGraph

Configuration for temporal graph pattern detection

public static RingKernelConfig TemporalGraph { get; }

Property Value

RingKernelConfig

VectorClockSize

Number of vector clock entries (for distributed causality)

public int VectorClockSize { get; init; }

Property Value

int