Skip to content

[TECS'23] A project on the co-design of Accelerators and CNNs.

Notifications You must be signed in to change notification settings

Yukiona1996/codebench

 
 

Repository files navigation

CODEBench: A Neural Architecture and Hardware Accelerator Co-Design Framework

Python Version Conda PyTorch Hits

This repository contains the tool CODEBench which can be used to generate and evaluate different CNN-accelerator pairs. It runs the BOSHCODE algorithm to obtain the best-performing pair for the given constraints and the selected design space.

Table of Contents

Environment setup

Clone this repository

git clone https://github.com/jha-lab/codebench.git
cd codebench

Setup python environment

  • PIP
virtualenv cnnbench
source cnnbench/bin/activate
pip install -r cnnbench/requirements.txt
  • CONDA
conda env create -f cnnbench/environment.yaml

Run hardware-software co-design

cd boshcode
python run_boshcode.py

All training scripts use bash and have been implemented using SLURM. This will have to be setup before running the experiments.

Other flags can be used to control the training procedure (check using python run_boshcode.py --help). This script uses the SLURM scheduler over mutiple compute nodes in a cluster (each cluster assumed to have 1 GPU, this can be changed in the script job_scripts/job_worker.sh). SLURM can also be used in scenarios where distributed nodes are not available.

Developer

Shikhar Tuli. For any questions, comments or suggestions, please reach me at [email protected].

Cite this work

Cite our work using the following bitex entry:

@article{tuli2022codebench, 
  author = {Tuli, Shikhar and Li, Chia-Hao and Sharma, Ritvik and Jha, Niraj K.}, 
   title = {{CODEBench}: A Neural Architecture and Hardware Accelerator Co-Design Framework}, 
   year = {2022}, publisher = {Association for Computing Machinery}, 
   address = {New York, NY, USA}, 
   issn = {1539-9087}, 
   url = {https://doi.org/10.1145/3575798}, 
   doi = {10.1145/3575798}, 
   note = {Just Accepted}, 
   journal = {ACM Trans. Embed. Comput. Syst.}, 
   month = {dec}}

License

BSD-3-Clause. Copyright (c) 2022, Shikhar Tuli and Jha Lab. All rights reserved.

See License file for more details.

About

[TECS'23] A project on the co-design of Accelerators and CNNs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Verilog 86.9%
  • Roff 9.0%
  • C++ 2.0%
  • Tcl 1.6%
  • SystemVerilog 0.3%
  • Python 0.2%