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 cupy and triton backends for faster execution and is compatible with torch.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.