fangwei123456/spikingjelly
SpikingJelly is an open-source deep learning framework for Spiking Neural Network (SNN) based on PyTorch.
What it solves
SpikingJelly is a PyTorch-native framework designed to simplify the development, training, and deployment of Spiking Neural Networks (SNNs). It provides the necessary infrastructure to handle large-scale SNNs, which are biologically inspired networks that process information using discrete spikes rather than continuous values, making them potentially more energy-efficient.
How it works
Built on top of PyTorch, the framework allows users to define SNNs using a familiar API. It supports multiple acceleration backends—torch, cupy, and triton—to optimize performance. The system includes tools for ANN-to-SNN conversion, surrogate gradients for training, and spike compression (memopt) for memory-efficient training of large models.
Who it’s for
It is primarily aimed at researchers and developers working on neuromorphic computing, spike-based intelligence, and energy-efficient AI models.
Highlights
- PyTorch-native: Uses a beginner-friendly API that integrates seamlessly with the PyTorch ecosystem.
- High Performance: Supports
cupyandtritonbackends for faster execution and is compatible withtorch.compile. - Neuromorphic Datasets: Includes built-in support for a wide variety of event-based datasets like N-MNIST and DVS-Lip.
- Hardware Deployment: Provides exchange interfaces for neuromorphic hardware and frameworks such as NIR, Lava, and Lynxi.
- Large-Scale Support: Features distributed training, precision control (e.g.,
fp8), and spiking transformer components.