Skip to main content

Module builder

Module builder 

Source
Expand description

Ergonomic builder API for constructing ComputeGraphs.

GraphBuilder provides a fluent interface for assembling a computation graph, handling ID allocation and optional automatic data-flow edge inference transparently.

§Example

let mut b = GraphBuilder::new();

let upload   = b.add_memcpy("upload",   MemcpyDir::HostToDevice, 4096);
let weights  = b.alloc_buffer("weights",  4096);
let compute  = b.add_kernel("gemm", 32, 256, 0).fusible(false).finish();
let download = b.add_memcpy("download", MemcpyDir::DeviceToHost, 4096);

b.dep(upload, compute).dep(compute, download);

let graph = b.build().unwrap();
assert_eq!(graph.node_count(), 3);

Structs§

GraphBuilder
Builds a ComputeGraph via a fluent API.
KernelNodeBuilder
Fluent builder for a single kernel launch node.