I am a Senior Software Engineer at Google.
My interests are compilers (optimising compilation for deep learning), programming languages (expressive type systems are great) and deep learning.
At Google, I work on the XLA TPU compiler. Specifically, I contribute to the MLIR-based Mosaic custom kernel language (a Pallas backend for TPUs), leveraging the block-centric programming model for sparse computations. This work has interesting challenges such as balancing expressive power of a DSL – providing the user with explicit low-level control – with productivity features, i.e. a smart compiler. Finding the right abstraction levels for each of these aspects is what determines the success of a programming language.
My PhD thesis (2023) (PDF, slides) was in programming languages and compilers for deep learning. I did my PhD at the University of Edinburgh (ICSA), co-supervised by Christophe Dubach, Michel Steuwer, Michael O’Boyle and Kenneth Heafield; I was also a visiting student at McGill University. My PhD examiners were Murray Cole and Jeremy Singer.
My PhD project focused on optimizing compilation techniques that benefit from functional intermediate representation (IR) with deep neural nets and GPUs as a case study. I also worked on this topic with Ryota Tomioka while on an internship at Microsoft Research. As a research intern at ARM Research, I worked on software/hardware codesign for DL with Giacomo Gabrielli and Ali Zaidi: specifically, I worked on a compiler that generates FPGA designs in the Spatial HLS language with LSTM networks as a case study. I also participated in the teaching of algorithms, machine learning, Java and cognitive science.
Here is my video introduction of my PhD project; you can download my CV here.
Work Experience
Education
Publications
Research Collaborations
Teaching
Awards
Presentations
Contacts
naums.mogers(at)gmail.com
naumsmogers(at)google.com