Skip to content

Instantly share code, notes, and snippets.

@luca-patrignani
Last active August 24, 2024 10:27
Show Gist options
  • Select an option

  • Save luca-patrignani/cd90b28914a118d3d65c2355511555be to your computer and use it in GitHub Desktop.

Select an option

Save luca-patrignani/cd90b28914a118d3d65c2355511555be to your computer and use it in GitHub Desktop.
Work Product Submission

Work Product Submission GSoC 2024

by Luca Patrignani luca0patrignani@gmail.com

Introduction

The DaCe framework uses the Stateful DataFlow multiGraph (SDFG) data-centric intermediate representation. This graph maps to a variety of high-performance architectues and performance engineers can manipulate this graph for achieving state-of-the-art representations. When dealing with large projects with hundreds of thousands lines of codes the state graph can become extremely unreadable due multiple nested cycles, function’s calls, and conditional branching: it becomes nearly impossible to understand smaller parts of the graph and it also makes relating it to the original source code very hard.

To mitigate this problem the concept of ControlFlowRegion was introduced. A ControlFlowRegion is a region of the SDFG which represents a control flow construct just like a traditional programming language. An example can be the LoopRegion which represents the classic C-like for loop for ( init-clause ; cond-expression ; iteration-expression ).

Project goals

  • Implement all the other control flow constructs like if … elif … else
  • Implement regions for function calls and with statements
  • Implement user defined regions
  • Add support for all these new regions in the DaCe VSCode extension

Code

Add debug informations to LoopRegion (Open)

spcl/dace#1587

Conditional region (Open)

spcl/dace#1617

User defined region and function region (Merged)

spcl/dace#1623

Display conditional region (Open)

spcl/dace-webclient#154

Display user defined region and function call region (Open)

spcl/dace-webclient#158

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment