kernel_context.h#

namespace onnx_light

Alias that makes onnx-light headers compatible with code that references ONNX_LIGHT_NAMESPACE (the macro used in the standard onnx package).

Set to ONNX_LIGHT_NAMESPACE so both names resolve to the same namespace.

Symbol-visibility attribute for the public onnx-light C++ API.

Defined as empty because onnx-light does not require explicit __declspec(dllexport) or __attribute__((visibility("default"))) annotations — visibility is controlled at the shared-library level. The macro is provided so that vendored ONNX headers that decorate their declarations with ONNX_API compile without modification.

Namespace alias so that ONNX C++ code (and consumers such as onnxruntime) that refers to the literal onnx namespace — rather than the ONNX_NAMESPACE macro — resolves to the onnx-light namespace. The standard onnx package lives in namespace onnx; onnx-light uses onnx_light (via ONNX_LIGHT_NAMESPACE), so this alias keeps onnx-light a true drop-in. It is only introduced when the onnx-light namespace differs from onnx.

namespace onnx_kernels
namespace kernel

Functions

inline OpsetId DefaultOpset(int64_t version)#

Builds an :ref:OpsetId for the default ai.onnx domain (empty string).

class KernelBase#
#include <kernel_context.h>

Base class for every backend test kernel.

Each concrete kernel class derives from KernelBase so it inherits ownership of the construction-time KernelContext reference. Derived kernels access the context through the protected ctx_ member and typically inherit KernelBase’s constructor via using KernelBase::KernelBase;, which preserves the explicit qualifier on the single-argument constructor.

Centralizing the context member here keeps every kernel class consistent, makes it trivial to extend the construction-time interface (e.g. by adding new fields to KernelContext), and avoids a repeated boilerplate const KernelContext &ctx_; member in each kernel.

