Learning Memory Access Patterns
arXiv:1803.02329
Abstract
The explosion in workload complexity and the recent slow-down in Moore's law scaling call for new approaches towards efficient computing. Researchers are now beginning to use recent advances in machine learning in software optimizations, augmenting or replacing traditional heuristics and data structures. However, the space of machine learning for computer hardware architecture is only lightly explored. In this paper, we demonstrate the potential of deep learning to address the von Neumann bottleneck of memory performance. We focus on the critical problem of learning memory access patterns, with the goal of constructing accurate and efficient memory prefetchers. We relate contemporary prefetching strategies to n-gram models in natural language processing, and show how recurrent neural networks can serve as a drop-in replacement. On a suite of challenging benchmark datasets, we find that neural networks consistently demonstrate superior performance in terms of precision and recall. This work represents the first step towards practical neural-network based prefetching, and opens a wide range of exciting directions for machine learning in computer architecture research.
References in corpus (7)
- Sequence to Sequence Learning with Neural Networks
- WaveNet: A Generative Model for Raw Audio
- Pixel Recurrent Neural Networks
- Learning to Execute
- Beyond Word Importance: Contextual Decomposition to Extract Interactions from LSTMs
- Structured Generative Models of Natural Source Code
- Automatic Rule Extraction from Long Short Term Memory Networks
Cited by in corpus (9)
- A Survey of Machine Learning for Computer Architecture and Systems
- A neural network memory prefetcher using semantic locality
- Ithemal: Accurate, Portable and Fast Basic Block Throughput Estimation using Deep Neural Networks
- Polyjuice: High-Performance Transactions via Learned Concurrency Control
- SmartChoices: Hybridizing Programming and Machine Learning
- Learned Indexes for Dynamic Workloads
- A Pluggable Learned Index Method via Sampling and Gap Insertion
- Feedforward Neural Networks for Caching: Enough or Too Much?
- Learning Execution through Neural Code Fusion