Details of the upcoming IR switch
As mentioned in the previous post, the intermediate representation (IR) used by Adaptyst is changing to MLIR. We can share more technical details about this now: the switch will be specifically done in two stages.
- The Adaptyst internals will be rewritten to no longer use SDFGs. The existing single-command-analysis mode will be moved from DaCe to in-house without involving MLIR. At the same time, the module API will be updated so that modules are exposed to an abstract notion of IR first rather than any specific variant (SDFG, MLIR etc.) right away. This stage will become available within the next few days (including the modules made by us). Then, module developers can safely resume working on parts touching a computing workflow (see also stage 2 below).
- The workflow-to-MLIR compilation flow will be implemented, starting with a workflow consisting of just running a single command (i.e. the single-command-analysis mode). Already-implemented modules utilising changes from stage 1 will continue working as usual: the support of the non-MLIR version of the single-command-analysis mode will be maintained and its activation will be automatic and transparent to users. Later on, as Adaptyst begins to support more sophisticated computing workflows, the functionality of the compiler will grow.
We hope that this makes the situation clear, especially for module developers. We will publish another blog post once the first stage is live: stay tuned!