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.
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::{differentiate, transpose};
let view = resolve(vec![primal_fragment]);
let mut ctx = ();
let linear = differentiate(&view, &[output_key], &[input_key], 1, &mut ctx);
let _transposed = transpose(&linear, &mut ctx);Re-exports§
pub use backward::backward_dag;pub use backward::topo_sort_grad_dag;pub use backward::BackwardCallbacks;pub use eager_transpose::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.