Skip to content

tancheng/CGRA-Flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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


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

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:20251214_demo

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

Building Docker Image from Dockerfile

If you prefer to build the Docker image locally:

 # Build the Docker image
 docker build -t cgra-flow:latest .

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.

Contribution Guide

👋 Welcome Contributors!

To contribute to this project, you can clone the Github repository and mount it as a volume in the Docker container. This allow you to edit code on your host machine while testing changes inside the container environment. Update the Docker run command to mount your local repository(take run_windows_docker.sh as an example):

IMAGE=cgra/cgra-flow:20251112
CONTAINER=mycgraflow
XSOCK=/tmp/.X11-unix
# for developer: mount the upstream repo to the container.
# Please update the path to the actual path on your machine.
MOUNT_PATH=/path/to/your/cloned/CGRA-Flow:/path/to/container
sudo docker run \
    -it \
    --name=$CONTAINER \
    -v $XSOCK:$XSOCK:rw \
    -v $MOUNT_PATH \
    -e DISPLAY=$DISPLAY \
    $IMAGE \
    /bin/bash

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.

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8