API reference
The namespaces, classes and structs this repository declares.
Namespaces
Classes
SushiAI::Autograd::GradientTapeHolds traversal state and emitter interfaces for backward rules.
SushiAI::Config::ValueOne node of a parsed configuration document.
SushiAI::Data::DatasetThe seam every training loop reads through.
SushiAI::Data::RingsGenerates concentric rings labelled by ring index.
SushiAI::Data::SyntheticClassificationGenerates deterministic, linearly separable multi-class batches.
SushiAI::Eager::RegionPartitionerAssigns every node of a differentiated graph a region key.
SushiAI::Eager::ScopeOpens a named scope for its own lifetime.
SushiAI::Eager::ScopePartitionerCuts a graph only where the caller opened or closed a scope.
SushiAI::Eager::ScopeTraceSplits the nodes traced into one graph into segments, by the scope open at each.
SushiAI::ErrorThe exception every SushiAI failure surfaces as.
SushiAI::Graph::ArenaSetOwns one Storage per arena in a plan and hands out views into them.
SushiAI::Graph::CastReportSummarises the casts and value retitlings inserted by the pass.
SushiAI::Graph::CompiledStepManages the lowered and compiled execution plan for a graph.
SushiAI::Graph::DeviceFusionSelectorSelects fused forms based on device profile and execution mode.
SushiAI::Graph::FusionReportRecords which subtrees collapsed and which were refused.
SushiAI::Graph::GraphA single-assignment DAG of tensor operations.
SushiAI::Graph::GraphBuilderEmits shape-checked IR nodes into a Graph.
SushiAI::Graph::IFusionSelectorDefines the interface for bind-time selection of fused forms.
SushiAI::Graph::IPrecisionPolicyInterface selecting execution element types per operation.
SushiAI::Graph::IStepRecorderDevice work recorded into the compiled step rather than flushed alone.
SushiAI::Graph::LoweringTranslates IR graph operations into recorded SushiBLAS work.
SushiAI::Graph::MemoryPlanThe planner's output: one Placement per value, plus arena sizes.
SushiAI::Graph::MixedPrecisionPolicySelects lower precision for compute-bound operations.
SushiAI::Graph::TensorPoolOwns device memory buffers backing graph values across steps.
SushiAI::Graph::UniformPrecisionPolicyPreserves declared precision across all graph operations.
SushiAI::IO::CheckpointReaderDeserializes checkpoint headers and records from an input stream.
SushiAI::IO::CheckpointWriterSerializes checkpoint headers and tensor records to an output stream.
SushiAI::NN::ILayerOne layer of a model whose architecture came from a file.
SushiAI::NN::LayerAdapterAdapts a compile-time Module to the runtime ILayer interface.
SushiAI::NN::LayerStackHolds a runtime sequential list of polymorphic layers.
SushiAI::NN::ParameterHolds a learnable tensor's metadata and graph value identifier.
SushiAI::NN::ParameterVisitorNon-owning type-erased parameter callback wrapper.
SushiAI::NN::SequentialApplies layers in sequence and indexes parameter paths.
SushiAI::Optim::AdamWThe update above, applied to a fixed parameter set.
SushiAI::Optim::LossScalerThe state machine, its device-resident scale, and the screen.
SushiAI::Optim::LossScaleStateHost-side state machine tracking dynamic loss scale adjustments.
SushiAI::Optim::OptimizerCommon base class providing parameter update recording and lifecycle hooks.
SushiAI::Optim::SGDThe update rule above, applied to a fixed parameter set.
SushiAI::Optim::StepScalarsA tiny device-resident float vector, rewritten from the host per step.
SushiAI::ShapeRepresents tensor extents as a fixed-capacity value type.
SushiAI::Train::CrossEntropyObjectiveMulti-class cross-entropy over one-hot targets, and accuracy.
SushiAI::Train::IObjectiveWhat a model is being trained to minimise.
SushiAI::Train::ObjectiveLeavesThe graph values an objective declared, by role.
SushiAI::Train::TrainerOwns the compiled step and drives it over a dataset.
Structs
std::hash<::SushiAI::Shape >Enables Shape as an unordered-container key.
SushiAI::Autograd::GradCheckOptionsThe knobs, with the defaults the derivation above justifies.
SushiAI::Autograd::GradCheckResultWhat a check found.
SushiAI::Autograd::ProvenanceRecords, for every node differentiate() appended, the forward node it serves.
SushiAI::Autograd::RuleEntryOne operation's backward rule, paired with its identity.
SushiAI::Config::DataSpecWhere a run's batches come from.
SushiAI::Config::LayerSpecOne layer as the file spelled it: a type, and everything else.
SushiAI::Config::ModelSpecA parsed architecture.
SushiAI::Config::TrainSpecOne training run, end to end.
SushiAI::Data::BatchOne minibatch, resident on the device.
SushiAI::Data::DatasetEntryOne row of DATASET_REGISTRY.
SushiAI::Data::MnistOptionsWhere the IDX files are and how much of them to use.
SushiAI::Data::RingsOptionsHow to shape the concentric-rings problem.
SushiAI::Data::SyntheticOptionsHow to shape the generated classification problem.
SushiAI::Detect::FeatureLevelHolds the extents and the stride of one feature level.
SushiAI::Detect::LevelPlacementHolds where one level's rows sit in a
[B, A, C]array over all anchors.SushiAI::Eager::PartitionAssigns every node of one differentiated graph to a region.
SushiAI::Eager::RegionInfoDescribes one region of a partition.
SushiAI::Eager::RegionSignatureHolds what two steps must agree on for a region to be reused.
SushiAI::Eager::SegmentNames a maximal run of consecutively traced nodes with one innermost scope.
SushiAI::Graph::ArenaOne allocation the plan asks for, and what it holds.
SushiAI::Graph::AttributesStores inline scalar configuration values for an operation.
SushiAI::Graph::BatchNormGradsHolds the three gradients produced by batch normalisation backward.
SushiAI::Graph::BatchNormResultHolds normalised output tensor and saved batch statistics.
SushiAI::Graph::CastOptionsWhat the pass is allowed to change.
SushiAI::Graph::ConvGeometryDefines a 2-D window geometry in eight configuration slots.
SushiAI::Graph::DeclinedFusionOne chain that matched structurally and was refused anyway.
SushiAI::Graph::DTypeMismatchOne place a graph disagrees with a precision policy.
SushiAI::Graph::FusedSubtreeOne chain the pass replaced with a single node.
SushiAI::Graph::FusionChoiceWhat the lowering should spell, and why.
SushiAI::Graph::FusionOptionsWhat the pass is allowed to do.
SushiAI::Graph::FusionQueryOne fused node, described in the terms a selector reasons in.
SushiAI::Graph::FusionSelectionOne selector decision, kept so the lowering can be interrogated.
SushiAI::Graph::InsertedCastOne conversion the pass added.
SushiAI::Graph::NodeOne operation: an identity, its operands, its results.
SushiAI::Graph::PlacementWhere one value's elements live.
SushiAI::Graph::PlanOptionsThe three knobs the planner has, and nothing else.
SushiAI::Graph::PoolResultHolds pooled tensor output and argmax indices.
SushiAI::Graph::PrecisionChoiceWhat the operation should compute in, and why.
SushiAI::Graph::PrecisionQueryOne operation, described in the terms a precision policy reasons in.
SushiAI::Graph::SpatialExtentsHolds the height and the width a spatial operation yields.
SushiAI::Graph::ValueOne single-assignment tensor-shaped value in the graph.
SushiAI::IO::TensorRecordOne tensor's identity in a checkpoint: its name, type and extents.
SushiAI::NN::AvgPool2dAverages every window of an NHWC image, dividing by the full window area.
SushiAI::NN::Conv2dConvolves an NHWC activation with a bank of learnable filters.
SushiAI::NN::CrossEntropyLossComputes mean cross-entropy over a batch from raw logits.
SushiAI::NN::FlattenFolds [N, d1, ..., dk] into [N, d1 * ... * dk] without moving data.
SushiAI::NN::GELUThe Gaussian error linear unit, tanh approximation.
SushiAI::NN::GlobalAvgPoolAverages an [N, H, W, C] activation over H and W, giving [N, C].
SushiAI::NN::InitPolicyHow a whole model is initialised.
SushiAI::NN::LayerEntryOne row of LAYER_REGISTRY.
SushiAI::NN::LeakyReLUApplies x where x is positive and slope * x elsewhere, elementwise.
SushiAI::NN::LinearRepresents an affine transformation: Y = X * W^T + b.
SushiAI::NN::MaxPool2dTakes the maximum of every window of an NHWC activation.
SushiAI::NN::ParameterFieldOne entry of a layer's fields() list: a name and a member.
SushiAI::NN::ReLUmax(0, x), elementwise.
SushiAI::NN::SigmoidThe logistic sigmoid, elementwise.
SushiAI::NN::TanhThe hyperbolic tangent, elementwise.
SushiAI::NN::UnflattenViews an [N, height * width * channels] value as [N, height, width, channels].
SushiAI::NN::Upsample2dRepeats every pixel of an NHWC image over a scale-by-scale block.
SushiAI::Ops::ActivationDescribes an activation, its gradient operation, and gradient source.
SushiAI::Ops::OpNameOne operation's identity: the string and its hash, kept together.
SushiAI::Optim::AdamWOptionsAdamW's hyperparameters, with the reference defaults.
SushiAI::Optim::LossScaleOptionsConfiguration constants governing dynamic loss scaling.
SushiAI::Optim::OptimizerEntryOne row of OPTIMIZER_REGISTRY.
SushiAI::Optim::ParameterSlotOne parameter and its gradient, as the optimizer sees them.
SushiAI::Optim::SGDOptionsSGD's hyperparameters, with PyTorch's defaults where they have one.
SushiAI::Train::MetricOne named number a step produced, whatever it means.
SushiAI::Train::ObjectiveEntryOne row of OBJECTIVE_REGISTRY.
SushiAI::Train::ParameterBindingA parameter's name and the two graph values behind it.
SushiAI::Train::RunReportWhat a whole fit() produced.
SushiAI::Train::StepMetricsWhat one step produced.
SushiAI::Train::StepSpecThe four graph values a training loop has to know by name.
SushiAI::Train::TrainerOptionsHow the loop behaves.
SushiAI::Train::TrainingGraphA traced, differentiated model, ready to lower.

