Table of Contents
Fetching ...

MASIM: An Efficient Multi-Array Scheduler for In-Memory SIMD Computation

Xingyue Qian, Chen Nie, Zhezhi He, Weikang Qian

TL;DR

The paper tackles the energy cost of inter-array copy instructions in in-memory SIMD computation. It introduces MASIM, a multi-array scheduler that uses CICPP priority and a CPP metric to minimize copy instructions under a fixed array size, aided by an iterative improvement loop. Experiments on EPFL benchmarks show MASIM reduces copy instructions by 63.2% on average and lowers energy consumption by 28.0% compared with state-of-the-art schedulers, across varying array sizes. The approach demonstrates a practical path to more energy-efficient IMC and is released as open-source for broader adoption.

Abstract

Single instruction, multiple data (SIMD) is a popular design style of in-memory computing (IMC) architectures, which enables memory arrays to perform logic operations to achieve low energy consumption and high parallelism. To implement a target function on the data stored in memory, the function is first transformed into a netlist of the supported logic operations through logic synthesis. Then, the scheduler transforms the netlist into the instruction sequence given to the architecture. An instruction is either computing a logic operation in the netlist or copying the data from one array to another. Most existing schedulers focus on optimizing the execution sequence of the operations to minimize the number of memory rows needed, neglecting the energy-consuming copy instructions, which cannot be avoided when working with arrays with limited sizes. In this work, our goal is to reduce the number of copy instructions to decrease overall energy consumption. We propose MASIM, a multi-array scheduler for in-memory SIMD computation. It consists of a priority-driven scheduling algorithm and an iterative improvement process. Compared to the best state-of-the-art scheduler, MASIM reduces the number of copy instructions by 63.2% on average, which leads to a 28.0% reduction in energy.

MASIM: An Efficient Multi-Array Scheduler for In-Memory SIMD Computation

TL;DR

The paper tackles the energy cost of inter-array copy instructions in in-memory SIMD computation. It introduces MASIM, a multi-array scheduler that uses CICPP priority and a CPP metric to minimize copy instructions under a fixed array size, aided by an iterative improvement loop. Experiments on EPFL benchmarks show MASIM reduces copy instructions by 63.2% on average and lowers energy consumption by 28.0% compared with state-of-the-art schedulers, across varying array sizes. The approach demonstrates a practical path to more energy-efficient IMC and is released as open-source for broader adoption.

Abstract

Single instruction, multiple data (SIMD) is a popular design style of in-memory computing (IMC) architectures, which enables memory arrays to perform logic operations to achieve low energy consumption and high parallelism. To implement a target function on the data stored in memory, the function is first transformed into a netlist of the supported logic operations through logic synthesis. Then, the scheduler transforms the netlist into the instruction sequence given to the architecture. An instruction is either computing a logic operation in the netlist or copying the data from one array to another. Most existing schedulers focus on optimizing the execution sequence of the operations to minimize the number of memory rows needed, neglecting the energy-consuming copy instructions, which cannot be avoided when working with arrays with limited sizes. In this work, our goal is to reduce the number of copy instructions to decrease overall energy consumption. We propose MASIM, a multi-array scheduler for in-memory SIMD computation. It consists of a priority-driven scheduling algorithm and an iterative improvement process. Compared to the best state-of-the-art scheduler, MASIM reduces the number of copy instructions by 63.2% on average, which leads to a 28.0% reduction in energy.

Paper Structure

This paper contains 21 sections, 9 figures, 2 tables.

Figures (9)

  • Figure 1: An example of (a) a netlist, (b) an instruction sequence using a single array, and (c) an instruction sequence using multiple arrays.
  • Figure 2: Two examples of energy consumption of the same function implemented using the best priormethod and our proposed method.
  • Figure 3: Data layout in memory arrays.
  • Figure 4: The overall flow of MASIM.
  • Figure 5: Scheduling example: (a) the initial state of an outermost iteration of the random priority-driven scheduling; (b) compute $e$ in $A_1$; (c) copy $c$ to $A_2$; (d) compute $g$ in $A_2$.
  • ...and 4 more figures

Theorems & Definitions (3)

  • Example 1
  • Example 2
  • Example 3