Repository navigation
implications and boundaries
github-actions[bot] edited this page Sep 15, 2026
·
3 revisions
This section states, for the six cross-cutting limitations that shape real use, what each one is, why it exists, and what it implies for you. The per-phase "Limitations" notes elsewhere in this README describe phase-specific behaviour; when a limit reaches beyond one phase it is reasoned about once, here, and those notes link back to it instead of restating the consequence.
- Why it exists. The tool runs on x86/GPU through PyTorch, which exposes no per-operation energy counters. A real energy number needs a physical neuromorphic device with on-board instrumentation (for example Loihi 2 energy probes) or an external power monitor, and none is attached.
- What it does instead. It counts operations deterministically (SOP/MAC/AC and timesteps) and multiplies them by per-target cost coefficients declared from published, cited literature.
-
Implication. Every number is an order-of-magnitude planning estimate:
it is sound for comparing models and targets and for sparse-vs-dense
trade-offs, but it is not valid for procurement, thermal, or power-budget
guarantees. Reports are labelled
estimate: truewith abasisand asource; a single integration point (account(..., measurement=...), or a target probe) lets a real device report a measurement and flip the label toestimate: falsewithout changing any other code.
-
Why it exists. The installed
nirstandard has no primitives for embedding, attention, layer-norm, or positional encoding, so a faithful export is impossible; inventing a lossy mapping would violate the project's honesty rule and could silently misbehave on hardware. -
What it does instead. It keeps those stage kinds available for
simulation and raises a typed
UnsupportedStageErrorthat names the first unexportable stage when export is attempted. -
Implication. You can build, train, and introspect
sequence_attnin the snnTorch simulator, but you cannot export it to NIR or deploy it:spikeforge-verify export/validate --topology sequence_attnexit non-zero with the named stage (for the shipped preset,embedding).sequence_mlpis the NIR-exportable sequence preset because it uses only mappable kinds.
-
What it does. Weights are restricted in the graph itself: the weight
tensors of affine/conv NIR nodes go onto the target's declared scheme (int8
symmetric per-tensor, uint8 asymmetric per-tensor) with a per-layer
before/after range report, and the original graph is never mutated.
Activations and membranes cannot be restricted in a NIR graph, so they are
quantized at execution time instead: the post-quantize drift check runs
the quantized graph through the reference interpreter under a hook that
snaps every computed node output, every carried membrane and synaptic
current, and the membrane each step records onto a symmetric fixed-point
grid, and the same schemes serve a bundle through
InferenceSession. The grid is fixed from a calibration (folded from the drift fixture itself unless a calibration dataset's ranges are supplied), and the report records per-tensor ranges, the error each grid introduced, and underdrift.includeswhich roundings the drift figure covers. -
Why the boundary remains. The snap happens after each node's floating
update, so the threshold comparison still sees a float membrane: the grid
is applied to the values a step produces, never to the arithmetic that
produced them. Integer accumulation, accumulator overflow, per-channel
schemes, and the vendor compiler's numerics are not modelled, and executing
a quantized graph still requires the target SDK. No shipped
target declares an activation scheme: the fixed-point widths a vendor's
neuron state actually uses are not verified in this repository, so
activation_quantizationisnoneon every target and a caller opts in explicitly (quantize(..., activation=...),spikeforge-verify deploy --activation-quantization <scheme>). -
Implication. The drift check can include the rounding a fixed-point
device applies to what flows through the network, not only to its weights,
so it no longer understates that part of deployment error — but it is still
an estimate of a target's precision impact, never a reproduction of the
device. A target whose declared weight scheme is
noneis a reported no-op, an unsupported scheme (for exampleint4) is reported unapplied rather than silently ignored, and an activation scheme requested without a spike fixture is reported unapplied because there is nothing to simulate on. -
What this page got wrong. From the day it was written, 2026-09-11 —
the same day
spikeforge-targetsbegan shipping the serving-sideActivationQuantizerand its calibration hook — until 2026-09-15 this section said there was "no activation or membrane quantization, no calibration dataset". Both existed on the serving path the whole time; what did not exist until 2026-09-15 was any of it in the target drift check, which stayed weight-only.
-
What it does. It exports the per-step module (the time loop stays in the
simulator) stamped with topology/spec/temporal metadata, and imports by
reading that metadata exactly or by mapping a limited op set (
Gemm/MatMul,Conv,Flatten,AveragePool,Dropout, and theIdentitypassthrough), rejecting every other op by name. The round-trip reportsidenticalonly on structural equality. -
Implication. An exported ONNX file is not a complete temporal SNN:
running it in another runtime will not reproduce multi-timestep dynamics.
Importing an arbitrary ONNX model works only for the mapped op set, and
neuron-internal ops (
Greater/Sub/Clip) are rejected by name — so a model exported with metadata round-trips through the bridge, while the op mapper only accepts the mapped set. Use it for interop and visualization of the feed-forward math and for structural round-trips, not for cross-runtime time execution.
-
What it does. The catalog holds three kinds of entry, and the
sourcefield says which.bundledrenders a NIR graph from a shipped topology preset — structure with freshly-initialised weights.referencecarries trained weights this project produced itself, shipped inside thespikeforge-hubwheel underweights/and verified against the checksum the catalog pins.url/hf_repopoint at bytes elsewhere, which download into a cache on first use. -
Implication. No third-party weights are redistributed here, for
licensing and size reasons, so for anything you add yourself you are
responsible for honouring its upstream license. The reference checkpoints are
the exception and are this project's own artifacts under its own
BSD-3-Clause terms — but the datasets they were trained on are not: each
entry records the training data's own
dataset_licenseanddataset_attributionseparately from thelicensecovering the weights, andNOTICE.mdreproduces them. An entry with no published checksum verifies asunverifiedrather than trusted, network access (plus thehubextra for Hugging Face) is required for remote artifacts not already cached, and integrity checking for those is best-effort. -
What this page got wrong. Until 2026-09-15 this section said the
repository "does not redistribute weights" without qualification. That
stopped being true when
spikeforge-hub0.2.0 began shipping six trained checkpoints;NOTICE.mdand the curation policy were updated then and this page was not.
- Why it exists. The hardware and simulator SDKs are heavyweight and platform-specific and are not installed.
-
Implication.
referenceis always available;norse,lava_loihi2,spinnaker2,speck, andxyloreportavailable: falsewith a named reason (seespikeforge-verify targets), and no deployment report claims a device result that was not produced —compile_runreturnsstatus: "unavailable"with a note naming the enabling extra. Note thatnorseis pip-installable and pure-PyTorch, so it is usable for CPU cross-checking even without any neuromorphic hardware.
- Home
- Architecture
- Backend Execution
- Benchmarks
- Dashboard
- Development
- Event Datasets
- Event Runtime And Energy
- Features
- Implications And Boundaries
- Interop Foldins
- Interpreter Spine
- Introspection
- Model Deployment
- Model Hub
- Notes
- Operational Maturity
- Production Workflows
- Project Layout
- Quickstart
- Requirements
- Sequence Primitives
- Streaming Timeseries
- Targets And Interop
- Usage
- Arch 0001 Adr Repo Topology
- Arch 0001 Core Boundary
- Arch 0001 Decision Metrics
- Arch 0001 Migration Plan
- Arch 0001 Packaging Versioning
- Arch 0001 Protocol Contract
- Arch 0001 Risk Register
- Arch 0001 Target Topology
- Backend Execution Plan
- Ecosystem Listings
- Ecosystem Roadmap
- Event Runtime Plan
- Hub Expansion Plan
- Plans
- Interop Foldins Plan
- Interpreter Spine Plan
- Memory System Research
- Model Hub Plan
- Operations Plan
- Production Toolkit Plan
- Production Use Cases
- Professional Roadmap
- Repo Topology Plan
- Sequence Primitives Plan
- Use Case Audio Keyword Spotting
- Use Case Biosignal Medical Monitoring
- Use Case Computational Neuroscience
- Use Case Edge Power Budgets
- Use Case Event Camera Vision
- Use Case Intrusion Anomaly Detection
- Use Case Low Latency Sensor Stream
- Use Case Rl Control Robotics
- Use Case Spiking Transformers
- Use Case Streaming Timeseries