IR used by Adaptyst is changing to MLIR

For illustrative purposes only. We’re not affiliated with MLIR.

Since the release of the modular design of Adaptyst, the tool has used stateful multiflow datagraphs (SDFGs) as its intermediate representation (IR) in the performance analysis flow. This is achieved through DaCe and the main rationale can be split into two categories: “Why SDFGs?” and “Why DaCe?”. For “Why SDFGs?”, the reason is the potential of SDFGs for modelling various computing workflows given their (i.e. SDFGs’) data-centrism, parallelism, and support for symbolic expressions. For “Why DaCe?”, the reason is DaCe being the actively-maintained reference implementation of SDFGs.

However, as the community around DaCe is still in the evolutionary phase and its API is written in Python (while Adaptyst is written mostly in C++), we have made a decision to change the intermediate representation used by Adaptyst to MLIR: it has similar potential for modelling computing workflows, its API is written in C++ and thus easier to integrate (and to use by module developers), and it is more future-proof because of i.a. the community around it being more mature.

This doesn’t mean that we’re giving up SDFGs completely: they still have promising characteristics that MLIR may not have, so we may explore them in the future, e.g. through the SDFG dialect in MLIR.

We will let you know once the IR change is done in the Adaptyst code and the modules made by us. When this happens, the setup facilitation mentioned in one of our last posts will become available as well (except for the CVMFS release: because this involves also factors outside of our control, we can’t make guarantees here, but we’ll do our best).

Until then, if you develop modules for Adaptyst, please refrain from using any API referencing SDFGs or any SDFG-related variables provided by the tool. Thank you for your understanding 🙂