SEAMS: Self-Optimizing Runtime Manager for Approximate Memory Hierarchies

Biswadip Maity, Bryan Donyanavard, Anmol Surhonne, Amir Rahmani, Andreas Herkersdorf, Nikil Dutt

Research output: Contribution to journalArticlepeer-review

8 Scopus citations


Memory approximation techniques are commonly limited in scope, targeting individual levels of the memory hierarchy. Existing approximation techniques for a full memory hierarchy determine optimal configurations at design-time provided a goal and application. Such policies are rigid: they cannot adapt to unknown workloads and must be redesigned for different memory configurations and technologies. We propose SEAMS: the first self-optimizing runtime manager for coordinating configurable approximation knobs across all levels of the memory hierarchy. SEAMS continuously updates and optimizes its approximation management policy throughout runtime for diverse workloads. SEAMS optimizes the approximate memory configuration to minimize energy consumption without compromising the quality threshold specified by application developers. SEAMS can (1) learn a policy at runtime to manage variable application quality of service (QoS) constraints, (2) automatically optimize for a target metric within those constraints, and (3) coordinate runtime decisions for interdependent knobs and subsystems. We demonstrate SEAMS' ability to efficiently provide functions (1)-(3) on a RISC-V Linux platform with approximate memory segments in the on-chip cache and main memory. We demonstrate SEAMS' ability to save up to 37% energy in the memory subsystem without any design-time overhead. We show SEAMS' ability to reduce QoS violations by 75% with < 5% additional energy.

Original languageEnglish
Article number48
JournalACM Transactions on Embedded Computing Systems
Issue number5
StatePublished - Jul 2021


  • Approximate computing
  • Memory hierarchy
  • Model-free control
  • RISC-V


Dive into the research topics of 'SEAMS: Self-Optimizing Runtime Manager for Approximate Memory Hierarchies'. Together they form a unique fingerprint.

Cite this