A Domain-Specific Language and Compiler for Computation-in-Memory Skeletons

Jintao Yu, Tom Hogervorst, Razvan Nane

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

1 Citation (Scopus)


Computation-in-Memory (CiM) is a new computer architecture template based on the in-memory computing paradigm. CiM can solve the memory-wall problem of classical Von Neumann-based computer systems by exploiting application-specific computational and data-flow patterns with the capability of performing both storage and computations of emerging resistive RAM technologies (e.g., memristors). However, to efficiently explore and design such radically new application-specific CiM architectures, we require fundamentally new algorithm specification and compilation techniques. In this paper, we introduce a domain-specific language to express not only the computational patterns of an algorithm but also its spatial characteristics. Furthermore, we design a compiler that is able to transform these patterns into highly-optimized CiM designs. Experiments demonstrate the functional correctness of the language and the compiler as well as an order of magnitude speedup improvement over a multicore system in both performance and energy costs.
Original languageEnglish
Title of host publicationGLSVLSI '17 Proceedings of the on Great Lakes Symposium on VLSI 2017
Place of PublicationNew York
PublisherAssociation for Computing Machinery (ACM)
Number of pages6
ISBN (Print)978-1-4503-4972-7
Publication statusPublished - 2017
Event27th ACM Great Lakes Symposium on VLSI ((GLSVLSI) - Banff, Canada
Duration: 10 May 201712 May 2017
Conference number: 2017


Conference27th ACM Great Lakes Symposium on VLSI ((GLSVLSI)
Abbreviated titleGLSVLSI 2017
Internet address


  • Domain specific language
  • Memristors
  • Computation-in-memory
  • Algorithmic skeleton

Fingerprint Dive into the research topics of 'A Domain-Specific Language and Compiler for Computation-in-Memory Skeletons'. Together they form a unique fingerprint.

Cite this