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.
翻译:单指令多数据(SIMD)是内存计算架构中一种流行的设计范式,它使内存阵列能够执行逻辑运算,从而实现低能耗与高并行性。要在存储于内存的数据上实现目标函数,首先需通过逻辑综合将该函数转换为由所支持逻辑操作组成的网表。随后,调度器将网表转化为架构可执行的指令序列。每条指令或在网表中执行逻辑运算,或将数据从一个阵列复制至另一个阵列。现有调度器大多专注于优化运算执行顺序以最小化所需内存行数,却忽略了能耗较高的复制指令——当使用尺寸受限的阵列时,此类指令无法避免。本工作旨在通过减少复制指令数量来降低整体能耗。我们提出MASIM,一种面向内存SIMD计算的多阵列调度器。它包含优先级驱动调度算法与迭代优化流程。相较于当前最优调度器,MASIM平均减少63.2%的复制指令,从而实现28.0%的能耗降低。