Table of Contents
Fetching ...

OpenACM: An Open-Source SRAM-Based Approximate CiM Compiler

Yiqi Zhou, JunHao Ma, Xingyang Li, Yule Sheng, Yue Yuan, Yikai Wang, Bochang Wang, Yiheng Wu, Shan Shen, Wei Xing, Daying Sun, Li Li, Zhiqiang Xiao

TL;DR

OpenACM tackles the memory-wall bottleneck in data-driven AI by delivering an open-source, accuracy-aware compiler for SRAM-based approximate DCiM. It unifies a library of accuracy-configurable multipliers (exact, tunable approximate, and logarithmic) with an OpenROAD/OpenYield-backed design flow to enable reproducible exploration of energy–accuracy trade-offs in a transistor-aware SRAM macro. Key contributions include an end-to-end architecture combining a PE, a versatile multiplier suite, and a variation-aware SRAM macro generator, all integrated into a flow that avoids proprietary tools. Experimental results on CNNs show energy savings up to 64% with negligible accuracy loss, demonstrating practical impact for energy-efficient AI hardware design.

Abstract

The rise of data-intensive AI workloads has exacerbated the ``memory wall'' bottleneck. Digital Compute-in-Memory (DCiM) using SRAM offers a scalable solution, but its vast design space makes manual design impractical, creating a need for automated compilers. A key opportunity lies in approximate computing, which leverages the error tolerance of AI applications for significant energy savings. However, existing DCiM compilers focus on exact arithmetic, failing to exploit this optimization. This paper introduces OpenACM, the first open-source, accuracy-aware compiler for SRAM-based approximate DCiM architectures. OpenACM bridges the gap between application error tolerance and hardware automation. Its key contribution is an integrated library of accuracy-configurable multipliers (exact, tunable approximate, and logarithmic), enabling designers to make fine-grained accuracy-energy trade-offs. The compiler automates the generation of the DCiM architecture, integrating a transistor-level customizable SRAM macro with variation-aware characterization into a complete, open-source physical design flow based on OpenROAD and the FreePDK45 library. This ensures full reproducibility and accessibility, removing dependencies on proprietary tools. Experimental results on representative convolutional neural networks (CNNs) demonstrate that OpenACM achieves energy savings of up to 64\% with negligible loss in application accuracy. The framework is available on \href{https://github.com/ShenShan123/OpenACM}{OpenACM:URL}

OpenACM: An Open-Source SRAM-Based Approximate CiM Compiler

TL;DR

OpenACM tackles the memory-wall bottleneck in data-driven AI by delivering an open-source, accuracy-aware compiler for SRAM-based approximate DCiM. It unifies a library of accuracy-configurable multipliers (exact, tunable approximate, and logarithmic) with an OpenROAD/OpenYield-backed design flow to enable reproducible exploration of energy–accuracy trade-offs in a transistor-aware SRAM macro. Key contributions include an end-to-end architecture combining a PE, a versatile multiplier suite, and a variation-aware SRAM macro generator, all integrated into a flow that avoids proprietary tools. Experimental results on CNNs show energy savings up to 64% with negligible accuracy loss, demonstrating practical impact for energy-efficient AI hardware design.

Abstract

The rise of data-intensive AI workloads has exacerbated the ``memory wall'' bottleneck. Digital Compute-in-Memory (DCiM) using SRAM offers a scalable solution, but its vast design space makes manual design impractical, creating a need for automated compilers. A key opportunity lies in approximate computing, which leverages the error tolerance of AI applications for significant energy savings. However, existing DCiM compilers focus on exact arithmetic, failing to exploit this optimization. This paper introduces OpenACM, the first open-source, accuracy-aware compiler for SRAM-based approximate DCiM architectures. OpenACM bridges the gap between application error tolerance and hardware automation. Its key contribution is an integrated library of accuracy-configurable multipliers (exact, tunable approximate, and logarithmic), enabling designers to make fine-grained accuracy-energy trade-offs. The compiler automates the generation of the DCiM architecture, integrating a transistor-level customizable SRAM macro with variation-aware characterization into a complete, open-source physical design flow based on OpenROAD and the FreePDK45 library. This ensures full reproducibility and accessibility, removing dependencies on proprietary tools. Experimental results on representative convolutional neural networks (CNNs) demonstrate that OpenACM achieves energy savings of up to 64\% with negligible loss in application accuracy. The framework is available on \href{https://github.com/ShenShan123/OpenACM}{OpenACM:URL}
Paper Structure (15 sections, 3 equations, 5 figures, 5 tables)

This paper contains 15 sections, 3 equations, 5 figures, 5 tables.

Figures (5)

  • Figure 1: The end-to-end open-source workflow enabled by OpenACM, comprised of its core hardware components and the EDA toolchain. The flow integrates a library of accuracy-configurable multipliers, a generator for a customizable SRAM macro, and a script generator for the steps in the PD.
  • Figure 2: Block diagram of the proposed 8-bit approximate multiplier. It consists of three stages: (i) partial-product generation, (ii) a configurable reduction tree employing exact or approximate 4-2 compressors on selected low-order columns, and (iii) a final carry-propagate adder.
  • Figure 3: Block diagram of the proposed 8-bit logarithmic multiplier. It approximates multiplication by (i) base-2 logarithmic encoding using a leading-one detector and a small LUT, (ii) addition in the log domain, and (iii) antilogarithmic decoding via a barrel shifter and LUT, optionally with error-compensation.
  • Figure 4: OpenACM SRAM macro: banked, subarrayed 6T array with hierarchical WL, PRE, write drivers, column MUX, and differential SAs.
  • Figure 5: Overall design flow of OpenACM, which is built on top of OpenROAD and OpenYield.