Tobias Grosser
Associate Professor
University of Cambridge
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?
Before joining Cambridge, I was a Reader at the University of Edinburgh, an Ambizione Fellow at ETH Zurich, and a Google PhD Fellow at École Normale Supérieure Paris. I studied computer science as an undergraduate at the University of Passau in Germany.
Research
Effective Performance Programming 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:
- Compilers
- 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
- Vectorization
- 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
Team
Previous Members
- Dalia Shaaban, Intern
2023 - 2024
Moved toETH Zurich (continuing) - Tom Soucies, Intern
2023
Moved toENS Rennes (continuing) - Abhinav Menon, Intern
2023
Moved toIIIT Hyderabad (continuing) - Jatin Agarwala, Intern
2023
Moved toIIIT Hyderabad (continuing) - Chris Hughes, Researcher
Moved to - Theo Degioanni, Intern (M.Sc.)
2022 and 2024
Moved toNVIDIA
Machine Learning Compiler Engineer - Andres Goens, Postdoctoral Researcher
2021 - 2023
Moved toUniversity of Amsterdam
Assistant Professor - Yifan Xu, Intern
2021
Moved toUniversity of Edinburgh
BSc Student (continuing) - David Bourke, MSc
2021
Moved toVyatta NOS group
Performance Engineer - Christian Ulmann, MSc Thesis & BSc Thesis
2020 - 2022
Moved toNextSilicon
Software Engineer - Anurudh Peduri, Intern
2020 - 2022
Moved toRuhr-Universität Bochum
PhD with Michael Walter - Christoph Mueller, Researcher
2020
Moved toMeteoSwiss
Scientific Software Developer - Jakub Lichman, M.Sc. Thesis
2020
Moved toGoogle
Internship with Albert Cohen and Oleksandr Zinenko - Theodoros Theodoridis, Researcher
2019 - 2020
Moved toETH Zurich
Ph.D. student with Zhendong Su - Arjun Pitchanathan, Intern (M.Sc.)
2019 - 2020
Moved toUniversity of Edinburgh
Ph.D. with me - Jean-Michel Gorius, Intern (M.Sc.)
2019
Moved toUniversity of Murcia
Internship with Alexandra Jimborean - Mathieu Fehr, Intern (M.Sc.)
2019
Moved toMIT CSAIL
Internship with Adam Chlipala - Lorenzo Chelini, PhD
2018 - 2020
Moved toIntel Zurich
Postdoctoral Researcher - Anastiasiia Ruzhanskaia, Intern (M.Sc.)
2018
Moved toETH Zurich
Ph.D. student with Timothy Roscoe - Tobias Gysi, PhD Student & Postdoctoral Researcher
2014 - 2020
Moved toGoogle Zurich
Research Engineer
Publications
2024
- Leibniz International Proceedings in Informatics (LIPIcs)Verifying Peephole Rewriting in SSA Compiler IRs ↞ New!
Siddharth Bhat, Alex Keizer, Chris Hughes, Andrés Goens, Tobias Grosser
- CAVStrided Difference Bound Matrices ↞ New!
Arjun Pitchanathan, Albert Cohen, Oleksandr Zinenko, Tobias Grosser
- PLDIFalcon: A Scalable Analytical Cache Model ↞ New!
Arjun Pitchanathan, Kunwar Grover, Tobias Grosser
- ASPLOSA shared compilation stack for distributed-memory parallelism in stencil DSLs ↞ New!
George Bisbas, Anton Lydike, Emilien Bauer, Nick Brown, Mathieu Fehr, Lawrence Mitchell, Gabriel Rodriguez-Canal, Maurice Jamieson, Paul H. J. Kelly, Michel Steuwer, Tobias Grosser
- POPLGuided Equality Saturation ↞ New!
Thomas Koehler, Andrés Goens, Siddharth Bhat, Tobias Grosser, Phil Trinder, Michel Steuwer
- arXivVerifying Peephole Rewriting In SSA Compiler IRs ↞ New!
Siddharth Bhat, Alex Keizer, Chris Hughes, Andrés Goens, Tobias Grosser
2023
- PACTmlirSynth: Automatic, Retargetable Program Raising in Multi-Level IR using Program Synthesis
Alexander Brauckmann, Elizabeth Polgreen, Tobias Grosser, Michael FP O'Boyle
- arXivSidekick compilation with xDSL
Mathieu Fehr, Michel Weber, Christian Ulmann, Alexandre Lopoukhine, Martin Lücke, Théo Degioanni, Michel Steuwer, Tobias Grosser
- IMPACTBuilding a Static HLS Pass with FPL
Kunwar Shaanjeet Singh, Arjun Pitchanathan, Julian Oppermann, Mike Urbach, Tobias Grosser
2022
- ASPLOSUnderstanding and Exploiting Optimal Function Inlining
Theodoros Theodoridis, Tobias Grosser, Zhendong Su
- PLDIIRDL: An IR Definition Language for SSA Compilers
Mathieu Fehr, Jeff Niu, River Riddle, Mehdi Amini, Zhendong Su, Tobias Grosser
- ICSTMetamorphic Fuzzing of C++ Libraries
Andrei Lascu, Alastair Donaldson, Tobias Grosser, Torsten Hoefler
- CGOLambda the Ultimate SSA: Optimizing Functional Programs in SSA
Siddharth Bhat, Tobias Grosser
- CCQSSA: An SSA-Based IR for Quantum Computing
Anurudh Peduri, Siddharth Bhat, Tobias Grosser
- CCQRANE: Lifting QASM Programs to an Affine IR
Blake Gerard, Tobias Grosser, Martin Kong
2021
- OOPSLAFPL: Fast Presburger Arithmetic through Transprecision
Arjun Pitchanathan, Christian Ulmann, Michel Weber, Torsten Hoefler, Tobias Grosser
- TCADOCC: An Automated End-to-End Machine Learning Optimizing Compiler for Computing-In-Memory
Adam Siemieniuk, Lorenzo Chelini, Asif Ali Khan, Jeronimo Castrillon, Andi Drebes, Henk Corporaal, Tobias Grosser, Martin Kong
- CGOProgressive Raising in Multi-level IR
Lorenzo Chelini, Andi Drebes, Oleksandr Zinenko, Albert Cohen, Nicolas Vasilache, Tobias Grosser, Henk Corporaal
- SCOPESLoopOpt: Declarative Transformations Made Easy
Lorenzo Chelini, Martin Kong, Tobias Grosser, Henk Corporaal
- TACODomain-Specific Multi-Level IR Rewriting for GPU: The Open Earth Compiler for GPU-Accelerated Climate Simulation
Tobias Gysi, Christoph Müller, Oleksandr Zinenko, Stephan Herhut, Eddie Davis, Tobias Wicky, Oliver Fuhrer, Torsten Hoefler, Tobias Grosser
- TPDSWork-stealing prefix scan: Addressing load imbalance in large-scale image registration
Marcin Copik, Tobias Grosser, Torsten Hoefler, Paolo Bientinesi, Benjamin Berkels
- PPoPPExtracting Clean Performance Models from Tainted Programs
Marcin Copik, Alexandru Calotoiu, Tobias Grosser, Nicolas Wicki, Felix Wolf, Torsten Hoefler
2020
- OOPSLAFast Linear Programming through Transprecision Computing on Small and Sparse Data
Tobias Grosser, Theodoros Theodoridis, Maximilian Falkenstein, Arjun Pitchanathan, Michael Kruse, Manuel Rigger, Zhendong Su, Torsten Hoefler
- PACTAutomatic Generation of Multi-Objective Polyhedral Compiler Transformations
Lorenzo Chelini, Tobias Gysi, Tobias Grosser, Martin Kong, Henk Corporaal
- TCADPolyhedral Compilation for Racetrack Memories
Asif Ali Khan, Hauke Mewes, Tobias Grosser, Torsten Hoefler, Jeronimo Castrillon
- PLDILLHD: A Multi-Level Intermediate Representation for Hardware Description Languages
Fabian Schueki, Andreas Kurth, Tobias Grosser, Luca Benini
- EuroLLVMMultiLevel Tactics: Lifting loops in MLIR
Lorenzo Chelini, Andi Drebes, Oleksandr Zinenko, Albert Cohen, Henk Corporaal, Tobias Grosser, Nicolas Vasilache
- CCMixed-data-model heterogeneous compilation and OpenMP offloading
Andreas Kurth, Koen Wolters, Björn Forsberg, Alessandro Capotondi, Andrea Marongiu, Tobias Grosser, Luca Benini
- SPMACompiling Neural Networks for a Computational Memory Accelerator
Kornilios Kourtis, Martino Dazzi, Nikolas Ioannou, Tobias Grosser, Abu Sebastian, Evangelos Eleftheriou
- IMPACTTC-CIM: Empowering Tensor Comprehensions for Computing-In-Memory
Andi Drebes, Lorenzo Chelini, Oleksandr Zinenko, Albert Cohen, Henk Corporaal, Tobias Grosser, Kanishkan Vadivel, Nicolas Vasilache
↓ Show All ↓ ↦ Google Scholar
Join Us!
Are you considering a PhD? I enjoy working with students! Seeing you develop your research vision brings me meaning and joy.
I would be excited to guide you through your scientific adventures. I often have flexible funding to support your vision. Especially if your PhD vision is still blurry, an early chat might help you gain clarity. Choosing to do a PhD can be complex. It may force you to reflect deeply, you may face doubts, or you may need to gain confidence in an area that interests you. Are you worried about your CV? Remember that your curiosity, creativity, personality, and your unique path through life all contribute to your ability to do a PhD. Everyone has specific needs and life circumstances, and I would be glad to discuss how we can tailor your PhD to ensure they are cared for. I am also happy to assist in exploring potential topics or answering practical questions that you may have. As your vision becomes concrete, I can support you with your PhD application.
As a first step, I suggest exploring my research vision, papers, and projects. If a topic excites you (or you have general PhD questions), email me!
I also host postdoctoral researchers and interns. Email me to discuss opportunities.Post-Doc Position iOpen
While I am always open to receive applications on any topic, I have currently a specific opening on Formal Verification of Compilers using Lean and MLIR.PhD applications open!
I will be taking a small number of PhD students for the Sep 2025 term (an earlier start may be possible). Thanks to our new Computer Architecture Research Center we have funding for a cohort of PhD students. Use the summer months to get ready for your PhD application. If you are considering to work with me, drop me an email such that we can touch base early and that I can help you with any questions about your PhD. Feel particularly invited, if you feel unsure about doing a PhD.
Last updated: August 2024Contact
Department of Computer Science and Technology
University of Cambridge
15 JJ Thomson Ave
Cambridge CB3 0FD
tobias.grosser at cst.cam.ac.uk