fangwei123456/spikingjelly

SpikingJelly is an open-source deep learning framework for Spiking Neural Network (SNN) based on PyTorch.

해결하는 문제

SpikingJelly은 PyTorch 네이티브 프레임워크로, 스파이킹 신경망(SNN)의 개발, 학습 및 배포를 간소화하도록 설계되었습니다. 연속값 대신 이산 스파이크를 사용해 정보를 처리하는 생물학적 영감을 받은 대규모 SNN을 다루기 위한 인프라를 제공하며, 에너지 효율성이 높을 가능성이 있습니다.

작동 원리

PyTorch 위에 구축된 이 프레임워크는 익숙한 API를 사용해 SNN을 정의할 수 있게 해줍니다. torch, cupy, triton 등 여러 가속 백엔드를 지원해 성능을 최적화합니다. 시스템에는 ANN‑to‑SNN 변환 도구, 학습용 대리 그래디언트, 대규모 모델의 메모리 효율적인 학습을 위한 스파이크 압축(memopt)이 포함되어 있습니다.

대상

주로 신경형태 컴퓨팅, 스파이크 기반 인텔리전스 및 에너지 효율적인 AI 모델을 연구·개발하는 연구자와 개발자를 위한 것입니다.

주요 특징

  • PyTorch-native: 초보자 친화적인 API를 사용하며 PyTorch 생태계와 원활히 통합됩니다.
  • High Performance: cupytriton 백엔드를 지원해 실행 속도를 높이며 torch.compile과도 호환됩니다.
  • Neuromorphic Datasets: N-MNIST, DVS‑Lip 등 다양한 이벤트 기반 데이터셋을 내장 지원합니다.
  • Hardware Deployment: NIR, Lava, Lynxi 등 프레임워크 및 신경형태 하드웨어와의 인터페이스 교환을 제공합니다.
  • Large-Scale Support: 분산 학습, 정밀도 제어(예: fp8) 및 스파이킹 트랜스포머 컴포넌트를 특징으로 합니다.