A Survey of Machine Learning for Computer Architecture and Systems
arXiv:2102.07952 · doi:10.1145/3494523
Abstract
It has been a long time that computer architecture and systems are optimized for efficient execution of machine learning (ML) models. Now, it is time to reconsider the relationship between ML and systems, and let ML transform the way that computer architecture and systems are designed. This embraces a twofold meaning: improvement of designers' productivity, and completion of the virtuous cycle. In this paper, we present a comprehensive review of the work that applies ML for computer architecture and system design. First, we perform a high-level taxonomy by considering the typical role that ML techniques take in architecture/system design, i.e., either for fast predictive modeling or as the design methodology. Then, we summarize the common problems in computer architecture/system design that can be solved by ML techniques, and the typical ML techniques employed to resolve each of them. In addition to emphasis on computer architecture in a narrow sense, we adopt the concept that data centers can be recognized as warehouse-scale computers; sketchy discussions are provided in adjacent computer systems, such as code generation and compiler; we also give attention to how ML techniques can aid and transform design automation. We further provide a future vision of opportunities and potential directions, and envision that applying ML for computer architecture and systems would thrive in the community.
References in corpus (21)
- Very Deep Convolutional Networks for Large-Scale Image Recognition
- Sequence to Sequence Learning with Neural Networks
- Learning agile and dynamic motor skills for legged robots
- GCN-RL Circuit Designer: Transferable Transistor Sizing with Graph Neural Networks and Reinforcement Learning
- Device Placement Optimization with Reinforcement Learning
- Predicting Organic Reaction Outcomes with Weisfeiler-Lehman Network
- Chip Placement with Deep Reinforcement Learning
- Unsupervised Translation of Programming Languages
- IronMan: GNN-assisted Design Space Exploration in High-Level Synthesis via Reinforcement Learning
- HL-Pow: A Learning-Based Power Modeling Framework for High-Level Synthesis
- GDP: Generalized Device Placement for Dataflow Graphs
- Apollo: Transferable Architecture Exploration
- Improving Branch Prediction By Modeling Global History with Convolutional Neural Networks
- Reinforcement Learning and Adaptive Sampling for Optimized DNN Compilation
- Data Cache Prefetching with Perceptron Learning
- Optimizing Routerless Network-on-Chip Designs: An Innovative Learning-Based Framework
- A Static Analysis-based Cross-Architecture Performance Prediction Using Machine Learning
- Phoebe: Reuse-Aware Online Caching with Reinforcement Learning for Emerging Storage Models
- MetaTune: Meta-Learning Based Cost Model for Fast and Efficient Auto-tuning Frameworks
- Optimizing Memory Placement using Evolutionary Graph Reinforcement Learning
- A Case Study: Exploiting Neural Machine Translation to Translate CUDA to OpenCL