I am a Software Engineer at Google working on the XLA TPU compiler.

Naums Mogers

My interests are compilers (optimising compilation for deep learning), programming languages (expressive type systems are great) and deep learning. In general, I love complex systems: the MLIR ecosystem is a good example in PL, and deep neural architectures – in AI.

My PhD thesis (2023) (PDF, slides) is 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. 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

Software Engineer at Google, Toronto, Canada
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