======================================================== ________________ ___ ________ / ____/ ____/ __ \/ | / ____/ /___ _ __ / / / / __/ /_/ / /| |______/ /_ / / __ \ | /| / / / /___/ /_/ / _, _/ ___ /_____/ __/ / / /_/ / |/ |/ / \____/\____/_/ |_/_/ |_| /_/ /_/\____/|__/|__/ ========================================================
CGRA-Flow is an integrated framework for CGRA compilation, exploration, synthesis, and development.
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.
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
mkdir build && cd build
python ../mode_dark_light.py
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.
@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}
}
- "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.
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: