I am a Senior Software Engineer at Google.

Naums Mogers

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

Senior Software Engineer at Google, Sunnyvale, CA, USA
Software Engineer at Google, Sunnyvale, CA, USA
Research Intern at ARM Research, Cambridge, UK
Research Intern at Microsoft Research, Cambridge, UK
Research Intern at York Centre for Complex Systems Analysis (YCCSA)
Engineering Intern at Sophos, Abingdon, UK
IT and Digital Summer Intern at EDF Energy, Brighton, UK
Web Designer Intern at Stockholm Environment Institute York
System Administrator / Software Developer at M2 Ltd, Riga, Latvia

Education

MSc by Research in Compilers and Programming Languages
MSc in Artificial Intelligence
BEng in Computer Science (with a year in industry)

Publications

Guided Rewriting and Constraint Satisfaction for Parallel GPU Code Generation
Mapping Parallelism in a Functional IR through Constraint Satisfaction: A Case Study on Convolution for Mobile GPUs
Automatic Generation of Specialized Direct Convolutions for Mobile GPUs
Towards Mapping Lift to Deep Neural Network Accelerators
Sensor Organism

Research Collaborations

Visiting Student at Mila - Quebec AI Institute, Montreal, Canada
Graduate Research Trainee at McGill University, Montreal, Canada
Collaboration with Huawei at University of Edinburgh

Teaching

Object-Oriented Programming
Algorithms, Data Structures And Learning
Introductory Applied Machine Learning
Machine Learning; Algorithms; Microcontrollers
Software Testing
Compiling Techniques
Processing Formal And Natural Languages
Raspberry Pi / Raspbian / Windows 10 IoT

Awards

PhD scholarship
1st Prize for the IBM and Swiss Re Hackathon Challenge
Best Poster Award
Best Poster Award
York Award
Public Engagement: Raspberry Pi Project Funding

Presentations

PhD Viva, University of Edinburgh
Talk, International Conference on Compiler Construction (CC), remotely
Talk, Systems, PL and Compilers Group at McGill University, Canada
Poster, Google Compiler and Programming Language Summit'19, Munich, Germany
Talk, ARM Research Summit: "Renegotiating Accelerator Abstractions (Post-Moore's Law)" workshop. Austin, Texas, USA
Talk, Workshop on Emerging Deep Learning Accelerators, HiPEAC, Valencia, Spain
Tutorial, International Symposium on Performance Analysis of Systems and Software (ISPASS), Belfast, UK
Poster, Google Compiler and Programming Language Summit'17, Munich, Germany
Invited talk, Glasgow Systems Seminar, University of Glasgow, UK
Poster, The Scottish Informatics and Computer Science Alliance (SISCA), University of Dundee, UK

Contacts

naums.mogers(at)gmail.com

naumsmogers(at)google.com