Table of Contents
Fetching ...

CiMLoop: A Flexible, Accurate, and Fast Compute-In-Memory Modeling Tool

Tanner Andrulis, Joel S. Emer, Vivienne Sze

TL;DR

CiMLoop is an open-source tool to model diverse CiM systems and explore decisions across the CiM stack, and introduces an accurate energy model that captures the interaction between DNN operand values, hardware data representations, and analog/digital values propagated by circuits.

Abstract

Compute-In-Memory (CiM) is a promising solution to accelerate Deep Neural Networks (DNNs) as it can avoid energy-intensive DNN weight movement and use memory arrays to perform low-energy, high-density computations. These benefits have inspired research across the CiM stack, but CiM research often focuses on only one level of the stack (i.e., devices, circuits, architecture, workload, or mapping) or only one design point (e.g., one fabricated chip). There is a need for a full-stack modeling tool to evaluate design decisions in the context of full systems (e.g., see how a circuit impacts system energy) and to perform rapid early-stage exploration of the CiM co-design space. To address this need, we propose CiMLoop: an open-source tool to model diverse CiM systems and explore decisions across the CiM stack. CiMLoop introduces (1) a flexible specification that lets users describe, model, and map workloads to both circuits and architecture, (2) an accurate energy model that captures the interaction between DNN operand values, hardware data representations, and analog/digital values propagated by circuits, and (3) a fast statistical model that can explore the design space orders-of-magnitude more quickly than other high-accuracy models. Using CiMLoop, researchers can evaluate design choices at different levels of the CiM stack, co-design across all levels, fairly compare different implementations, and rapidly explore the design space.

CiMLoop: A Flexible, Accurate, and Fast Compute-In-Memory Modeling Tool

TL;DR

CiMLoop is an open-source tool to model diverse CiM systems and explore decisions across the CiM stack, and introduces an accurate energy model that captures the interaction between DNN operand values, hardware data representations, and analog/digital values propagated by circuits.

Abstract

Compute-In-Memory (CiM) is a promising solution to accelerate Deep Neural Networks (DNNs) as it can avoid energy-intensive DNN weight movement and use memory arrays to perform low-energy, high-density computations. These benefits have inspired research across the CiM stack, but CiM research often focuses on only one level of the stack (i.e., devices, circuits, architecture, workload, or mapping) or only one design point (e.g., one fabricated chip). There is a need for a full-stack modeling tool to evaluate design decisions in the context of full systems (e.g., see how a circuit impacts system energy) and to perform rapid early-stage exploration of the CiM co-design space. To address this need, we propose CiMLoop: an open-source tool to model diverse CiM systems and explore decisions across the CiM stack. CiMLoop introduces (1) a flexible specification that lets users describe, model, and map workloads to both circuits and architecture, (2) an accurate energy model that captures the interaction between DNN operand values, hardware data representations, and analog/digital values propagated by circuits, and (3) a fast statistical model that can explore the design space orders-of-magnitude more quickly than other high-accuracy models. Using CiMLoop, researchers can evaluate design choices at different levels of the CiM stack, co-design across all levels, fairly compare different implementations, and rapidly explore the design space.
Paper Structure (47 sections, 16 figures, 3 tables, 1 algorithm)

This paper contains 47 sections, 16 figures, 3 tables, 1 algorithm.

Figures (16)

  • Figure 1: CiM macro computing a matrix-vector multiplication. From a workload (top-left), the weight matrix (green) is programmed into memory cells. Input vector elements (blue) are sent on rows and outputs (red) appear on columns.
  • Figure 2: ADC-energy-reducing strategies of published CiM macros NeuroSim_Validatedjiasinangilwanwan_iiwangwang_iicolonnade. Bolded items indicate changes from the base macro to implement strategies. In addition to the listed mapping restrictions, all macros are restricted to store different weights in $A_1/A_2$ and different weights in $B_1/B_2$. A flexible model is needed to explore the different components and data movement patterns that are unique to each macro. Open-source models of these macros are available at https://github.com/mit-emze/cimloop.
  • Figure 3: Data-value-dependence can affect circuit energy by ${>2.5\times}$, and its effect is different for each DAC, encoding, and layer. The best encoding is different for each layer.
  • Figure 4: CiMLoop's data-value-dependent model is significantly more accurate than non-data-value-dependent models.
  • Figure 5: Validating energy/throughput for varied supply voltage.
  • ...and 11 more figures