-
Notifications
You must be signed in to change notification settings - Fork 0
notes
github-actions[bot] edited this page Sep 15, 2026
·
2 revisions
- Dataset downloads run in an isolated worker process, so the dashboard stays responsive: it shows a progress overlay with a live byte counter and a Cancel button instead of appearing frozen.
- The Bernoulli encoder in
spikegen.rateis stochastic, so the reported spiking percentage and spike patterns vary run to run — expected. - Larger
num_stepsvalues (e.g., 100) produce longer, richer animations;subset/batch_sizetrade dataset coverage for encode speed. -
Interpreter limitations (Phase 1d). snnTorch's
Lapicqueuses a first-order Euler update while the reference interpreter uses the exact zero-order-hold form, andSynaptic's subtract reset carries a small residual; both residuals are reported in theValidationReportrather than hidden. Extracting NIR graphs from arbitrary external modules vianirtorchlanded in WS-F (spikeforge-targets extract; see below). -
Introspection limitations (Phase 2). Four behaviours are deliberate.
(1)
snn.Alphais simulation/introspection-only: the installednirhas no alpha-function primitive that matches its three-state dynamics, so exporting analphastage raises the typedUnsupportedStageErrorinstead of inventing a lossy mapping. (2)torch.compileis opt-in because dynamo retraces on the shape-changing neuron state, so eager stays the default andProductionResult.statusmakes a genuine compiled run distinguishable from a transparent eager fallback. (3) The decoding inverses are approximate: latency is quantised to integer steps and saturates at the threshold ceiling for sub-threshold pixels, delta integrates to a lower bound that is exact only when each step rises by exactly the threshold, and rate is a noisy Bernoulli estimate;randomcarries no image signal at all. (4) Upstream'sLSOsurrogate is listed because snnTorch exposes it, but applying it raisesTypeErrorfrom upstream's wrapper. -
Dashboard limitations (Phase 3). (1) The hardware-target picker is
delivered by the
TargetsPanel/BackendRunPanel(Phase 5/WS-B). (2) Event datasets landed in Phase 4 (see the event datasets section above), so that walkthrough step now describes the live path. (3) The trajectory viewer, metrics, and histogram are gated to educational mode and show an explanatory empty state in production. -
Event limitations (Phase 4). (1) Training on event datasets is now
wired in WS-F (
EventTrainingEngine), but it still needs theeventsextra; withouttonicthe engine raises the typedEventsExtraMissingError. (2) Spatial topologies such asconv_netexpect 28x28-like single-channel geometry; a polar or non-square sensor should use a feature-input topology or declare an explicitinput_size(see the non-square geometry fold-in). (3) The offline synthetic path is labelled as such inorigin/descriptionand is never passed off as a recording. (4) Event datasets need the optionaleventsextra; without it they show as unavailable and the loader raisesEventsExtraMissingError. -
Target limitations (Phase 5, updated in WS-B/WS-F and PT-W8). (1) The
in-process
referencetarget is always available.norseandlava_loihi2have real backends and compile and run when their extras (norse,lava) are installed; without them they reportavailable: falseandrunreturnsstatus: "unavailable".speck(sinabs),xylo(rockpool), andspinnaker2now have isolated probes and backends too, so the test-deploy matrix runs them when their SDK is present and otherwise reportsavailable: falsewith a named reason; every run is anestimate, never a device measurement. (2) Substitutions are now executed by the rewrite executor with a report and a post-rewrite drift check (WS-B), so a declared substitute is applied, not merely stated. (3) No on-device runtime is wired:lava_loihi2requires the Lava SDK and no physical device is present, so nothing measures real hardware timing. (4) Graph exchange round-trips through this project's version-stamped JSON envelope over NIR's own node vocabulary, andnirtorchextraction of third-party PyTorch modules now ships (WS-F) with a typed error naming any unmappable node. -
Production limitations (Phase 6). (1) A manifest makes a run
reproducible, not bit-exact: CUDA kernels, thread scheduling/summation
order, and changed dataset files can still move results, and the manifest
says so in its
reproducibleblock. (2) The registry and its search/diff are local and file-based (MODEL_DIR); optional TensorBoard/W&B sinks (WS-E) forward a run after the local manifest is written, and an absent backend is a recorded reason, not an error. (3) Benchmark records are compared per(topology, mode)onms/step,steps/s, and peak memory; wall-time noise on a shared CPU runner can move a metric a few percent, so CI regressions use a threshold (default 10 percent) rather than bit-exact equality, and--comparetakes a run id, not a label. (4) The metrics registry is per-process and in-memory by default; WS-E adds opt-in JSON snapshot persistence (SPIKEFORGE_METRICS_PERSIST) but does not aggregate across workers. (5) Structured logging is opt-in viaSPIKEFORGE_LOG_JSON/SPIKEFORGE_LOG_LEVEL; nothing callsconfigure_logging()automatically, so the default log output is unchanged. (6) AMP, gradient checkpointing, truncated BPTT, and multi-GPU are all opt-in and default-off, so a default run is numerically identical; multi-GPU needs more than one visible CUDA device and otherwise reports an honest "unavailable" status. (7) The Dockercpu/gpuprofiles are alternate services; only one can own port 8877 at a time. -
Professionalization limitations (WS-A…WS-F). These are the honest
boundaries of the shipped program. The six that shape real use — no measured
energy, simulation-only
sequence_attn, simulated-only quantization, the single-step ONNX bridge, fetch-on-demand hub weights, and SDK-gated hardware backends — are each reasoned about in Implications and boundaries, with why they exist and what they imply. One further boundary is not about any of those six: determinism narrows, not closes, the bit-exactness gap — hardware scheduling and some CUDA kernels remain outside the process's control.
- 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