Temporal Approximate Function Memoization

Georgios Tziantzioulis, Nikos Hardavellas, Simone Campanoni

Research output: Contribution to journalArticle

4 Scopus citations

Abstract

Improving the performance of applications is a core target of computer systems research and has led to the creation of various techniques. Among them is function memoization, an intuitive technique that, unfortunately, failed to live up to its promised potential. Traditional function memoization falls short mainly because it is input-based, meaning the system needs to pattern-match the current invocations inputs with previously seen ones to decide which memoized output value to return. This is often computationally intensive and only suitable for a limited set of functions. However, function calls often exhibit temporal value locality on their output. We capitalize on this observation to create the first output-based function memoization technique. We demonstrate that compiler-directed output-based memoization reduces energy and runtime by 50 to 75 percent (2-4x speedup) at the cost of a relatively small degradation of the applications output quality.

Original languageEnglish (US)
Article number8430631
Pages (from-to)60-70
Number of pages11
JournalIEEE Micro
Volume38
Issue number4
DOIs
StatePublished - Jul 1 2018

    Fingerprint

Keywords

  • approximate computing
  • energy
  • hardware
  • performance
  • temporal locality

ASJC Scopus subject areas

  • Software
  • Hardware and Architecture
  • Electrical and Electronic Engineering

Cite this