CoMeFa: Deploying Compute-in-Memory on FPGAs for Deep Learning Acceleration
CoMeFa: Deploying Compute-in-Memory on FPGAs for Deep Learning Acceleration
复制标题
DOI:
10.1145/3603504
复制
发表时间:
2023-06
影响因子:
2.3
通讯作者:
Aman Arora;Atharva Bhamburkar;Aatman Borda;T. Anand;Rishabh Sehgal;Bagus Hanindhito;P. Gaillardon;J. Kulkarni;L. John
中科院分区:
文献类型:
--
作者:
Aman Arora;Atharva Bhamburkar;Aatman Borda;T. Anand;Rishabh Sehgal;Bagus Hanindhito;P. Gaillardon;J. Kulkarni;L. John
Block random access memories (BRAMs) are the storage houses of FPGAs, providing extensive on-chip memory bandwidth to the compute units implemented using logic blocks and digital signal processing slices. We propose modifying BRAMs to convert them to CoMeFa (Compute-in-Memory Blocks for FPGAs) random access memories (RAMs). These RAMs provide highly parallel compute-in-memory by combining computation and storage capabilities in one block. CoMeFa RAMs utilize the true dual-port nature of FPGA BRAMs and contain multiple configurable single-bit bit-serial processing elements. CoMeFa RAMs can be used to compute with any precision, which is extremely important for applications like deep learning (DL). Adding CoMeFa RAMs to FPGAs significantly increases their compute density while also reducing data movement. We explore and propose two architectures of these RAMs: CoMeFa-D (optimized for delay) and CoMeFa-A (optimized for area). Compared to existing proposals, CoMeFa RAMs do not require changing the underlying static RAM technology like simultaneously activating multiple wordlines on the same port, and are practical to implement. CoMeFa RAMs are especially suitable for parallel and compute-intensive applications like DL, but these versatile blocks find applications in diverse applications like signal processing and databases, among others. By augmenting an Intel Arria 10–like FPGA with CoMeFa-D (CoMeFa-A) RAMs at the cost of 3.8% (1.2%) area, and with algorithmic improvements and efficient mapping, we observe a geomean speedup of 2.55× (1.85×) across microbenchmarks from various applications and a geomean speedup of up to 2.5× across multiple deep neural networks. Replacing all or some BRAMs with CoMeFa RAMs in FPGAs can make them better accelerators of DL workloads.