Approximate computing: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: title, template type. Add: chapter-url, chapter. Removed or converted URL. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | #UCB_CommandLine
Citation bot (talk | contribs)
Alter: title, template type. Add: chapter. Removed proxy/dead URL that duplicated identifier. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox3 | #UCB_webform_linked 133/2306
Line 14:
: There are several ways to approximate at software level. [[Memoization]] or fuzzy memoization (the use of a [[vector database]] for approximate retrieval from a cache, ''i.e.'' fuzzy caching) can be applied. Some [[iteration]]s of [[Loop (computing)|loops]] can be skipped (termed as [[loop perforation]]) to achieve a result faster. Some tasks can also be skipped, for example when a run-time condition suggests that those tasks are not going to be useful ([[task skipping]]). [[Monte Carlo algorithm]]s and [[Randomized algorithm]]s trade correctness for execution time guarantees.<ref>C.Alippi, Intelligence for Embedded Systems: a Methodological approach, Springer, 2014, pp. 283</ref> The computation can be reformulated according to paradigms that allow easily the acceleration on specialized hardware, e.g. a neural processing unit.<ref>{{Cite conference|last1=Esmaeilzadeh|first1=Hadi|last2=Sampson|first2=Adrian|last3=Ceze|first3=Luis|last4=Burger|first4=Doug|title=Neural acceleration for general-purpose approximate programs|conference=45th Annual IEEE/ACM International Symposium on Microarchitecture|year=2012|doi=10.1109/MICRO.2012.48|publisher=IEEE|pages=449–460|___location=Vancouver, BC}}</ref>
; Approximate system
: In an approximate system,<ref>{{Cite journalbook|last1=Raha|first1=Arnab|last2=Raghunathan|first2=Vijay|datetitle=Proceedings of the 54th Annual Design Automation Conference 2017 |titlechapter=Towards Full-System Energy-Accuracy Tradeoffs: A Case Study of An Approximate Smart Camera System|journaldate=Proceedings of the 54th Annual Design Automation Conference 2017|series=DAC '17|___location=New York, NY, USA|publisher=ACM|pages=74:1–74:6|doi=10.1145/3061639.3062333|isbn=9781450349277|s2cid=2503638}}</ref> different subsystems of the system such as the processor, memory, sensor, and communication modules are synergistically approximated to obtain a much better system-level Q-E trade-off curve compared to individual approximations to each of the subsystems.
 
==Application areas==
Line 21:
 
==Derived paradigms==
The main issue in approximate computing is the identification of the section of the application that can be approximated. In the case of large scale applications, it is very common to find people holding the expertise on approximate computing techniques not having enough expertise on the application ___domain (and vice versa). In order to solve this problem, [[programming paradigm]]s<ref>{{cite journalbook|last1=Nguyen|first1=Donald|last2=Lenharth|first2=Andrew|last3=Pingali|first3=Keshav|title=A lightweight infrastructure for graph analytics|journal=Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles |chapter=A lightweight infrastructure for graph analytics |date=2013|pages=456–471|publisher=ACM|language=en|url=https://dl.acm.org/ft_gateway.cfm?id=2522739|doi=10.1145/2517349.2522739|isbn=9781450323888|doi-access=free}}</ref> have been proposed. They all have in common the clear role separation between application [[programmer]] and application [[___domain expert]]. These approaches allow the spread of the most common [[Program optimization|optimizations]] and approximate computing techniques.
 
==See also==