{"id":1041954,"date":"2024-05-31T18:47:27","date_gmt":"2024-06-01T01:47:27","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-research-item&p=1041954"},"modified":"2024-06-07T11:24:17","modified_gmt":"2024-06-07T18:24:17","slug":"retrospective-general-purpose-code-acceleration-with-limited-precision-analog-computation","status":"publish","type":"msr-research-item","link":"https:\/\/www.microsoft.com\/en-us\/research\/publication\/retrospective-general-purpose-code-acceleration-with-limited-precision-analog-computation\/","title":{"rendered":"RETROSPECTIVE: General-Purpose Code Acceleration with Limited-Precision Analog Computation"},"content":{"rendered":"

When this paper was published in 2014, a large amount of research was focusing on specialization as a means to deliver energy efficiency. In this piece of work, we were searching for an alternative path to deliver significant efficiency gains while maintaining generality and applicability across domains. In order to do this, we relaxed some long-standing assumptions around exact computation and embraced approximation. A move towards approximation naturally warranted a revisit of analog computing, which presents an opportunity for energy efficiency gains of several orders of magnitude over digital computing when sufficient parallelization exists, though analog computing brings along many challenges (e.g. physical range limitations, non-idealities due to process variation, and noise), which have historically limited general applicability.<\/p>\n

One key insight of this work was identifying a synergy with neural networks, which allowed for a more fixed function, parallel design amenable to an analog implementation while maintaining generality, as neural networks can serve as universal function approximators. Ultimately, we took a neural approach to reconcile the application of analog circuits to general-purpose computing. Our paper proposed a limited-precision, analog neural accelerator (A-NPU), leveraging an important compile time technique [18] that transformed approximation-tolerant, general-purpose code sections to neural accelerator invocations. To improve accuracy given an analog implementation, we exposed certain analog hardware limitations to the compiler, which brought the opportunity to keep any analog-specific restrictions hidden from the programmer.<\/p>\n

What strikes us most in reflecting on this piece of work is how the environment in which this paper was written was so completely different than today\u2019s environment. In nine years, so much has changed. In an ideal world, with the passage of time, we would hopefully gain some clarity on whether the risks we took against consensus thinking were worthwhile. We are fortunate in this case to have some, but not complete, validation in the presence of hindsight.<\/p>\n

The interesting part of this work at the time was that it involved not one calculated risk but multiple risks taken at the same time that were contrary to the consensus approach. First, the paper was based heavily on the use of machine learning at a time when machine learning was not yet widely embraced by the architecture community. Next, it fell on us to make a case about the role of approximate computing and limited precision. And finally, we chose to include analog computing, which is in equal parts promising and challenging to successfully implement. As we look back on this paper, we can see that some of these risks were entirely appropriate to be taken, and, at least in the case of analog, some of the promise has yet to be fully realized.<\/p>\n","protected":false},"excerpt":{"rendered":"

When this paper was published in 2014, a large amount of research was focusing on specialization as a means to deliver energy efficiency. In this piece of work, we were searching for an alternative path to deliver significant efficiency gains while maintaining generality and applicability across domains. In order to do this, we relaxed some […]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"msr-content-type":[3],"msr-research-highlight":[],"research-area":[13556,13552],"msr-publication-type":[193721],"msr-product-type":[],"msr-focus-area":[],"msr-platform":[],"msr-download-source":[],"msr-locale":[268875],"msr-post-option":[],"msr-field-of-study":[246694,249619,246691],"msr-conference":[],"msr-journal":[],"msr-impact-theme":[264846],"msr-pillar":[],"class_list":["post-1041954","msr-research-item","type-msr-research-item","status-publish","hentry","msr-research-area-artificial-intelligence","msr-research-area-hardware-devices","msr-locale-en_us","msr-field-of-study-artificial-intelligence","msr-field-of-study-computer-architecture","msr-field-of-study-computer-science"],"msr_publishername":"ACM SIGARCH and IEEE TCCA","msr_edition":"","msr_affiliation":"","msr_published_date":"2023-6-1","msr_host":"","msr_duration":"","msr_version":"","msr_speaker":"","msr_other_contributors":"","msr_booktitle":"ISCA@50 25-Year Retrospective: 1996-2020","msr_pages_string":"","msr_chapter":"","msr_isbn":"","msr_journal":"","msr_volume":"","msr_number":"","msr_editors":"","msr_series":"","msr_issue":"","msr_organization":"","msr_how_published":"","msr_notes":"","msr_highlight_text":"","msr_release_tracker_id":"","msr_original_fields_of_study":"","msr_download_urls":"","msr_external_url":"","msr_secondary_video_url":"","msr_longbiography":"","msr_microsoftintellectualproperty":0,"msr_main_download":"","msr_publicationurl":"","msr_doi":"","msr_publication_uploader":[{"type":"url","viewUrl":"false","id":"false","title":"https:\/\/bpb-us-w2.wpmucdn.com\/sites.coecis.cornell.edu\/dist\/7\/587\/files\/2023\/06\/St_Amant_2014_General-Purpose.pdf","label_id":"243109","label":0}],"msr_related_uploader":"","msr_attachments":[],"msr-author-ordering":[{"type":"user_nicename","value":"Renee St. Amant","user_id":43080,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Renee St. Amant"},{"type":"text","value":"Amir Yazdanbakhsh","user_id":0,"rest_url":false},{"type":"text","value":"Jongse Park","user_id":0,"rest_url":false},{"type":"text","value":"Hadi Esmaeilzadeh","user_id":0,"rest_url":false},{"type":"text","value":"Arjang Hassibi","user_id":0,"rest_url":false},{"type":"text","value":"Luis Ceze","user_id":0,"rest_url":false},{"type":"user_nicename","value":"Doug Burger","user_id":31582,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Doug Burger"}],"msr_impact_theme":["Computing foundations"],"msr_research_lab":[],"msr_event":[],"msr_group":[],"msr_project":[],"publication":[],"video":[],"download":[],"msr_publication_type":"inbook","related_content":[],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1041954"}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-research-item"}],"version-history":[{"count":3,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1041954\/revisions"}],"predecessor-version":[{"id":1044576,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1041954\/revisions\/1044576"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=1041954"}],"wp:term":[{"taxonomy":"msr-content-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-content-type?post=1041954"},{"taxonomy":"msr-research-highlight","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-highlight?post=1041954"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=1041954"},{"taxonomy":"msr-publication-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publication-type?post=1041954"},{"taxonomy":"msr-product-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-product-type?post=1041954"},{"taxonomy":"msr-focus-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-focus-area?post=1041954"},{"taxonomy":"msr-platform","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-platform?post=1041954"},{"taxonomy":"msr-download-source","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-download-source?post=1041954"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=1041954"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=1041954"},{"taxonomy":"msr-field-of-study","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-field-of-study?post=1041954"},{"taxonomy":"msr-conference","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-conference?post=1041954"},{"taxonomy":"msr-journal","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-journal?post=1041954"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=1041954"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=1041954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}