Skip to main content

Crate tidu

Crate tidu 

Source
Expand description

AD graph transforms for the tensor4all v2 stack.

This crate provides two graph-to-graph transforms: differentiate for forward linearization (JVP) and transpose for reverse linear flow over a linear fragment. Fallible variants (try_differentiate, try_transpose, and try_backward_dag) propagate [chainrules::ADRuleError] for missing primitive or extension AD rules. It also provides eager reverse-mode AD helpers: record_eager_op builds GradNode metadata around concrete frontend execution, and backward_dag replays recorded nodes through caller-provided BackwardCallbacks.

§Examples

use computegraph::resolve::resolve;
use tidu::{try_differentiate, try_transpose};

let view = resolve(vec![primal_fragment]);
let mut ctx = ();
let aliases = std::collections::HashMap::new();
let linear = try_differentiate(&view, &[output_key], &[input_key], 1, &mut ctx, &aliases)?;
let _transposed = try_transpose(&linear, &mut ctx)?;

Re-exports§

pub use backward::backward_dag;
pub use backward::topo_sort_grad_dag;
pub use backward::try_backward_dag;
pub use backward::BackwardCallbacks;
pub use eager_transpose::eager_transpose_fragment;
pub use eager_transpose::try_eager_transpose_fragment;
pub use grad_node::GradEdge;
pub use grad_node::GradNode;

Modules§

backward
eager_transpose
grad_node

Structs§

EagerOutput
Per-output trace metadata returned by record_eager_op.
EagerValue
Eager frontend input descriptor for generic AD recording.
LinearFragment
A linear fragment produced by crate::differentiate or crate::transpose.

Traits§

EagerKeySource
Caller-provided source of stable eager value keys.

Functions§

derived_output_key
Construct the derived key used to save a replayed primal output value.
differentiate
Differentiate a resolved computation graph, producing a linear fragment.
record_eager_op
Record a concrete eager primitive execution for reverse-mode AD.
saved_forward_values
Build saved forward data for one eager op.
transpose
Transpose a linear fragment, reversing linear flow.
try_differentiate
Fallible form of differentiate.
try_transpose
Fallible form of transpose.