processing in memory
**Processing-in-Memory (PIM)** is **the execution of computation directly within or adjacent to memory arrays rather than shuttling data between separated memory and processor components**—a fundamental architectural shift to eliminate the memory wall bottleneck that dominates power and latency in modern systems.
**Core PIM Technologies:**
- HBM-PIM: Samsung's approach embeds logic layers in HBM stacks (compute within 3D memory cube)
- UPMEM: prefetch processing near DRAM arrays with a lightweight ISA
- AiM (AI in Memory): analog in-memory computing for neural networks
- DRAM with embedded compute: transistors directly accessible to DRAM cells
**Memory Architecture Considerations:**
- Eliminates repeated memory-processor round-trips (critical for bandwidth-bound ML inference)
- DRAM HBM2 PIM adds a logic layer beneath memory stacks for near-DRAM computation
- Near-data processing (NDP) vs true in-memory compute represents spectrum of solutions
- PIM ISA design: limited instruction set for domain-specific operations
**Applications and Programming Challenges:**
- Database query acceleration (WHERE filtering near storage)
- ML inference kernels (matrix multiply in DRAM)
- Data analytics (aggregation, reduction operations)
- Programming model complexity: how to express PIM-compatible code in standard frameworks
- Data layout optimization: tiling for memory hierarchy still critical
**Impact and Future:**
PIM promises orders-of-magnitude improvements in memory bandwidth utilization and energy efficiency for data-intensive workloads, though adoption requires rethinking compiler toolchains and algorithmic approaches to fully realize memory-compute fusion benefits.