Several manufacturers have already started to commercialize near-bank Processing-In-Memory (PIM) architectures. Near-bank PIM architectures place simple cores close to DRAM banks and can yield significant performance and energy improvements in parallel applications by alleviating data access costs. Real PIM systems can provide high levels of parallelism, large aggregate memory bandwidth and low memory access latency, thereby being a good fit to accelerate the widely-used, memory-bound Sparse Matrix Vector Multiplication (SpMV) kernel. This paper provides the first comprehensive analysis of SpMV on a real-world PIM architecture, and presents SparseP, the first SpMV library for real PIM architectures. We make three key contributions. First, we implement a wide variety of software strategies on SpMV for a multithreaded PIM core and characterize the computational limits of a single multithreaded PIM core. Second, we design various load balancing schemes across multiple PIM cores, and two types of data partitioning techniques to execute SpMV on thousands of PIM cores: (1) 1D-partitioned kernels to perform the complete SpMV computation only using PIM cores, and (2) 2D-partitioned kernels to strive a balance between computation and data transfer costs to PIM-enabled memory. Third, we compare SpMV execution on a real-world PIM system with 2528 PIM cores to state-of-the-art CPU and GPU systems to study the performance and energy efficiency of various devices. SparseP software package provides 25 SpMV kernels for real PIM systems supporting the four most widely used compressed matrix formats, and a wide range of data types. Our extensive evaluation provides new insights and recommendations for software designers and hardware architects to efficiently accelerate SpMV on real PIM systems.
翻译:多个制造商已开始将近银行处理模拟(PIM)架构商业化。 近银行PIM架构将简单核心放在DRAM银行附近, 通过降低数据存取成本,可以在平行应用中产生显著的性能和能源改进。 真正的PIM系统可以提供高水平的平行、 大型总内存带宽和低内存存存存存存存存存延宽度, 从而非常适合加速广泛使用的、 内存的 Sparse 母体乘数( SpMV) 内核。 本文为真实世界PIM架构的SpMV提供了首次全面分析 SpMV SpM 系统, 并展示了SprassPMPPPPPPPPPPPPPrml) 的第一个Sml 运行库库库库库库。 我们的SpMVMV系统、 PIM CIM 和 CSMl 内部存取量系统, 只能提供全内部内存数据传输工具。