SimplePIM: A Software Framework for Productive and Efficient Processing-in-Memory
Jinfan Chen, Juan G\'omez-Luna, Izzat El Hajj, Yuxin Guo, Onur Mutlu

TL;DR
SimplePIM is a software framework that simplifies programming and improves performance of real processing-in-memory systems by reducing code complexity and enabling efficient computation within memory chips.
Contribution
It introduces a new software framework, SimplePIM, that facilitates programming real PIM hardware like UPMEM and demonstrates significant code reduction and performance improvements.
Findings
Reduces PIM program lines of code by up to 83.1%
Achieves 10% to 37% speedup over hand-optimized code in applications
Enables easier programming of PIM hardware with comparable or better performance
Abstract
Data movement between memory and processors is a major bottleneck in modern computing systems. The processing-in-memory (PIM) paradigm aims to alleviate this bottleneck by performing computation inside memory chips. Real PIM hardware (e.g., the UPMEM system) is now available and has demonstrated potential in many applications. However, programming such real PIM hardware remains a challenge for many programmers. This paper presents a new software framework, SimplePIM, to aid programming real PIM systems. The framework processes arrays of arbitrary elements on a PIM device by calling iterator functions from the host and provides primitives for communication among PIM cores and between PIM and the host system. We implement SimplePIM for the UPMEM PIM system and evaluate it on six major applications. Our results show that SimplePIM enables 66.5% to 83.1% reduction in lines of code in PIM…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFerroelectric and Negative Capacitance Devices · Parallel Computing and Optimization Techniques · Advanced Memory and Neural Computing
