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§
Structs§
- Eager
Output - Per-output trace metadata returned by
record_eager_op. - Eager
Value - Eager frontend input descriptor for generic AD recording.
- Linear
Fragment - A linear fragment produced by
crate::differentiateorcrate::transpose.
Traits§
- Eager
KeySource - 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.