Measuring Compute-Reuse Opportunities for Video Processing Acceleration
Increases in bandwidth for mobile and land-line networks enables devices to communicate video at higher image and audio resolution. Processing these video streams is of interest for a wide-ranging collection of applications including robotic recognition and navigation, video security surveillance, action recognition and augmented virtual reality. The advent of massively parallel Graphical Processing Units (GPUs) has met many computing challenges in processing video in real time. Yet, GPU computing works best when the algorithm and structure of the image data can be regularized into locally-independent compute threads. When these regularity constraints do not hold or if the computational complexity of the local thread is high, GPU computing solutions can be overwhelmed by the computational task at hand. This article provides initial research results to explore an alternative approach for computation classically referred to as “memoization.” Here input and output values of computationally expensive functions are stored on a “memo” Look-Up Table (LUT) and when an input re-occurs, the corresponding output value is taken from the LUT without computation. Research work implements a memoization system to investigate the extent of compute re-use that exists within streaming video data. Insights are provided specifying new techniques that efficiently transform traditional memoization approaches into approximate memoization methods which open up new design spaces to explore the tradeoff between accuracy and computational cost. Here one may enhance compute re-use by allowing similar input values to map to the same output having an end-effect similar to approximate computing. Experimental results for 2D convolution (stencil() function) on data from six videos shows reuse of 50% with no loss in the computation accuracy. Our experimental results also show approximate memoization increases reuse to rates ranging from 75% up to 99%.