Approx-IMC: A general-purpose approximate digital in-memory computing framework based on STT-MRAM
Amir M. Hajisadeghi,Mahmoud Momtazpour,Hamid R. Zarandi
DOI: https://doi.org/10.1016/j.future.2024.05.053
IF: 7.307
2024-05-30
Future Generation Computer Systems
Abstract:In-memory computing (IMC) empowers von Neumann-based computing systems to meet the performance and energy requirements of emerging data-intensive applications by offloading some computations to memory. Fortunately, many data-intensive applications that can benefit from IMC, such as image processing and neural networks, can tolerate minor accuracy loss to some extent. In this paper, we exploit this potential by using approximate computing to make a good tradeoff between performance, energy, and accuracy of data-intensive approximable applications in memory. In this regard, we present a general-purpose STT-MRAM-based digital IMC framework called Approx-IMC that, with the help of approximate computing, improves the performance and energy consumption of (multi-bit) arithmetic operations as building blocks used in data-intensive approximable applications. Approx-IMC effectively implements the given building blocks in memory in accurate and approximate fashions. To do this, first, efficient logic selection and logic synthesis are done for each building block regarding the reliability considerations of the supported in-memory logics. Next, to minimize the building blocks' execution time, the in-memory scheduling and mapping task is formulated as an integer linear programming (ILP) optimization problem. After that, the building blocks are introduced to CPU ISA as extended instructions to support the Approx-IMC blocks. Moreover, Approx-IMC memory architecture and system integration aspects have been addressed. Finally, to evaluate the framework's efficiency, the main arithmetic building blocks in most applications, including full adder, adder, and multiplier, have been implemented, and circuit-, architecture-, and application-level analyses have been conducted. The results over real-world applications reveal that by following our proposed framework, significant speedup and energy improvement can be achieved compared to CPU and a well-known in-memory computing mechanism. Furthermore, reliability evaluations show high process variation robustness and lifetime improvement.
computer science, theory & methods