TDO-CIM: Transparent Detection and Offloading for Computation In-memory
Kanishkan Vadivel1,a, Lorenzo Chelini1,2,b, Ali BanaGozar1, Gagandeep Singh1,2, Stefano Corda1,2, Roel Jordans1 and Henk Corporaal1
1Eindhoven University of Technology
2IBM Research Zürich
ak.vadivel@tue.nl
bl.chelini@tue.nl
ABSTRACT
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 inmemory architecture simulated in Gem5 by comparing it with a state-of-the-art von Neumann architecture.
Keywords: LLVM, Compute in Memory, Memristor, Pattern Matching, Polly, Loop Tactics