Welcome to the Lightning, the first reconfigurable photonic-electronic neural network inference system integrated with the a 100 Gbps smartNIC.
We propose Lightning, the first reconfigurable photonic-electronic smartNIC to serve real-time deep neural network inference requests. Lightning uses a fast datapath to feed traffic from the NIC into the photonic domain without creating digital packet processing and data movement bottlenecks. To do so, Lightning leverages a novel reconfigurable count-action abstraction that keeps track of the required computation operations of each inference packet. Our count-action abstraction decouples the compute control plane from the data plane by counting the number of operations in each task and triggers the execution of the next task(s) without interrupting the dataflow. To the best of our knowledge, our prototype is the highest-frequency photonic computing system, capable of serving real-time inference queries at 4.055 GHz end-to-end.
For a full technical description on Lightning, please read our ACM SIGCOMM 2023 paper and demo:
Z. Zhong, M. Yang, J. Lang, C. Williams, L. Kronman, A. Sludds, H. Esfahanizadeh, D. Englund, M. Ghobadi, "Lightning: A Reconfigurable Photonic-Electronic SmartNIC for Fast and Energy-Efficient Inference," ACM SIGCOMM, 2023. https://doi.org/10.1145/3603269.3604821
Z. Zhong, M. Yang, J. Lang, D. Englund, M. Ghobadi, "Demo: First Demonstration of Real-Time Photonic-Electronic DNN Acceleration on SmartNICs," ACM SIGCOMM, 2023. https://doi.org/10.1145/3603269.3610842
For more details on Lightning, please visit our website: https://lightning.mit.edu
This is an active project, if you want to have a community discussion, please start a new discussion thread in the discussion tab, and we will get back to you as soon as possible.
For any questions, please contact Zhizhen Zhong at zhizhenz [at] mit.edu. We welcome all contributions and feedbacks.
This repo has submodules, please clone the repo using git recursive clone.
git clone --recursive
This part of artifact contains Lightning's RTL-based datapath design and implementation (Sections 4, 5, and 6 of the Lightning SIGCOMM paper). We also include an emulated photonic MAC core to build a cycle-accurate testbench using Verilator.
Source Files | Description |
---|---|
rtl/datapath/ |
This folder contains the code of Lightning's datapath modules (packet I/O, memory controller, count-action logic, etc.) |
rtl/emulate/ |
This folder contains the code of emulated photonic multiplier modules |
rtl/sram/ |
This folder contains the code of SRAM modules |
rtl/tb/ |
This folder contains the code of Verilator-based testbench modules |
rtl/utils/ |
This folder contains the code of customized AXI-related modules and third-party AXI libraries |
rtl/Makefile |
This folder contains the Makefile for running the Verilator-based testbench |
rtl/README.md |
This README file explains the dependencies and steps to run the RTL cycle-accurate testbench |
This part of artifact contains the FPGA firmware and library code to enable Lightning's Python API (Section 6 and Appendix G of the Lightning SIGCOMM paper).
Source Files | Description |
---|---|
api/firmware/ |
This folder contains the code of the FPGA firmwares to support the Python API |
api/lightning_lib/ |
This folder contains the code of Lightning Python API libraries |
This part of artifact contains Lightning's photonic emulation (Section 7 of the Lightning SIGCOMM paper).
Source Files | Description |
---|---|
emulation/ |
This folder contains the code for running photonic emulation on large deep neural networks |
emulation/README.md |
This file contains the dependencies and steps to run the emulation code |
This part of artifact contains Lightning's event-driven simulation study on seven real-world large DNN models (Section 9 of the Lightning SIGCOMM paper).
Source Files | Description |
---|---|
simulation/ |
This folder contains the code for running event-driven simulations on DNN inference queries |
simulation/README.md |
This file contains the dependencies and steps to run the simulations code |
This part of artifact contains manufacture files for the Lightning developer kit (Appendix G of the Lightning SIGCOMM paper).
Source Files | Description |
---|---|
kit/laser_cutting/ |
This folder contains the design files for manufactoring the package of the developer kit using laser-cutting machines |
kit/3D_printing/ |
This folder contains the design files for manufactoring the device support components using 3D printers |
kit/lightning_devkit_v2.jpg |
This file contains the shopping list to assembly the open-source developer kit |
This part of artifact contains the data to reproduce our results.
Source Files | Description |
---|---|
data/saved_dataset/ |
This folder stores the datasets for corresponding DNN models |
data/saved_models/ |
This folder stores the considered DNN models |
This part of artifact contains automatic github actions like the DNN accuracy checker through our Verilator-based testbench.
Source Files | Description |
---|---|
.github/workflows/ |
This folder stores the automatic workflows like DNN accuracy checker |
- Xilinx Vivado 2022.2
- Xilinx PetaLinux 2022.2
- Ubuntu 20.04.6 LTS (Focal Fossa)
- Verilator 4.038 2020-07-11 rev v4.036-114-g0cd4a57ad
- Python 3.10.8
- Detailed dependencies is described in the README.md of each folder
Lightning is MIT-licensed.