This repository is modified from mit-emze/raella (github.com). The original repository contains the Timeloop/Accelergy models for ISAAC and RAELLA Compute-In-Memory accelerators.
We apply an ISAAC-like tile design to form a hybrid RRAM and SRAM CIM accelerator architecture, with the following features:
- Hybrid Tiles for different Transformer Operations
- NoC and NoP design for better scalability
- Non-linear Unit
- Inter-Op Optimization
- Mix-precision Quantization
Only x86 CPUs are currently supported. To start the container, run the following commands:
git clone https://github.com/mit-emze/raella.git
cd raella
cp docker-compose.yaml.example docker-compose.yaml
# FOLLOW THE INSTRUCTIONS IN THE docker-compose.yaml FILE
docker-compose up
Click on the link that appears in the terminal to open Jupyter, navigate to the artifact.ipynb notebook, and follow through the instructions there.
Pull the docker image manually and try again:
docker pull timeloopaccelergy/timeloop-accelergy-pytorch:raella-pim-amd64
- Support Hybrid features
- Run Bert models (original repository doesn't support add attention layers, so only QKV projections and FFNs)
Due Feb 29:
- Add the conversion functions to generate problems from NNs, and support ViT (add attention layers)
- Add Nonlinear Module into Timeloop
- SRAM CIM latency check
Due Mar 1:
- Integrate I-ViT
Due Mar 8:
- Add NoC
- Dependence-based partition & SRAM reuse
- Inter-layer Optimization