Processing-in-Memory (PIM) is a computing paradigm that aims at overcoming the data movement bottleneck (i.e., the waste of execution cycles and energy resulting from the back-and-forth data movement between memory units and compute units) by making memory compute-capable.
Explored over several decades since the 1960s, PIM systems are becoming a reality with the advent of the first commercial products and prototypes.
A number of startups (e.g., UPMEM, Neuroblade) are already commercializing real PIM hardware, each with its own design approach and target applications. Several major vendors (e.g., Samsung, SK Hynix, Alibaba) have presented real PIM chip prototypes in the last two years. Most of these architectures have in common that they place compute units near the memory arrays. This type of PIM is called processing near memory (PNM).
PIM can provide large improvements in both performance and energy consumption for many modern applications, thereby enabling a commercially viable way of dealing with huge amounts of data that is bottlenecking our computing systems. Yet, it is critical to (1) study and understand the characteristics that make a workload suitable for a PIM architecture, (2) propose optimization strategies for PIM kernels, and (3) develop programming frameworks and tools that can lower the learning curve and ease the adoption of PIM.
This tutorial focuses on the latest advances in PIM technology, workload characterization for PIM, and programming and optimizing PIM kernels. We will (1) provide an introduction to PIM and taxonomy of PIM systems, (2) give an overview and a rigorous analysis of existing real-world PIM hardware, (3) conduct hand-on labs about important workloads (machine learning, sparse linear algebra, bioinformatics, etc.) using real PIM systems, and (4) shed light on how to improve future PIM systems for such workloads.
| Time | Speaker | Title | Materials | |
|---|---|---|---|---|
| 7:55am-8:00am | Dr. Juan Gómez Luna | Welcome & Agenda | (PDF) (PPT) | |
| 8:00am-9:20am | Prof. Onur Mutlu / Geraldo F. Oliveira | Memory-Centric Computing | (PDF) (PPT) | |
| 9:20am-10:20am | Dr. Juan Gómez Luna | Processing-Near-Memory: Real PNM Architectures / Programming General-purpose PIM | (PDF) (PPT) | |
| 10:40am-11:20am | Prof. Youngsok Kim | PID-Join: A Fast In-Memory Join Algorithm for Commodity PIM-Enabled DIMMs | (PDF) SIGMOD'2023 |
|
| 11:20am-12:00pm | Dr. Abu Sebastian | PUM Based on Memristive Devices: The IBM HERMES Project Chip | (PDF) (PPT) Lecture (ETH Zürich, Fall 2020 IBM Analog Hardware Acceleration Kit Nature Nanotechnology (2020) Nature Electronics (2023) IEEE VLSI (2023) Nature Communications (2023) | |
| 1:00pm-2:00pm | Geraldo F. Oliveira | Processing-Using-DRAM: Ambit, SIMDRAM, pLUTo | (PDF) (PPT) | |
| 2:00pm-3:15pm | Dr. Juan Gómez Luna | Accelerating Modern Workloads on a General-purpose PIM System: Machine leaning, Genomics… | (PDF) (PPT) | |
| 3:15pm-3:45pm | Dr. Juan Gómez Luna | Adoption Issues: How to Enable PIM? | (PDF) (PPT) | |
| 3:45pm-4:15pm | Dr. Juan Gómez Luna | SimplePIM: A Software Framework for High-level PIM Programming | (PDF) (PPT) | |
| 4:15pm-5:00pm | Ataberk Olgun | Processing-Using-Memory Prototypes: PiDRAM | (PDF) (PPT) | |
| 5:00pm-5:10pm | Dr. Juan Gómez Luna | Hands-on Lab: Programming and Understanding a Real Processing-in-Memory Architecture | (Handout) (PDF) (PPT) | |