My interests are compilation, programming language design, and effective performance programming. However, I define these areas broadly. As a result, I ask questions such as:
- How can compilers contribute to understanding climate change?
- Can machine learning help us to automate compiler design and performance programming?
- Can compilers revolutionize how hardware (ASICs, CPUs, ...) is designed?
- Can formal verification increase confidence in self-driving cars?
- How can performance programming become a smooth and interactive experience for developers?
In all my research activities, I aim to:
- address problems that have a clear impact on society,
- learn about and advocate for diversity of gender, race, ...,
- work collaboratively and share my research results as open-source,
- show that well-being in my research group has a positive impact on our scientific output.
I previously have been affiliated with:
Are you considering a PhD? I really enjoy working with students! There is nothing more rewarding for me as a scientist than seeing a student develop and execute their very personal research vision. I am excited to provide you guidance along this path.Explore my research vision, papers, and projects. If a topic catches your attention or you want to discuss your personal research idea, email me.
NEWS: I just moved to Edinburgh and am building a new group. Hence, I am planning to take several Ph.D. students and postdoctoral researchers over the next year. Get in touch!
Are you interested in an internship or a postdoctoral research position? I regularly host postdoctoral researchers and interns. Email me and we'll take it from there!
by Re-Connecting Developers and Compilers
My research uses strong theoretical reasoning to bring innovations to real-world compilation and programming language problems. My current objective is to rethink performance programming by re-connecting developers and compilers. Today, performance programming is no longer limited to the optimization of low-level code but often includes the use of domain-specific compilers, constraint programming libraries, complex performance models, and automatic (potentially learned) strategies to search for optimal code transformations.My primary objectives are:
- making compilation more modular, predictable, automatic, and trustworthy
- bringing open-source compiler innovation to an increasingly broad set of targets from GPUs over FPGAs to custom hardware, and
- breaking down the barriers between compilers and programmers by enabling their interaction via the programming language environment.
I dream of a future where performance programming is an intuitive play between the programmer and the compiler. A game that smoothly moves between manual as well as automatic techniques and works across software and hardware.I am particularly interested in the following areas:
- Static & dynamic analysis
- Abstract interpretation based program analysis
- Performance and cache models
- Test case generation
- Human-compiler interface
- Domain-specific compilation
- Deep learning
- Climate science
- High-performance computing
- Loop optimization & polyhedral compilation
- Compilation for accelerators: GPU, FPGA
- Open-source hardware
- Compiler support for RISC-V
- Software/hardware co-design
- SMT and constraint solving
- Mixed integer linear programming
- SAT solving
- Parametric counting using Barvinok’s algorithm
- Automatic theorem proving for compiler verification and constraint solving
- Effective compilation from functional languages to imperative code
- Artificial intelligence for compilers and constraint solvers
- Jakub Lichman, M.Sc. Thesis, 2020
→ Google (Internship with Albert Cohen and Oleksandre Zinenko)
- Theodoros Theodoridis, Researcher, 2019 - 2020
→ ETH Zurich (Ph.D. student with Zhendong Su)
- Arjun Pitchanathan, Intern (M.Sc.), 2019 - 2020
→ University of Edinburgh (Ph.D. with me)
- Jean-Michel Gorius, Intern (M.Sc.), 2019
→ University of Murcia (Internship with Alexandra Jimborean)
- Mathieu Fehr, Intern (M.Sc.), 2019
→ MIT CSAIL (Internship with Adam Chlipala)
- Anastiasiia Ruzhanskaia, Intern (M.Sc.), 2018
→ ETH Zurich (Ph.D. student with Timothy Roscoe)
New! Domain-Specific Multi-Level IR Rewriting for GPUTobias Gysi, Christoph Müller, Oleksandr Zinenko, Stephan Herhut, Eddie Davis, Tobias Wicky, Oliver Fuhrer, Torsten Hoefler, Tobias Grosser, 2020arXiv
New! LLHD: A Multi-Level Intermediate Representation for Hardware Description LanguagesFabian Schueki, Andreas Kurth, Tobias Grosser, Luca Benini, 2020Paper Slides Video arXiv
New! Mixed-data-model heterogeneous compilation and OpenMP offloadingAndreas Kurth, Koen Wolters, Björn Forsberg, Alessandro Capotondi, Andrea Marongiu, Tobias Grosser, Luca Benini, 2020Publisher Slides
New! Compiling Neural Networks for a Computational Memory AcceleratorKornilios Kourtis, Martino Dazzi, Nikolas Ioannou, Tobias Grosser, Abu Sebastian, Evangelos Eleftheriou, 2020Publisher Slides Video arXiv
New! TC-CIM: Empowering Tensor Comprehensions for Computing-In-MemoryAndi Drebes, Lorenzo Chelini, Oleksandr Zinenko, Albert Cohen, Henk Corporaal, Tobias Grosser, Kanishkan Vadivel, Nicolas Vasilache, 2020Publisher Paper Slides
A Fast Analytical Model of Fully Associative CachesTobias Gysi, Tobias Grosser, Laurin Brandner, Torsten Hoefler, 2019Publisher Paper Slides Video arXiv
Efficient Hierarchical Online-AutotuningPhilip Pfaffe, Tobias Grosser, Martin Tillmann, 2019Publisher Paper
Absinthe: Learning an Analytical Performance Model to Fuse and Tile Stencil Codes in One ShotTobias Gysi, Tobias Grosser, Torsten Hoefler, 2019Publisher Paper Slides
Declarative Loop Tactics for Domain-specific OptimizationLorenzo Chelini, Oleksandr Zinenko, Tobias Grosser, Henk Corporaal, 2019Publisher Slides
School of Informatics
10 Crichton Street
Edinburgh EH8 9AB, United Kingdom
first.last at ed.ac.uk