Benchmarking a New Paradigm: An Experimental Analysis of a Real Processing-in-Memory Architecture
arXiv:2105.03814
Abstract
Many modern workloads, such as neural networks, databases, and graph processing, are fundamentally memory-bound. For such workloads, the data movement between main memory and CPU cores imposes a significant overhead in terms of both latency and energy. A major reason is that this communication happens through a narrow bus with high latency and limited bandwidth, and the low data reuse in memory-bound workloads is insufficient to amortize the cost of main memory access. Fundamentally addressing this data movement bottleneck requires a paradigm where the memory system assumes an active role in computing by integrating processing capabilities. This paradigm is known as processing-in-memory (PIM). Recent research explores different forms of PIM architectures, motivated by the emergence of new 3D-stacked memory technologies that integrate memory with a logic layer where processing elements can be easily placed. Past works evaluate these architectures in simulation or, at best, with simplified hardware prototypes. In contrast, the UPMEM company has designed and manufactured the first publicly-available real-world PIM architecture. This paper provides the first comprehensive analysis of the first publicly-available real-world PIM architecture. We make two key contributions. First, we conduct an experimental characterization of the UPMEM-based PIM system using microbenchmarks to assess various architecture limits such as compute throughput and memory bandwidth, yielding new insights. Second, we present PrIM, a benchmark suite of 16 workloads from different application domains (e.g., linear algebra, databases, graph processing, neural networks, bioinformatics).
arXiv commentOur open source software is available at https://github.com/CMU-SAFARI/prim-benchmarks
References in corpus (16)
- BlockHammer: Preventing RowHammer at Low Cost by Blacklisting Rapidly-Accessed DRAM Rows
- SMASH: Co-designing Software Compression and Hardware-Accelerated Indexing for Efficient Sparse Matrix Operations
- In-DRAM Bulk Bitwise Execution Engine
- Buddy-RAM: Improving the Performance and Efficiency of Bulk Bitwise Operations Using DRAM
- Memristive Devices for Computation-In-Memory
- Enabling the Adoption of Processing-in-Memory: Challenges, Mechanisms, Future Research Directions
- Simple DRAM and Virtual Memory Abstractions to Enable Highly Efficient Memory Systems
- Mitigating Edge Machine Learning Inference Bottlenecks: An Empirical Study on Accelerating Google Edge Models
- Polynesia: Enabling Effective Hybrid Transactional/Analytical Databases with Specialized Hardware/Software Co-Design
- The Processing Using Memory Paradigm:In-DRAM Bulk Copy, Initialization, Bitwise AND and OR
- LazyPIM: Efficient Support for Cache Coherence in Processing-in-Memory Architectures
- GRIM-filter: fast seed filtering in read mapping using emerging memory technologies
- RowClone: Accelerating Data Movement and Initialization Using DRAM
- Combining Emulation and Simulation to Evaluate a Near Memory Key/Value Lookup Accelerator
- Enabling Practical Processing in and near Memory for Data-Intensive Computing
- A Workload and Programming Ease Driven Perspective of Processing-in-Memory