Expand description
The framework’s curated floor of primitive tensor ops.
Every Backend impl MUST declare an atomic_opset() whose ops
list contains every entry in TENSOR_PRIMITIVES_OPS. Ops not
in this set (Relu, Sigmoid, Tanh, Softmax, LeakyRelu, Gelu,
Conv, MaxPool, AveragePool, BatchNormalization,
LayerNormalization, …) are extensions: a backend MAY
support them via extension_opsets(); a graph using them
either binds to a backend that declares them OR (future work)
a lowering pass decomposes them into primitives.
Naming rationale — the op-types here live in the ai.onnx
domain because that’s where Add, MatMul, Reshape, etc.
are canonically named. The framework deliberately avoids
ONNX_V1_* / onnx_v1 identifiers anywhere so users don’t
read this floor as a claim to implement the ONNX v1
specification — the floor is OUR curation of primitives, not
the formal ONNX v1 catalog.
Structs§
- Missing
Primitives - Result of
opset_covers_primitiveswhen a backend’s declared opset is missing one or more entries from the floor.
Constants§
- TENSOR_
PRIMITIVES_ DOMAIN - Canonical opset domain for the primitive tensor ops. Same string the upstream ONNX project uses for its op-type catalog.
- TENSOR_
PRIMITIVES_ OPS - 30 primitive tensor ops every
Backendimpl MUST declare. - TENSOR_
PRIMITIVES_ VERSION - Version of the framework’s primitive-tensor floor. Bumped when the set changes meaningfully.
Functions§
- opset_
covers_ primitives - Confirm
opsetdeclares every primitive inTENSOR_PRIMITIVES_OPS. Returns the list of missing names so the caller surfaces a typed error instead of a flat boolean. Ops in opsets with a non-TENSOR_PRIMITIVES_DOMAINdomain don’t count toward the check — primitives are sourced from the canonicalai.onnxnamespace.