How fangwei123456/spikingjelly works
SpikingJelly is a PyTorch-native framework for modeling, training, and deploying spiking neural networks. A typical user builds a network from neuron, layer, and surrogate-gradient components, supplies event-based data, and trains or converts the model; analysis and visualization support inspection. The repository also provides accelerated kernels, memory and distributed execution, precision controls, pretrained model architectures, and hardware/framework exchange. Relationships below follow the README and the shown source references; unsampled subsystem internals are represented at their exact directory paths, without assuming unshown call chains.
Main entry points: neuron Neuron Modules · datasets Event Datasets · base.py Stateful Runtime · surrogate.py Surrogate Gradients
Components 20
SNN Modeling
- Neuron Modules
spikingjelly/activation_based/neuron - Stateful Runtime
spikingjelly/activation_based/base.py - Surrogate Gradients
spikingjelly/activation_based/surrogate.py - SNN Layers
spikingjelly/activation_based/layer - Predefined Models
spikingjelly/activation_based/model
Training Workflows
- ANN Conversion
spikingjelly/activation_based/ann2snn - Functional Utilities
spikingjelly/activation_based/functional
Performance and Scale
- CUDA Backend
spikingjelly/activation_based/cuda_kernel - Triton Backend
spikingjelly/activation_based/triton_kernel - Memory Optimization
spikingjelly/activation_based/memopt - Distributed Execution
spikingjelly/activation_based/distributed - Precision Control
spikingjelly/activation_based/precision
Data and Analysis
- Event Datasets
spikingjelly/datasets - Spike Encoding
spikingjelly/activation_based/encoding.py - Visualization
spikingjelly/visualizing - Cost Analysis
spikingjelly/activation_based/op_counter
Exchange and Deployment
- NIR Exchange
spikingjelly/activation_based/nir_exchange - Lava Exchange
spikingjelly/activation_based/lava_exchange.py - Lynxi Exchange
spikingjelly/activation_based/lynxi_exchange.py
Other components
- SNN Engineer
Connections 20
- SNN Engineer → Neuron Modules: assembles
README.md - SNN Engineer → SNN Layers: assembles
README.md - SNN Engineer → Surrogate Gradients: selects gradients
README.md - Neuron Modules → Stateful Runtime: uses state base
spikingjelly/activation_based/neuron/integrate_and_fire.py - SNN Engineer → Event Datasets: loads events
README.md - Event Datasets → SNN Engineer: provides samples
spikingjelly/datasets/base.py - SNN Engineer → ANN Conversion: converts ANN
README.md - SNN Engineer → Functional Utilities: runs training utilities
README.md - SNN Engineer → Predefined Models: chooses architecture
README.md - SNN Engineer → Spike Encoding: encodes inputs
- SNN Engineer → Visualization: inspects activity
- SNN Engineer → Cost Analysis: profiles cost
README.md - Neuron Modules → CUDA Backend: accelerates execution
README.md - Neuron Modules → Triton Backend: accelerates execution
README.md - SNN Engineer → Memory Optimization: reduces memory
README.md - SNN Engineer → Distributed Execution: scales execution
README.md - SNN Engineer → Precision Control: sets precision policy
README.md - SNN Engineer → NIR Exchange: exports model
README.md - SNN Engineer → Lava Exchange: exports model
README.md - SNN Engineer → Lynxi Exchange: deploys model
README.md