CIMPool: Scalable Neural Network Acceleration for Compute-In-Memory using Weight Pools
Shurui Li, Puneet Gupta
TL;DR
This work tackles the SRAM CIM bottleneck by enabling much larger neural networks to fit on-chip without prohibitive accuracy loss. It introduces CIMPool, a hardware-aware framework that uses a fixed $128\times128$ weight pool with a 1-bit error term and structured pruning, coupled with dataflow optimizations and a specialized hardware scheduler to permute outputs efficiently. The key contributions include 1) a non-repeating weight-pool strategy ensuring full CIM utilization, 2) 1-bit error term with per-layer scaling, 3) binarized weight pool content with mean-value scaling, 4) structured error pruning and grouping to reduce overhead, and 5) a two-CIM-array architecture with optimized permutation and bit-serial computation. Empirically, CIMPool achieves up to $14.8\times$ compression with accuracy on par with 8-bit baselines on Food-101 and CIFAR datasets, reduces chip area by $62.3\%$ over iso-accuracy 4-bit CIM, and lowers total energy by up to $3.24\times$ when DRAM is used, enabling order-of-magnitude larger models within a fixed area budget. These results demonstrate a practical path to scalable, energy-efficient CIM acceleration for large neural networks across SRAM and DRAM storage options.
Abstract
Compute-in-memory (CIM) based neural network accelerators offer a promising solution to the Von Neumann bottleneck by computing directly within memory arrays. However, SRAM CIM faces limitations in executing larger models due to its cell size and on-chip memory constraints. This work proposes CIMPool, a CIM-aware compression and acceleration framework that counters this limitation through a weight sharing-based compression technique, aptly named `Weight Pool,' enabling significantly larger neural networks to be accommodated within on-chip memory constraints. This method minimizes the accuracy trade-off typically associated with parameter compression, allowing CIMPool to achieve a significantly larger compression ratio compared to the traditional quantization method with iso-accuracy. Furthermore, CIMPool co-optimizes the compression algorithm, hardware, and dataflow to efficiently implement the hardware permutation required by weight pool compression, with negligible area and throughput overhead. Empirical results demonstrate that CIMPool can achieve 8-bit level accuracy with an effective 0.5-bit precision, reduce chip area by 62.3% for ResNet-18, and enable the execution of an order of magnitude larger models for a given area budget in SRAM CIMs. When DRAM is used to store weights, CIMPool can reduce the total energy by 3.24x compared to iso-accuracy traditional CIMs.
