JIT (optional)¶
XAD provides optional JIT recording/execution support that can be compiled into the library. When enabled, XAD expressions can be recorded into a compact JITGraph and executed via a pluggable JITBackend.
Compile-time feature flag
The JIT API is only available when XAD is compiled with XAD_ENABLE_JIT. This is a compile-time configuration (it is compiled into the library).
Main building blocks¶
JITCompiler¶
template <class Real, std::size_t N = 1> class JITCompiler;
Records computations into a JITGraph, compiles them using a backend, and executes forward/adjoint computations.
See: JITCompiler
JITGraph¶
Defines the graph representation (JITOpCode, JITNode, and JITGraph).
See: JITGraph
JITBackend and JITGraphInterpreter¶
JITBackend is the abstract interface for executing a JITGraph. JITGraphInterpreter is the reference implementation that interprets the graph.
ABool¶
Trackable boolean helper used for JIT-recorded comparisons and conditional selection (If).
See: ABool