Sketching Computation With Stochastic Processing Engines

Abstract

This article explores how to leverage stochastic principles to gracefully exploit partial computation results, hence achieving quality-scalable embedded computing. Our work is inspired by the concept of incremental sketching frequently found in artistic rendering, where the drawing procedure consists of a series of steps, each gradually improving the quality of results. The essence of our approach is to first encode input signals as probability density functions (PDFs), then perform stochastic computing operations on all signals in the probabilistic domain, and finally decode output signals by estimating the PDF of these resulting random samples. Although numerous approximate computing schemes exist, such as inaccurate adders and multipliers that reduce bit width or weaken logic circuit design, none of them can seamlessly improve computing accuracy incrementally without making any changes to the computing hardware at runtime. Furthermore, in conventional embedded computing, a sudden shortage of computing resources, such as premature termination, often means a complete computing failure and totally unusable results. Our sketching computing scheme can readily trade off between the quality of results and computing efforts without modifying its circuit design. To validate our proposed architecture design, we have implemented a proof-of-concept computation sketching engine based on a probabilistic convolver using a Virtex-6 FPGA device. Using three widely deployed image processing applications - image correspondence, image sharpening, and edge detection - we have demonstrated that important embedded computing applications can indeed be "sketched" in a graceful manner using roughly one third the hardware and one fifth the energy compared to the traditional multiplier-based computing method.

Publication Date

4-1-2017

Publication Title

ACM Journal on Emerging Technologies in Computing Systems

Volume

13

Issue

3

Document Type

Article

Personal Identifier

scopus

DOI Link

https://doi.org/10.1145/3007652

Socpus ID

85018488568 (Scopus)

Source API URL

https://api.elsevier.com/content/abstract/scopus_id/85018488568

This document is currently not available here.

Share

COinS