Abstract
The resources in a system should be utilized efficiently to obtain relevant information. Approximate computing allows trading a reduction in accuracy for efficiency gains. However, approximate computing is generally concerned with the accuracy and optimization of a single layer, while a system spans several layers. A system approach to approximate computing is needed. A taxonomy is presented that adheres to this principle. The taxonomy classifies approximate computing based on the fundamental components of computing. The techniques are categorized by four classes: precision, memory, iterative and error. A system for detecting objects using the Sobel filter is used to evaluate the taxonomy. The Sobel filter is made approximate by 49 approaches, using both techniques that operate alone or in unison. The simulations are conducted using high level synthesis tools. The results show that a local reduction in accuracy does not necessarily propagate through the system, and that less accurate intermediary functionality is advantageous for certain input characteristics. Meaning that significant resource savings can be obtained without reducing the overall system performance.