Computation in-memory is a promising non-von Neumann approach aiming at completely diminishing the data transfer to and from the memory subsystem. Although a lot of architectures have been proposed, compiler support for such architectures is still lagging behind. In this paper, we close this gap by proposing an end-to-end compilation flow for in-memory computing based on the LLVM compiler infrastructure. Starting from sequential code, our approach automatically detects, optimizes, and offloads kernels suitable for in-memory acceleration. We demonstrate our compiler tool-flow on the PolyBench/C benchmark suite and evaluate the benefits of our proposed in-memory architecture simulated in Gem5 by comparing it with a state-of-the-art von Neumann architecture.
@article{arxiv.2007.00060,
title = {TDO-CIM: Transparent Detection and Offloading for Computation In-memory},
author = {Kanishkan Vadivel and Lorenzo Chelini and Ali BanaGozar and Gagandeep Singh and Stefano Corda and Roel Jordans and Henk Corporaal},
journal= {arXiv preprint arXiv:2007.00060},
year = {2020}
}