Data Subsetting: A Data-Centric Approach to Approximate Computing
TL;DR: A data-centric approach to AxC is proposed, which can boost the performance of memory-subsystem-limited applications and proposes a data-access approximation technique called data subsetting, in which all accesses to a data structure are redirected to a subset of its elements so that the overall footprint of memory accesses is decreased.
Abstract: Approximate Computing (AxC), which leverages the intrinsic resilience of applications to approximations in their underlying computations, has emerged as a promising approach to improving computing system efficiency. Most prior efforts in AxC take a compute-centric approach and approximate arithmetic or other compute operations through design techniques at different levels of abstraction. However, emerging workloads such as machine learning, search and data analytics process large amounts of data and are significantly limited by the memory sub-systems of modern computing platforms.In this work, we shift the focus of approximations from computations to data, and propose a data-centric approach to AxC, which can boost the performance of memory-subsystem-limited applications. The key idea is to modulate the application’s data-accesses in a manner that reduces off-chip memory traffic. Specifically, we propose a data-access approximation technique called data subsetting, in which all accesses to a data structure are redirected to a subset of its elements so that the overall footprint of memory accesses is decreased. We realize data subsetting in a manner that is transparent to hardware and requires only minimal changes to application software. Recognizing that most applications of interest represent and process data as multi-dimensional arrays or tensors, we develop a templated data structure called SubsettableTensor that embodies mechanisms to define the accessible subset and to suitably redirect accesses to elements outside the subset. As a further optimization, we observe that data subsetting may cause some computations to become redundant and propose a mechanism for application software to identify and eliminate such computations. We implement SubsettableTensor as a C++ class and evaluate it using parallel software implementations of 7 machine learning applications on a 48-core AMD Opteron server. Our experiments indicate that data subsetting enables 1.33×–4.44× performance improvement with <0.5% loss in application-level quality, underscoring its promise as a new approach to approximate computing.
...read more
Citations
8 citations
Additional excerpts
...[123] Y....
[...]
2 citations
References
645 citations
"Data Subsetting: A Data-Centric App..." refers background in this paper
...Next, at the architecture level, research efforts have explored approximate architectures for both general-purpose and domain-specific processors [7], [8], with suitable programming support [6]....
[...]
438 citations
"Data Subsetting: A Data-Centric App..." refers methods in this paper
...We compare the performance of data subsetting with a wellknown compute-centric approximation technique called loop perforation [10], wherein iterations of loops are periodically or randomly skipped from execution....
[...]
426 citations
"Data Subsetting: A Data-Centric App..." refers background in this paper
...However, recent work suggests that applying it to other system components has a potential to result in additional improvements [15]–[20]....
[...]
...These include reducing DRAM refresh rate [15], [21], storing/accessing data in a compressed format [17], and speculating on the results of loads [18], [19], among others....
[...]
399 citations
"Data Subsetting: A Data-Centric App..." refers background in this paper
...Next, at the architecture level, research efforts have explored approximate architectures for both general-purpose and domain-specific processors [7], [8], with suitable programming support [6]....
[...]
364 citations
"Data Subsetting: A Data-Centric App..." refers methods in this paper
...This ranges from manual approximate designs of adders and multipliers [3], [4] to automatic methodologies capable of approximating arbitrary logic [5]....
[...]