pub struct RingKernelConfig {
pub id: String,
pub block_size: u32,
pub queue_capacity: u32,
pub enable_k2k: bool,
pub enable_hlc: bool,
pub message_size: usize,
pub response_size: usize,
pub cooperative_groups: bool,
pub idle_sleep_ns: u32,
}Expand description
Configuration for a ring kernel.
Fields§
§id: StringKernel identifier (used in function name).
block_size: u32Block size (threads per block).
queue_capacity: u32Input queue capacity (must be power of 2).
enable_k2k: boolEnable kernel-to-kernel messaging.
enable_hlc: boolEnable HLC clock operations.
message_size: usizeMessage size in bytes (for buffer offset calculations).
response_size: usizeResponse size in bytes.
cooperative_groups: boolUse cooperative thread groups.
idle_sleep_ns: u32Nanosleep duration when idle (0 to spin).
Implementations§
Source§impl RingKernelConfig
impl RingKernelConfig
Sourcepub fn new(id: impl Into<String>) -> Self
pub fn new(id: impl Into<String>) -> Self
Create a new ring kernel configuration with the given ID.
Sourcepub fn with_block_size(self, size: u32) -> Self
pub fn with_block_size(self, size: u32) -> Self
Set the block size.
Sourcepub fn with_queue_capacity(self, capacity: u32) -> Self
pub fn with_queue_capacity(self, capacity: u32) -> Self
Set the queue capacity (must be power of 2).
Sourcepub fn with_message_sizes(self, message: usize, response: usize) -> Self
pub fn with_message_sizes(self, message: usize, response: usize) -> Self
Set message and response sizes.
Sourcepub fn with_idle_sleep(self, ns: u32) -> Self
pub fn with_idle_sleep(self, ns: u32) -> Self
Set idle sleep duration in nanoseconds.
Sourcepub fn kernel_name(&self) -> String
pub fn kernel_name(&self) -> String
Generate the kernel function name.
Sourcepub fn generate_signature(&self) -> String
pub fn generate_signature(&self) -> String
Generate CUDA kernel signature.
Sourcepub fn generate_preamble(&self, indent: &str) -> String
pub fn generate_preamble(&self, indent: &str) -> String
Generate the kernel preamble (thread setup, variable declarations).
Sourcepub fn generate_loop_header(&self, indent: &str) -> String
pub fn generate_loop_header(&self, indent: &str) -> String
Generate the persistent message loop header.
Sourcepub fn generate_message_complete(&self, indent: &str) -> String
pub fn generate_message_complete(&self, indent: &str) -> String
Generate message processing completion code.
Generate the loop footer (end of while loop).
Sourcepub fn generate_epilogue(&self, indent: &str) -> String
pub fn generate_epilogue(&self, indent: &str) -> String
Generate kernel epilogue (termination marking).
Sourcepub fn generate_kernel_wrapper(&self, handler_placeholder: &str) -> String
pub fn generate_kernel_wrapper(&self, handler_placeholder: &str) -> String
Generate complete kernel wrapper (without handler body).
Trait Implementations§
Source§impl Clone for RingKernelConfig
impl Clone for RingKernelConfig
Source§fn clone(&self) -> RingKernelConfig
fn clone(&self) -> RingKernelConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more