pub struct ConditionalCudaGraphSequenceBuilder { /* private fields */ }Expand description
Builds one dependency-ordered parent graph containing ordinary captured segments and any number of conditional-WHILE nodes.
This is the topology required by stratified Datalog: work before a
recursive strongly connected component executes once, only that component
is placed in a device-controlled WHILE, and later strata depend on its
completion. The finished value still launches through one cuGraphLaunch.
Implementations§
Source§impl ConditionalCudaGraphSequenceBuilder
impl ConditionalCudaGraphSequenceBuilder
Sourcepub fn new(stream: &CudaStream) -> Result<Self, CudaConditionalGraphUnavailable>
pub fn new(stream: &CudaStream) -> Result<Self, CudaConditionalGraphUnavailable>
Create an empty parent graph bound to stream’s CUDA context.
Sourcepub fn capture_segment_on_stream<F, E>(
&mut self,
stream: &CudaStream,
record: F,
) -> Result<(), CudaConditionalGraphUnavailable>
pub fn capture_segment_on_stream<F, E>( &mut self, stream: &CudaStream, record: F, ) -> Result<(), CudaConditionalGraphUnavailable>
Capture one ordinary graph segment after the current dependency frontier. The callback may enqueue only capture-compatible operations.
Sourcepub fn add_conditional_while<F>(
&mut self,
initial_value: u32,
assign_default_on_launch: bool,
populate_body: F,
) -> Result<CUgraphConditionalHandle, CudaConditionalGraphUnavailable>
pub fn add_conditional_while<F>( &mut self, initial_value: u32, assign_default_on_launch: bool, populate_body: F, ) -> Result<CUgraphConditionalHandle, CudaConditionalGraphUnavailable>
Append one conditional-WHILE node after the current frontier.
Sourcepub fn instantiate(
self,
) -> Result<CapturedCudaGraph, CudaConditionalGraphUnavailable>
pub fn instantiate( self, ) -> Result<CapturedCudaGraph, CudaConditionalGraphUnavailable>
Instantiate the complete parent graph exactly once.
Auto Trait Implementations§
impl !Send for ConditionalCudaGraphSequenceBuilder
impl !Sync for ConditionalCudaGraphSequenceBuilder
impl Freeze for ConditionalCudaGraphSequenceBuilder
impl RefUnwindSafe for ConditionalCudaGraphSequenceBuilder
impl Unpin for ConditionalCudaGraphSequenceBuilder
impl UnsafeUnpin for ConditionalCudaGraphSequenceBuilder
impl UnwindSafe for ConditionalCudaGraphSequenceBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more