Sideways entry into compilation: Execution of externally modified DaphneIR code #7
Labels
AMLS summer 2022
Student project for the Architecture of Machine Learning Systems lecture at TU Graz (summer 2022).
AMLS summer 2024
Student project for the Architecture of ML Systems lecture at TU Berlin (summer 2024).
student project
Suitable for a bachelor/master student's programming project.
In GitLab by @pdamme on Mar 15, 2021, 22:07
Typically, a DAPHNE user would implement an integrated data analysis pipeline using the domain-specific language DaphneDSL. The DAPHNE system parses a DaphneDSL script into an internal representation, the so-called DaphneIR, which is based on MLIR/LLVM. To give researchers and practitioners a chance to fine-tune the internal representation manually (e.g., for what-if analyses on not-yet-existing compiler optimizations), we want to support reading DaphneIR files as an alternative. Then we could print the IR at any level (see #6), modify it externally (e.g., by hand to try out variants the compiler would not come up with), and load it again to continue the processing from that point on, which could be very valuable for experiments.
Reading a text file containing DaphneIR should not be too complicated since MLIR comes with IR parsers. See, for instance, the
mlir-opt
tool included in MLIR (thirdparty/llvm-project/mlir/tools/mlir-opt
, or https://github.com/llvm/llvm-project/tree/main/mlir/tools/mlir-opt).The task is to extend the existing command-line API of the DAPHNE system to also accept DaphneIR files. The IR must be parsed and connected to the DAPHNE compilation chain, whereby the right entry point must be chosen carefully. Ideally, the compiler should handle it gracefully (or not change it at all) in the early passes, assuming that the compilation chain starts anew when invoking the system with a DaphneIR file. Implementation in C++.
The text was updated successfully, but these errors were encountered: