Skip to content

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

Notifications You must be signed in to change notification settings

yyan7223/CGRA-Flow

 
 

Repository files navigation

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

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

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

Github Action License

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

User Interface Snapshot/Demo

Capture

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.

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

 docker pull cgra/cgra-flow:demo

 # For Mac users like me:
 sh ./run_mac_docker.sh

 # Otherwise, if this is your first time establishing a container for CGRA-Flow:
 # sh ./run_docker.sh
 # Else, use the following command to reopen the same container:
 # sh ./start_docker.sh
 # Or try to setup GUI (X-11) by yourself.

 # Don't forget to activate the python virtual environment once you are in the container:
 source /WORK_REPO/venv/bin/activate
# 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_linux_docker.sh

# In container
root@1627139489b9 WORK_REPO# source venv/bin/activate
(venv) root@1627139489b9 WORK_REPO# cd /WORK_REPO/CGRA-Flow

# Startup theme mode selector UI
(venv) root@1627139489b9 CGRA-Flow# python launch.py
# Three themes are available: dark, light, and classic

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:demo
 docker run -it cgra/cgra-flow:demo
 source /WORK_REPO/venv/bin/activate

Execution

 mkdir build && cd build
 python ../mode_dark_light.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}
}

Publications leveraging (parts of) CGRA-Flow toolchain

  • "MESA: Microarchitecture Extensions for Spatial Architecture Generation." ISCA'23.
  • "An Architecture Interface and Offload Model for Low-Overhead, Near-Data, Distributed Accelerators." MICRO'22.
  • "MATCHA: A Fast and Energy-Efficient Accelerator for Fully Homomorphic Encryption over the Torus." DAC'22.
  • "DRIPS: Dynamic Rebalancing of Pipelined Streaming Applications on CGRAs." HPCA'22.
  • "ARENA: Asynchronous Reconfigurable Accelerator Ring to Enable Data-Centric Parallel Computing." TPDS'21.
  • "Ultra-Elastic CGRAs for Irregular Loop Specialization." HPCA'21.

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.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.5%
  • Other 1.5%