Skip to content

Latest commit

 

History

History
64 lines (51 loc) · 2.49 KB

README.md

File metadata and controls

64 lines (51 loc) · 2.49 KB

Performance profiling and optimisation of the xDSL compiler framework

A research project in partial requirement for a Computer Science MPhil at the University of Cambridge, supervised by Dr Tobias Grosser and co-supervised by Sasha Lopoukhine.

Provisional abstract

xDSL is a Python-native compiler framework, facilitating benefits such as modularity with LLVM MLIR whilst retaining simple scriptability. However, being implemented in Python comes with a performance trade-off for these benefits. We first leverage performance profiling techniques to identify bottlenecks in the xDSL project codebase, then investigate algorithmic, data structure, caching, system, and hardware-based optimisations to mitigate them. Finally, we assess the degree to which the Python's performance impact on compiler workloads can be reduced whilst retaining its benefits, strengthening the case for xDSL and its novel approach to compiler design.

Keywords: Compilation, LLVM, MLIR, profiling, optimisation, Python

Download

This is a meta-repository of the written and software deliverables for this project, and as such contains nested submodules. To clone a copy containing all nested submodules, consider running the following command:

git clone --recurse-submodules -j8 https://github.com/EdmundGoodman/masters-project

Directory structure

Written project deliverables are typeset in LaTeX, and both code and written content can be found in the submodule repositories listed below:

.
├── LICENSE
├── README.md
├── MEETING_NOTES.md
├── WORK_LOG.md
├── code
│   ├── update-bot
│   └── xdsl-bench
│       └── xdsl
├── installs
│   └── README.md 
├── proposal
├── report
├── xdsl-bench -> code/xdsl-bench
└── xdsl -> code/xdsl-bench/xdsl

Further information

See the departmental website for further information: