System Optimization with Machine Learning
We explore applying machine learning to many challenging system optimization tasks such as compiler phase ordering, scheduling, resource allocation, and circuit design. We proposed AutoPhase (appeared in MLSys 2020), NeuroVectorizer (appeared in CGO 2020), RLDRM (appeared in NetSoft 2020), and AutoCkt (appeared in Date 2020), which use various deep reinforcement learning techniques to solve the NP-hard phase ordering challenge, perform automatic loop vectorization, perform dynamic cache allocation for network function virtualization, and design analog circuit, respectively. We also survey and propose a set of metrics of how deep reinforcement learning should be applied in system optimization.
Currently, we are exploring the use of Monte Carlo Tree Search in scheduling.
AutoPhase is open source and the code is available here: https://github.com/ucb-bar/autophase
NeuroVectorizer is open source and the code is available here: https://github.com/intel/neuro-vectorizer
Presentation videos of AutoPhase and NeuroVectorizer are available here: ameerhajali.com