I am a second year PhD student in the CDT Pervasive Parallelism at the University of Edinburgh. My PhD is supervised by Dr Christophe Dubach and co-supervised by Dr Michel Steuwer; I am a member of the Lift research group.
My research interests are deep neural networks (DNN), optimising compilation and optimisation of DNN for portable performance. I have worked on these topics within my PhD project, as a research intern at Microsoft Research and ARM and in a yearlong collaboration with Huawei. My research benefits from the diverse technical background I have: my past projects include a Scala and OpenCL framework for deep learning acceleration (PhD project), OpenCL and Python-based neural network-accelerated ant swarm simulation (Bachelor’s project) and two microcontroller-driven robots (funded projects for use in teaching).
PhD in Optimising Compilation of Machine Learning Models for Heterogeneous Hardware
Supervised by Dr Christophe Dubach @ University of EdinburghThe focus of my research is rewrite rules-based compilation of the functional domain-specific language Lift for DNNs into OpenCL. The goal is to abstract DNNs from hardware without losing neither device-specific optimisations, nor performance-preserving portability. My approach involves expressing DNNs functionally, encoding parametrised optimisations as rewrite rules and exploring a huge search space of optimisations and their parameters. In addition to NVIDIA GPUs, I targeted ARM Mali GPUs for the yearlong collaboration with Huawei, where I cross-compiled DNN-code for HiKey.
MSc by Research in Optimisation of CNNs Using A Functional Data-Parallel Language
Supervised by Dr Christophe Dubach @ University of EdinburghFor this project I expressed a CNN in the functional language Lift and explored the optimisational space of data tiling and grouping and weighting sequentialization, exploiting coalesced memory accesses and data locality. I presented a poster on this work at the Google PhD Summit in Munich.
MSc in Artificial Intelligence
Supervised by Dr Christophe Dubach @ University of EdinburghDissertation title: ‘Expressing Artificial Neural Networks In A Functional Data-Parallel Language For GPU Acceleration’. The curriculum included courses in Machine Learning, Robotics and Cognitive Science.
BEng in Computer Science (with a year in industry)
Supervised by Dr Simon O’Keefe @ University of YorkDissertation title: ‘Memory In Simulated Swarms’. The curriculum was focused on system programming (schedulability analysis, embedded software, real-time systems, compilers) and artificial intelligence (neural computing, search algorithms, multi-agent systems, swarm intelligence).
Research Internships & Collaborations
As an intern at the Architecture Research Group at ARM, I focus on extending the intermediate representation and the compiler stack for post-Moore's Law hardware accelerators.
Microsoft Research, Cambridge
I worked on the project BrainWave, extending the functional data-parallel Lift compiler to a specialized machine learning accelerator. This work included extensive changes to all parts of the compilation chain including type checking, memory management, rewriting and code generation.
Collaboration with Huawei
University of Edinburgh
Within this yearlong collaboration with Huawei, I focused on optimising CNNs for embedded devices, which included porting Caffe to the Android OS on the Huawei Kirin 960-based HiKey 960 board with ARM Mali G71 GPU.
York Centre for Complex Systems Analysis
I designed a biologically inspired cellular model for a Wireless Sensor Network of Arduinos, capturing such biological properties as adaptivity, self-organization and fault-tolerance. Research topics covered include Artificial Epigenetic Regulatory Networks, Genetic Programming and Cell Signalling.
IBM and Swiss Re first prize and the hackathon finalist
September 2016, HackZurich
My team won in the IBM & Swiss Re challenge against 20 teams in the largest European hackathon HackZurich. Additionally, we became one of 25 finalists out of 152 teams in the main hackathon challenge. We developed a Machine Learning app for risk prediction using home IoT sensors and IBM analytic technologies.
July 2015, the University of York
The York Award is a programme of personal and skills development offered by the University of York in partnership with leading public, private and voluntary sector organisations. The York Award certificate is awarded alongside the degree in recognition of achievement of a significant programme of activity and, in particular, the adoption of an analytical and reflective approach to learning and competence in a broad range of skills.
Algorithms, Data Structures And Learning
Teaching Assistant / Marker, University of Edinburgh
Teaching Assistant, University of Edinburgh
Introductory Applied Machine Learning
Marker, University of Edinburgh
Machine Learning; Algorithms; Microcontrollers
Tutor, Facultative School For Talented Children
I wrote and taught two courses from scratch on Neural Networks and Decision Trees, and one course on maze solving and construction algorithms.
In 2016, I taught a workshop on Arduino-based auto-aiming catapult design.
Tutor, University of Edinburgh
Demonstrator, University of Edinburgh
Processing Formal And Natural Languages
Marker, University of Edinburgh
Raspberry Pi / Raspbian / Windows 10 IoT
Workshop tutor, Microsoft Student Partners
CDT Pervasive Parallelism
2016 – 2020, University of Edinburgh
Four-year scholarship sponsored by the Engineering and Physical Sciences Research Council.
Raspberry Pi project funding
2014, University of York
I responded to a competitive call for proposals and acquired funding to design and develop a Raspberry Pi-related project that helps promote technology in schools. The project included microcontroller programming in Python and Scratch, electric circuit design and use of actuators. I conducted a Raspberry Pi workshop for schoolteachers and participated in technology exhibition.
Functional Interface for Performance Portability on Parallel Accelerators
ARM Research Summit: "Renegotiating Accelerator Abstractions (Post-Moore's Law)" workshop. Austin, Texas, USA.
Towards Mapping Lift to Deep Neural Network Accelerators
Workshop on Emerging Deep Learning Accelerators (HiPEAC), Valencia, Spain.
Lift: Performance Stencil Code Generation with Lift
International Symposium on Performance Analysis of Systems and Software (ISPASS), Belfast, UK
Optimisation of Neural Computations Using a Functional Data-Parallel Language
Google PhD Summit, Munich, Germany
Computational Optimisation of CNNs Using a Functional Data-Parallel Language
Glasgow Systems Seminar, University of Glasgow, UK
Optimisation of Neural Computations Using a Functional Data-Parallel Language
The Scottish Informatics and Computer Science Alliance, University of Dundee, UK
Attended Academic Events
ARM Research Summit
September 2019, ARM, Austin
Gave a talk on functional interfaces as a good match for the abstraction between a wide range of applications and hardware accelerators. Attended a great set of keynotes, talks and panel discussions.
Google PhD Summit
December 2017, Google Munich
Selected by Google to join the Compiler and Programming Language Summit 2017, where I presented a poster on my research project. Participated in the Round Tables where Google engineers shared highlights of Google’s latest research in the area of programming language implementation and how this research is applied to compilers and language tooling at Google.
Google Inside Look
August 2017, Google London
Selected by Google for their exclusive Inside Look Program, offering top Technical students a fully sponsored two day program of tech talks, workshops, and other technical development content. Awarded to only 31 students out of thousands of applicants from Europe, Middle East and Africa.
Facebook PhD London Tech Talk
October 2018, Facebook London
Selected by Facebook for a PhD Open House event for a talk and panel about research at Facebook.
As a part of a research project in natural language processing at Thomson Reuters R&D department, I annotated news articles with semantic tokens that aid automatic learning for a machine learning system.
My responsibilities included antivirus engine development in C/C++/Python, manual and automated testing, code reviews, debugging, documentation maintenance and software release preparation. My team employed Agile Development practices including pair programming and daily planning meetings.
IT and Digital Summer Intern
Full-time internship at R&D department in C++ OCR software development and IT support.
Web Designer Intern
Stockholm Environment Institute York
Part-time internship in web development.
System Administrator / Software Developer
Part-time during the academic year and full-time during summers, my responsibilities included PHP and Visual Basic development, and IT support.
- (In preparation) Naums Mogers, Lu Li, Christophe Dubach. “Rewrite Rule-based Optimisation of Deep Neural Networks for Embedded Platforms”, at IACM SIGPLAN 2020 International Conference on Compiler Construction (CC 2020). San Diego, 2020.
- Naums Mogers, Aaron Smith, Dimitrios Vytiniotis, Michel Steuwer, Christophe Dubach, Ryota Tomioka. “Towards Mapping Lift to Deep Neural Network Accelerators”, at the Workshop on Emerging Deep Learning Accelerators (EDLA) @ HiPEAC. Valencia, 2019.
- Naums Mogers, Dimitris Lagos, and Martin Albrecht Trefzer. “The Sensor Organism” York Doctoral Symposium. York, 2015.
Since 2016, I am representing my cohort in the Centre for Doctoral Training (CDT) staff-student meetings.
PGR Student Representative
Since 2017, I am representing my programme (CDT) in the department-wide Staff-student liaison committee.
Millenium Falcon Model
Research poster #2
Research poster #1
In 2016, I organized a workshop in a scientific summer school, where we built four auto-aiming catapults with a group of 16 years-old students.
The catapults are based on Arduino Uno, Tamiya Twin-Motor Gear Boxes and HC-SR04 ultrasonic sensor; the frame is made of plywood.
The goal of the workshop was to learn how to operate the wood workshop tools, and learn the mechanisms of motors, microcontrollers and ultrasonic sensors.
Pololu 3pi robot
The second year of the Bachelor’s course, University of York, 2013.
The group assessment was to program the Mbed microcontroller so that robot can follow a wall and avoid obstacles using IR proximity sensors, follow a line using bottom illuminance sensors and navigate on a floor using USB optical mouse tail.
Image source: www.hobbytronics.co.uk
A GPU-Accelerated stigmergic BCMM swarm
This is my diploma project called “A GPU-Accelerated stigmergic BCMM swarm”. In short, it is a Python maze solver, that simulates a swarm on GPU using OpenCL. Swarm agents use neural networks to navigate in an unknown environment.
The project was developed using Python 3.4.2, OpenCL 1.2 (the code should be 1.0-compatible), PyOpenCL, Pygame, Numpy and FFmpeg. The platform is 64-bit Windows 7 and AMD Radeon HD 7870.
This work is distributed under MIT License: you are free to use and change it with appropriate references to the source.
Bachelor’s, the University of York, 2015.
Simulated Baxter robot
This is a V-Rep 3D simulation of Baxter robot reaching targets and comfortable poses from different initial positions.
Produced as a part of a homework assignment for the Robot Learning & Sensorimotor Control course at the University of Edinburgh.
Master’s, the University of Edinburgh 2016.
Raspberry Pi project
I participated in the York Raspberry Jam & Maker Event at the National STEM Centre. Together with other CS students we presented our raspberry projects, which we delivered for the “Raspberry Pi in the classroom” event — the idea was to design projects which could be repeated in schools with children learning to use Scratch on the Pi.
The video above is a demo of my project called “Magnetic checkers” – the goal was to move metallic checker pieces around the field using an electromagnet. The machine ended up resembling a simple 3D printer: 3 stepper motors, one moving base in axis X, two moving the head (magnet) in Y and Z axes. Software allows user to control machine manually and give simple tasks for automatic control (i.e. “move piece from A2 to E7”).
Software: Scratch for high-level control, Python for sending high-frequency PWM signal to GPIO pins.
Hardware: Meccano structural parts, x3 NEMA 17 motors, x3 A4988 Pololu drivers, 12V 6W electromanget, Raspberry Pi, 3 PSUs.
Pololu 3pi robot simulation
The individual part of the Pololu 3pi robot group assessment: it is a Matlab simulation, which interacts with robot’s C program by feeding it sensor readings in exchange for motor commands.
Bachelor’s course, the University of York, 2013.
- E-mail email@example.com
- Work address Informatics Forum, 10 Crichton St, Edinburgh, EH8 9AB, UK