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
Default
Default configuration for standard ring kernel actors
public static RingKernelConfig Default { get; }
Property Value
EnableGpuDirectMessaging
Enable GPU-to-GPU direct messaging (bypasses CPU) Requires GPUDirect or similar technology
public bool EnableGpuDirectMessaging { get; init; }
Property Value
EnableHLC
Enable GPU-resident Hybrid Logical Clock for temporal ordering
public bool EnableHLC { get; init; }
Property Value
EnableP2PAtomics
Enable P2P atomics for lock-free queue operations. Requires hardware support (NVLink, certain PCIe configurations).
public bool EnableP2PAtomics { get; init; }
Property Value
EnablePersistentStorage
Enable persistent storage integration (GPUDirect Storage)
public bool EnablePersistentStorage { get; init; }
Property Value
EnableTemporalPatterns
Enable temporal pattern detection on message processing
public bool EnableTemporalPatterns { get; init; }
Property Value
EnableVectorClock
Enable vector clock for distributed causality tracking
public bool EnableVectorClock { get; init; }
Property Value
GPUResident
Keep actor state permanently in GPU memory (vs CPU-GPU transfers)
public bool GPUResident { get; init; }
Property Value
HighPerformance
High-performance configuration for low-latency messaging
public static RingKernelConfig HighPerformance { get; }
Property Value
KnowledgeOrganism
Configuration for knowledge organism actors
public static RingKernelConfig KnowledgeOrganism { get; }
Property Value
MaxStateSizeBytes
Maximum state size in bytes (must fit in GPU memory)
public long MaxStateSizeBytes { get; init; }
Property Value
MessageTimeoutMicroseconds
Maximum message processing time before timeout (microseconds)
public long MessageTimeoutMicroseconds { get; init; }
Property Value
MessagingMode
GPU direct messaging mode for K2K communication. Controls how messages are routed between GPU-resident actors.
public GpuDirectMessagingMode MessagingMode { get; init; }
Property Value
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
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
PollingIntervalNanoseconds
Ring kernel dispatch loop polling interval (nanoseconds) Lower = lower latency, higher = better GPU efficiency
public long PollingIntervalNanoseconds { get; init; }
Property Value
QueueDepth
Message queue depth (power of 2 recommended for lock-free operations)
public int QueueDepth { get; init; }
Property Value
TemporalGraph
Configuration for temporal graph pattern detection
public static RingKernelConfig TemporalGraph { get; }
Property Value
VectorClockSize
Number of vector clock entries (for distributed causality)
public int VectorClockSize { get; init; }