Subclassed by onnx_light::onnx_kernels::kernel::Abs, onnx_light::onnx_kernels::kernel::Acos, onnx_light::onnx_kernels::kernel::Acosh, onnx_light::onnx_kernels::kernel::Adagrad, onnx_light::onnx_kernels::kernel::Adam, onnx_light::onnx_kernels::kernel::Add, onnx_light::onnx_kernels::kernel::AffineGrid, onnx_light::onnx_kernels::kernel::And, onnx_light::onnx_kernels::kernel::ArgReduce, onnx_light::onnx_kernels::kernel::ArrayFeatureExtractor, onnx_light::onnx_kernels::kernel::Asin, onnx_light::onnx_kernels::kernel::Asinh, onnx_light::onnx_kernels::kernel::Atan, onnx_light::onnx_kernels::kernel::Atanh, onnx_light::onnx_kernels::kernel::Attention, onnx_light::onnx_kernels::kernel::AveragePool, onnx_light::onnx_kernels::kernel::BatchNormalization, onnx_light::onnx_kernels::kernel::Bernoulli, onnx_light::onnx_kernels::kernel::Binarizer, onnx_light::onnx_kernels::kernel::BitCast, onnx_light::onnx_kernels::kernel::BitShift, onnx_light::onnx_kernels::kernel::BitwiseAnd, onnx_light::onnx_kernels::kernel::BitwiseNot, onnx_light::onnx_kernels::kernel::BitwiseOr, onnx_light::onnx_kernels::kernel::BitwiseXor, onnx_light::onnx_kernels::kernel::BlackmanWindow, onnx_light::onnx_kernels::kernel::Cast, onnx_light::onnx_kernels::kernel::CastLike, onnx_light::onnx_kernels::kernel::CastMap, onnx_light::onnx_kernels::kernel::CategoryMapper, onnx_light::onnx_kernels::kernel::CausalConvWithState, onnx_light::onnx_kernels::kernel::Ceil, onnx_light::onnx_kernels::kernel::Celu, onnx_light::onnx_kernels::kernel::CenterCropPad, onnx_light::onnx_kernels::kernel::Clip, onnx_light::onnx_kernels::kernel::Col2Im, onnx_light::onnx_kernels::kernel::Compress, onnx_light::onnx_kernels::kernel::Concat, onnx_light::onnx_kernels::kernel::ConcatFromSequence, onnx_light::onnx_kernels::kernel::Constant, onnx_light::onnx_kernels::kernel::ConstantOfShape, onnx_light::onnx_kernels::kernel::Conv, onnx_light::onnx_kernels::kernel::ConvInteger, onnx_light::onnx_kernels::kernel::ConvTranspose, onnx_light::onnx_kernels::kernel::Cos, onnx_light::onnx_kernels::kernel::Cosh, onnx_light::onnx_kernels::kernel::CumProd, onnx_light::onnx_kernels::kernel::CumSum, onnx_light::onnx_kernels::kernel::DFT, onnx_light::onnx_kernels::kernel::DeformConv, onnx_light::onnx_kernels::kernel::DelayedInitializer, onnx_light::onnx_kernels::kernel::DepthToSpace, onnx_light::onnx_kernels::kernel::DequantizeLinear, onnx_light::onnx_kernels::kernel::Det, onnx_light::onnx_kernels::kernel::DictVectorizer, onnx_light::onnx_kernels::kernel::Div, onnx_light::onnx_kernels::kernel::Dropout, onnx_light::onnx_kernels::kernel::DynamicQuantizeLinear, onnx_light::onnx_kernels::kernel::Einsum, onnx_light::onnx_kernels::kernel::Elu, onnx_light::onnx_kernels::kernel::Equal, onnx_light::onnx_kernels::kernel::Erf, onnx_light::onnx_kernels::kernel::Exp, onnx_light::onnx_kernels::kernel::Expand, onnx_light::onnx_kernels::kernel::EyeLike, onnx_light::onnx_kernels::kernel::FeatureVectorizer, onnx_light::onnx_kernels::kernel::Flatten, onnx_light::onnx_kernels::kernel::FlexAttention, onnx_light::onnx_kernels::kernel::Floor, onnx_light::onnx_kernels::kernel::GRU, onnx_light::onnx_kernels::kernel::Gather, onnx_light::onnx_kernels::kernel::GatherElements, onnx_light::onnx_kernels::kernel::GatherND, onnx_light::onnx_kernels::kernel::Gelu, onnx_light::onnx_kernels::kernel::Gemm, onnx_light::onnx_kernels::kernel::GlobalAveragePool, onnx_light::onnx_kernels::kernel::GlobalLpPool, onnx_light::onnx_kernels::kernel::GlobalMaxPool, onnx_light::onnx_kernels::kernel::Greater, onnx_light::onnx_kernels::kernel::GreaterOrEqual, onnx_light::onnx_kernels::kernel::GridSample, onnx_light::onnx_kernels::kernel::GroupNormalization, onnx_light::onnx_kernels::kernel::HammingWindow, onnx_light::onnx_kernels::kernel::HannWindow, onnx_light::onnx_kernels::kernel::HardSigmoid, onnx_light::onnx_kernels::kernel::HardSwish, onnx_light::onnx_kernels::kernel::Hardmax, onnx_light::onnx_kernels::kernel::Identity, onnx_light::onnx_kernels::kernel::If, onnx_light::onnx_kernels::kernel::ImageDecoder, onnx_light::onnx_kernels::kernel::Imputer, onnx_light::onnx_kernels::kernel::InstanceNormalization, onnx_light::onnx_kernels::kernel::IsInf, onnx_light::onnx_kernels::kernel::IsNaN, onnx_light::onnx_kernels::kernel::LRN, onnx_light::onnx_kernels::kernel::LSTM, onnx_light::onnx_kernels::kernel::LabelEncoder, onnx_light::onnx_kernels::kernel::LayerNormalization, onnx_light::onnx_kernels::kernel::LeakyRelu, onnx_light::onnx_kernels::kernel::Less, onnx_light::onnx_kernels::kernel::LessOrEqual, onnx_light::onnx_kernels::kernel::LinearAttention, onnx_light::onnx_kernels::kernel::LinearClassifier, onnx_light::onnx_kernels::kernel::LinearRegressor, onnx_light::onnx_kernels::kernel::Log, onnx_light::onnx_kernels::kernel::LogSoftmax, onnx_light::onnx_kernels::kernel::Loop, onnx_light::onnx_kernels::kernel::LpNormalization, onnx_light::onnx_kernels::kernel::LpPool, onnx_light::onnx_kernels::kernel::MatMul, onnx_light::onnx_kernels::kernel::MatMulInteger, onnx_light::onnx_kernels::kernel::Max, onnx_light::onnx_kernels::kernel::MaxPool, onnx_light::onnx_kernels::kernel::MaxRoiPool, onnx_light::onnx_kernels::kernel::MaxUnpool, onnx_light::onnx_kernels::kernel::Mean, onnx_light::onnx_kernels::kernel::MeanVarianceNormalization, onnx_light::onnx_kernels::kernel::MelWeightMatrix, onnx_light::onnx_kernels::kernel::Min, onnx_light::onnx_kernels::kernel::Mish, onnx_light::onnx_kernels::kernel::Mod, onnx_light::onnx_kernels::kernel::Momentum, onnx_light::onnx_kernels::kernel::Mul, onnx_light::onnx_kernels::kernel::Multinomial, onnx_light::onnx_kernels::kernel::Neg, onnx_light::onnx_kernels::kernel::NegativeLogLikelihoodLoss, onnx_light::onnx_kernels::kernel::NonMaxSuppression, onnx_light::onnx_kernels::kernel::NonZero, onnx_light::onnx_kernels::kernel::Normalizer, onnx_light::onnx_kernels::kernel::Not, onnx_light::onnx_kernels::kernel::OneHot, onnx_light::onnx_kernels::kernel::OneHotEncoder, onnx_light::onnx_kernels::kernel::Optional, onnx_light::onnx_kernels::kernel::OptionalGetElement, onnx_light::onnx_kernels::kernel::OptionalHasElement, onnx_light::onnx_kernels::kernel::Or, onnx_light::onnx_kernels::kernel::PRelu, onnx_light::onnx_kernels::kernel::Pad, onnx_light::onnx_kernels::kernel::Pow, onnx_light::onnx_kernels::kernel::QLinearConv, onnx_light::onnx_kernels::kernel::QLinearMatMul, onnx_light::onnx_kernels::kernel::QuantizeLinear, onnx_light::onnx_kernels::kernel::RMSNormalization, onnx_light::onnx_kernels::kernel::RNN, onnx_light::onnx_kernels::kernel::RandomNormal, onnx_light::onnx_kernels::kernel::RandomNormalLike, onnx_light::onnx_kernels::kernel::RandomUniform, onnx_light::onnx_kernels::kernel::RandomUniformLike, onnx_light::onnx_kernels::kernel::Range, onnx_light::onnx_kernels::kernel::Reciprocal, onnx_light::onnx_kernels::kernel::ReduceL1L2, onnx_light::onnx_kernels::kernel::ReduceLogSumOp, onnx_light::onnx_kernels::kernel::ReduceMean, onnx_light::onnx_kernels::kernel::ReduceMinMax, onnx_light::onnx_kernels::kernel::ReduceProd, onnx_light::onnx_kernels::kernel::ReduceSum, onnx_light::onnx_kernels::kernel::RegexFullMatch, onnx_light::onnx_kernels::kernel::Relu, onnx_light::onnx_kernels::kernel::Reshape, onnx_light::onnx_kernels::kernel::Resize, onnx_light::onnx_kernels::kernel::ReverseSequence, onnx_light::onnx_kernels::kernel::RoiAlign, onnx_light::onnx_kernels::kernel::RotaryEmbedding, onnx_light::onnx_kernels::kernel::Round, onnx_light::onnx_kernels::kernel::STFT, onnx_light::onnx_kernels::kernel::SVMClassifier, onnx_light::onnx_kernels::kernel::SVMRegressor, onnx_light::onnx_kernels::kernel::Scaler, onnx_light::onnx_kernels::kernel::Scan, onnx_light::onnx_kernels::kernel::Scatter, onnx_light::onnx_kernels::kernel::ScatterElements, onnx_light::onnx_kernels::kernel::ScatterND, onnx_light::onnx_kernels::kernel::Selu, onnx_light::onnx_kernels::kernel::SequenceAt, onnx_light::onnx_kernels::kernel::SequenceConstruct, onnx_light::onnx_kernels::kernel::SequenceEmpty, onnx_light::onnx_kernels::kernel::SequenceErase, onnx_light::onnx_kernels::kernel::SequenceInsert, onnx_light::onnx_kernels::kernel::SequenceLength, onnx_light::onnx_kernels::kernel::SequenceMap, onnx_light::onnx_kernels::kernel::Shape, onnx_light::onnx_kernels::kernel::Shrink, onnx_light::onnx_kernels::kernel::Sigmoid, onnx_light::onnx_kernels::kernel::Sign, onnx_light::onnx_kernels::kernel::Sin, onnx_light::onnx_kernels::kernel::Sinh, onnx_light::onnx_kernels::kernel::Size, onnx_light::onnx_kernels::kernel::Slice, onnx_light::onnx_kernels::kernel::Softmax, onnx_light::onnx_kernels::kernel::SoftmaxCrossEntropyLoss, onnx_light::onnx_kernels::kernel::Softplus, onnx_light::onnx_kernels::kernel::Softsign, onnx_light::onnx_kernels::kernel::SpaceToDepth, onnx_light::onnx_kernels::kernel::Split, onnx_light::onnx_kernels::kernel::SplitToSequence, onnx_light::onnx_kernels::kernel::Sqrt, onnx_light::onnx_kernels::kernel::Squeeze, onnx_light::onnx_kernels::kernel::StringConcat, onnx_light::onnx_kernels::kernel::StringNormalizer, onnx_light::onnx_kernels::kernel::StringSplit, onnx_light::onnx_kernels::kernel::Sub, onnx_light::onnx_kernels::kernel::Sum, onnx_light::onnx_kernels::kernel::Swish, onnx_light::onnx_kernels::kernel::Tan, onnx_light::onnx_kernels::kernel::Tanh, onnx_light::onnx_kernels::kernel::TensorScatter, onnx_light::onnx_kernels::kernel::TfIdfVectorizer, onnx_light::onnx_kernels::kernel::ThresholdedRelu, onnx_light::onnx_kernels::kernel::Tile, onnx_light::onnx_kernels::kernel::TopK, onnx_light::onnx_kernels::kernel::Transpose, onnx_light::onnx_kernels::kernel::TreeEnsemble, onnx_light::onnx_kernels::kernel::TreeEnsembleClassifier, onnx_light::onnx_kernels::kernel::TreeEnsembleRegressor, onnx_light::onnx_kernels::kernel::Trilu, onnx_light::onnx_kernels::kernel::Unique, onnx_light::onnx_kernels::kernel::Unsqueeze, onnx_light::onnx_kernels::kernel::Upsample, onnx_light::onnx_kernels::kernel::Where, onnx_light::onnx_kernels::kernel::Xor, onnx_light::onnx_kernels::kernel::ZipMap

Public Functions

inline explicit KernelBase(const KernelContext &ctx)#

Protected Attributes

const KernelContext &ctx_#
struct KernelContext#
#include <kernel_context.h>

Construction-time context passed to backend test kernel classes.

Kernels are implemented as classes whose constructor takes a single KernelContext argument. The context bundles the opset against which the kernel must behave so the same kernel class can specialize its computation (or perform opset-specific validation) without changing its call sites.

Only the opset field is exposed today; new construction-time inputs (for example a device descriptor or an allocator) can be added later as additional fields without breaking existing kernel classes.

Public Functions

KernelContext() = default#
inline explicit KernelContext(OpsetId opset_)#

Public Members

OpsetId opset#

Opset against which the kernel must behave (domain + version).

struct OpsetId#
#include <kernel_context.h>

Lightweight opset identifier used by the backend test library.

Mirrors the (domain, version) pair carried by OperatorSetIdProto but keeps the public API of this library independent from the proto type so test cases can be declared without touching the proto wire format.

Public Functions

OpsetId() = default#
inline OpsetId(std::string domain_, int64_t version_)#

Public Members

std::string domain#
int64_t version = 0#