onnx-runtime-eager
Eager (single-op) execution for the ORT 2.0 runtime (docs/EAGER.md).
Dispatch individual ONNX ops to execution-provider kernels without building
a graph — a PyTorch-style experience with ONNX op semantics.
This crate is the pure-Rust core of the design. It reuses the existing runtime abstractions rather than inventing parallel ones:
ExecutionProvider/Kernel/OpRegistryfromonnx-runtime-ep-api,- the populated CPU registry from
onnx-runtime-ep-cpu, - per-op shape/dtype inference from
onnx-runtime-shape-inference, - the IR vocabulary (
Node,DataType,Attribute, …) fromonnx-runtime-ir.
Phase-1 scope (docs/EAGER.md)
Implemented: [EagerContext], [EagerContext::dispatch] (single-op CPU
dispatch), the DomainRegistry, opset resolution
([opset]), and the compiled-KernelCache.
DEFERRED (each is flagged at its hook point):
- PyO3 / Python bindings (§11), including the
Tensorsingle→tensor / multi→tuple sugar andops.*typed wrappers (§4.1). - Subgraph ops
If/Loop/Scan(§7). - The opset context-manager /
nxrt.device()context (§5.3, §2.2). - GPU/CUDA EP dispatch and implicit cross-device transfer.
- Kernel-provided shape-inference fallback (§9.2).
- DLPack / numpy interop (§3).