Shared-PIM: Enabling Concurrent Computation and Data Flow for Faster Processing-in-DRAM
Ahmed Mamdouh, Haoran Geng, Michael Niemier, Xiaobo Sharon Hu, Dayane Reis
TL;DR
Shared-PIM introduces bank-level concurrency in DRAM by adding BK-bus, BK-SAs, and Shared Rows to enable simultaneous computation and data movement within a memory bank. The architecture achieves ~5× lower inter-subarray data-transfer latency and ~1.2× lower energy than LISA, and when integrated with pLUTo attains ~1.4× faster addition/multiplication with MM/PMM/NTT gains of 40%, 44%, and 31% and BFS/DFS gains around 29%, at ~7.16% extra die area. The approach supports pipelining and broadcasting, improving data-flow for diverse workloads, including graph and numeric transforms, while remaining compatible with existing PIM designs. Overall, Shared-PIM demonstrates substantial practical impact by boosting in-DRAM processing throughput and efficiency with modest architectural overhead.
Abstract
Processing-in-Memory (PIM) enhances memory with computational capabilities, potentially solving energy and latency issues associated with data transfer between memory and processors. However, managing concurrent computation and data flow within the PIM architecture incurs significant latency and energy penalty for applications. This paper introduces Shared-PIM, an architecture for in-DRAM PIM that strategically allocates rows in memory banks, bolstered by memory peripherals, for concurrent processing and data movement. Shared-PIM enables simultaneous computation and data transfer within a memory bank. When compared to LISA, a state-of-the-art architecture that facilitates data transfers for in-DRAM PIM, Shared-PIM reduces data movement latency and energy by 5x and 1.2x respectively. Furthermore, when integrated to a state-of-the-art (SOTA) in-DRAM PIM architecture (pLUTo), Shared-PIM achieves 1.4x faster addition and multiplication, and thereby improves the performance of matrix multiplication (MM) tasks by 40%, polynomial multiplication (PMM) by 44%, and numeric number transfer (NTT) tasks by 31%. Moreover, for graph processing tasks like Breadth-First Search (BFS) and Depth-First Search (DFS), Shared-PIM achieves a 29% improvement in speed, all with an area overhead of just 7.16% compared to the baseline pLUTo.
