The Potential of Accelerating Image-Processing Applications by Using Approximate Function Reuse - Silveira, Leonardo Almeida Da; Brandalero, Marcelo; Souza, Jeckson Dellagostin De; Beck, Antonio Carlos Schneider (Anais do Simpósio Brasileiro de Engenharia de Sistemas Computacionais (SBESC), 2016)
Function reuse is a promising approach to accelerate single-threaded applications and exceed the limits of instruction-level parallelism. This approach exploits the observation that certain functions are executed several times with the same inputs, producing the same output. Therefore, by saving its results once in a reuse table, it is possible to skip subsequent calls when the same set of inputs is found. However, the table tends to get very large, and functions with multiple input arguments make the fetching process extremely costly because all input values must be compared to the saved ones. In this work, we combine function reuse with approximation, exploiting the characteristic that some applications are naturally error-tolerant, to quickly access the table using a single key and reduce its size. By using two image-processing benchmarks from the AxBench suite, we show that traditional function reuse achieves a reuse rate close to 0% due to the diversity of inputs. However, by applying approximation, it is possible to trade quality for reuse rate and achieve almost 50% reuse rate with less than 6% quality degradation.