Official implementation of ELSA (ISCA 2026)
This repository contains the artifact submission for the paper ELSA accepted at ISCA 2026 (Paper ID: 124). The artifact supports reproducing the results presented in the paper, including evaluations of Spiking Neural Networks (SNNs) at each time-step and performance assessment of the ELSA accelerator.
ELSA: An ELastic SNN Inference Architecture for Efficient Neuromorphic Computing
Kang You, Chen Nie, Lee Jun Yan, Ziling Wei, Cheng Zou, Zekai Xu, Yu Feng, Honglan Jiang, Zhezhi He
Proceedings of the 53rd Annual International Symposium on Computer Architecture (ISCA), 2026
Spiking neural networks (SNNs) exploit event-driven and addition-only computation to substantially improve efficiency for intelligent computation. A key temporal property of SNNs, elastic inference, allows outputs to emerge progressively, enabling responses to salient inputs much earlier than full evaluation. However, existing SNN-specific accelerators cannot capitalize on this property. Layer-by-layer designs emit outputs only after all layers are complete, while time-step-by-time-step designs rely on coarse-grained, layer-wise pipelines that require synchronizing all spines/tokens within a layer. This barrier prevents results from being forwarded immediately, delaying the earliest possible response and forfeiting the benefits of elastic inference.
To address these challenges, we propose ELSA, a near-SRAM dataflow architecture that realizes true elastic inference through a fine-grained spine/token-wise pipeline and hardware optimizations tailored to SNNs.
ELSA forwards each spine/token immediately upon production, forming a continuous streaming pipeline that substantially reduces the latency to the first response.
To enhance this lightweight execution, ELSA introduces a bundled address event representation protocol to lower communication traffic of network-on-chip (NoC), and leverages mini-batch spiking Gustavson-product to cut memory access and exploit inherent sparsity.
Combined with mapping and scheduling optimizations, ELSA achieves efficient, event-driven computation without compromising accuracy.
Experiments show that SNNs can outperform quantized artificial neural networks (QANNs) while maintaining on-par accuracy.
For a 4-bit ResNet-50, ELSA achieves
This document provides step-by-step instructions for reviewers to reproduce the main results using the provided Docker image.
Please download the Docker image archive from the following link:
SwissTransfer Download Link
https://www.swisstransfer.com/d/78528f19-a5a5-4b18-bb7a-d8078ba8724e
- Filename:
ELSA.tar - Available until: May 21
- CUDA Version: 12.1
To ensure the downloaded file is complete and uncorrupted, please verify its MD5 checksum.
117e4ce424c954c4fced931a8f256130md5sum ELSA.tarPlease confirm that the output matches the expected checksum above.
After uploading ELSA.tar to your server, run the following commands.
docker load -i ELSA.tardocker run -it --gpus all --ipc=host --name ELSA elsa_image:1 /bin/bashInside the container, activate the prepared environment:
conda activate ELSARun:
cd ~/ELSA/ELSA_Algorithm
bash run_all.sh| Model | Dataset | ANN Accuracy | SNN Accuracy | Elastic SNN Accuracy | Latency Reduction |
|---|---|---|---|---|---|
| VGG16 | CIFAR-10 | 91.57 | 91.48 | N/A | N/A |
| VGG16 | CIFAR-100 | 73.94 | 73.85 | N/A | N/A |
| ResNet18 | ImageNet | 67.611 | 67.537 | 67.27 (confidence threshold=0.3) | 14.76% |
| ResNet34 | ImageNet | 71.512 | 71.558 | 68.36 (confidence threshold=0.3) | 23.31% |
| ResNet50 | ImageNet | 74.842 | 74.776 | 73.40 (confidence threshold=0.3) | 19.90% |
| ViT | ImageNet | 78.398 | 78.66 | 78.39 (confidence threshold=0.8) | 11.50% |
cd ~/ELSA/ELSA_Simluator
python3 run_figure16.py --cache-dir tracer_files --skip-sim
python3 run_figure17.py --cache-dir tracer_files --skip-simThis project requires Anaconda 3 (version 24.5.0). You can install it using the following commands:
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
bash Anaconda3-2023.03-Linux-x86_64.shFollow the on-screen instructions to complete the installation.
Download the ELSA Conda environment from the provided link ELSA.tar.gz and extract it:
mkdir -p ~/anaconda3/envs/ELSA
tar -xzf ELSA.tar.gz -C ~/anaconda3/envs/ELSA
source ~/anaconda3/envs/ELSA/bin/activateThis will activate the ELSA environment containing all dependencies required for running the artifact.
3.1 Download the model checkpoint for SNN accuracy and ELSA performance evaluation with url:
3.2 Unzip the Checkpoints.zip and get two directories:
Algorithm_Evaluator
Hardware_Simulator
3.3 Put the files in Algorithm_Evaluator to ~/ELSA_Algorithm/model_pool.
3.4 Put the files in Hardware_Simulator to ~/ELSA_Simluator/model_pool, and then run ~/ELSA_Simluator/model_pool/extract_all.sh.
After these steps, we have prepared the checkpoints for ELSA evaluation.
This module evaluates the accuracy of SNNs at each time-step, as well as the accuracy and latency of elastic inference.
This project evaluates the accuracy of the SNN models used in ELSA, as well as the latency of elastic inference.
We evaluate multiple SNN models on ImageNet, CIFAR-10, and CIFAR-100.
The corresponding checkpoints are provided at the following link:
Checkpoint Download Link: https://zenodo.org/records/19446695
| Model | Dataset | ANN Accuracy | SNN Accuracy | Elastic SNN Accuracy | Latency Reduction |
|---|---|---|---|---|---|
| VGG16 | CIFAR-10 | 91.57 | 91.48 | N/A | N/A |
| VGG16 | CIFAR-100 | 73.94 | 73.85 | N/A | N/A |
| ResNet18 | ImageNet | 67.611 | 67.537 | 67.27 (confidence threshold=0.3) | 14.76% |
| ResNet34 | ImageNet | 71.512 | 71.558 | 68.36 (confidence threshold=0.3) | 23.31% |
| ResNet50 | ImageNet | 74.842 | 74.776 | 73.40 (confidence threshold=0.3) | 19.90% |
| ViT | ImageNet | 78.398 | 78.66 | 78.39 (confidence threshold=0.8) | 11.50% |
This part mainly evaluates the accuracy of the VGG16 model on CIFAR-10 and CIFAR-100.
Go to the directory ~/ELSA_Algorithm/VGG and Run the following script:
bash run_snn_bn_vgg16_cifar10.shGo to the directory ~/ELSA_Algorithm/VGG and run the following script:
bash run_snn_bn_vgg16_cifar100.shThis part mainly evaluates the accuracy of ResNet18, ResNet34, and ResNet50 on ImageNet.
Go to the directory ~/ELSA_Algorithm/ResNet and run the following scripts:
bash run_snn_bn_resnet18.sh
bash run_snn_bn_resnet34.sh
bash run_snn_bn_resnet50.shGo to the directory ~/ELSA_Algorithm/ResNet and run the following scripts:
bash run_snn_bn_resnet18_elastic.sh
bash run_snn_bn_resnet34_elastic.sh
bash run_snn_bn_resnet50_elastic.sh- Vision Transformer
Go to the directory ~/ELSA_Algorithm/ViT and run the following script:
bash ./scripts/vit-small_SNN_16.shRun the following script:
bash ./scripts/vit-small_SNN_16_elastic.shThis module evaluates the performance of the ELSA accelerator, including energy consumption, latency, and area. It reproduces the results shown in Figure 16 and Figure 17 of the paper.
This project provides an end-to-end, cycle-level simulator for ELSA. The simulator supports two execution modes:
Noticing: You should finish the step-3 in experiment setup.
After downloading, the model path are specified in:
~\ELSA_Simulator\convolution\configs\elsa_models.yaml
You may also modify this path yourself if needed.
Run the following command:
python3 run_figure16.pyRun the following command:
python3 run_figure17.pyWe provide pre-generated tracer files in:
/home/kang_you/ELSA_Simulator/tracer_files
Users can use these tracer files to directly reproduce the results of Figure 16 and Figure 17 without running full simulations.
python3 run_figure16.py --cache-dir tracer_files --skip-simpython3 run_figure17.py --cache-dir tracer_files --skip-sim
