Convolution Engine: Balancing Efficiency and Flexibility in Specialized Computing
Communications of the ACM (CACM), 2015
DOI: 10.1145/2735841
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.