Data Flow Graph Visualizer image

Data Flow Graph Visualizer

Project Overview

Simulate memory interactions and observe the execution results of a data flow graph for a given C++ kernel.


Why I built this

I was developing a compiler for a graph based hardware accelerator ASIC and had no way to validate the compiler outputs. This tool verifies the dataflow graphs generated by my LLVM compiler by showing what memory operations like load and store are doing as well as general execution results at each node in the graph.

Example Input

Example Visualizer Window

How I Built it

I used Python and Tkinter to make the GUI. The nodes in my graph are represented as classes that get stored by my GUI and tracked with a global memory buffer inside the program. The coolest thing in my opinion is the memory virtualizer that shows how loads and stores interact with an existing memory. I also like the logging feature that shows the results of each node at each cycle.

Repo link