Convolution Engine: Balancing Efficiency and Flexibility in Specialized Computing

Wajahat Qadeer

Rehan Hameed Stanford

Ofer Shacham

Preethi Venkatesan

Christos Kozyrakis Stanford

Mark Horowitz

Communications of the ACM (CACM), 2015


Abstract

General-purpose processors, while tremendously versatile, pay a huge cost for their flexibility by wasting over 99% of the energy in programmability overheads. Reducing this waste requires tuning data storage and compute structures and their connectivity to the data-flow and data-locality patterns in the algorithms.

The Convolution Engine (CE) is a programmable processor specialized for the convolution-like data-flow prevalent in computational photography, computer vision, and video processing. CE achieves energy efficiency by capturing data-reuse patterns, eliminating data transfer overheads, and enabling a large number of operations per memory access.