tancheng / CGRA-Flow

CGRA-Flow is an integrated framework for CGRA compilation, exploration, synthesis, and development.
113 stars 15 forks source link
cgra cgra-compiler cgra-framework cgra-generator cgra-tool open-source-hardware spatial-accelerator
========================================================

   ________________  ___         ________             
  / ____/ ____/ __ \/   |       / ____/ /___ _      __
 / /   / / __/ /_/ / /| |______/ /_  / / __ \ | /| / /
/ /___/ /_/ / _, _/ ___ /_____/ __/ / / /_/ / |/ |/ / 
\____/\____/_/ |_/_/  |_|    /_/   /_/\____/|__/|__/  

========================================================

Github Action License

CGRA-Flow is an integrated framework for CGRA compilation, exploration, synthesis, and development.

User Interface Snapshot/Demo

20241028

A demo at repl.it (https://repl.it/@ChengTan/cgra-flow) shows some features of CGRA-Flow (the verilog generation and evaluation are not available due to repl.it's limited support of python environment). To explore all the features, please setup CGRA-Flow locally or leverage the docker image.

Docker

The docker image is available here.

Recommended machine configuration

  • CPU: >= 6 cores
  • Memory: 25~30G
2x2 tiles run time: clk_period (ps) frequency (Hz) time (hour)
1000 1G ~40
10,000 100M ~7
100,000 10M ~7

As CGRA-Flow requires GUI, a script is provided for setting up the display:

 docker pull cgra/cgra-flow:20241028

 # For Mac users:
 sh ./run_mac_docker.sh

 # Windows Docker customtkinter style UI (Please setup GUI (X-11) first)
 # In WSL, execute below script, it will enter container and config x11 DISPLAY automatically
 sh ./run_windows_docker.sh

 # Don't forget to activate the python virtual environment once you are in the container:
 source /WORK_REPO/venv/bin/activate

Otherwise, if you don't need the GUI, development can be performed in the container with the environment well set up:

 docker pull cgra/cgra-flow:20241028
 docker run -it cgra/cgra-flow:20241028
 source /WORK_REPO/venv/bin/activate

Execution

 # Startup theme mode selector UI
 python launch.py

Installation

CGRA-Flow requires Python3.7.

Refer to the build scripts or look into specific repo for the manual installation if you don't want to use docker.

Citation

@inproceedings{tan2020opencgra,
  title={OpenCGRA: An open-source unified framework for modeling, testing, and evaluating CGRAs},
  author={Tan, Cheng and Xie, Chenhao and Li, Ang and Barker, Kevin J and Tumeo, Antonino},
  booktitle={2020 IEEE 38th International Conference on Computer Design (ICCD)},
  pages={381--388},
  year={2020},
  organization={IEEE}
}

License

CGRA-Flow is offered under the terms of the Open Source Initiative BSD 3-Clause License. More information about this license can be found here:

OpenAI GPT (coming soon)

Arch Wizard.