ePrints@IIScePrints@IISc Home | About | Browse | Latest Additions | Advanced Search | Contact | Help

PolyMage: Automatic Optimization for Image Processing Pipelines

Mullapudi, Ravi Teja and Vasista, Vinay and Bondhugula, Uday (2015) PolyMage: Automatic Optimization for Image Processing Pipelines. In: ACM SIGPLAN NOTICES, 50 (4). pp. 429-443.

[img] PDF
ACM_Sig_Not_40-4_429_2015.pdf - Published Version
Restricted to Registered users only

Download (1MB) | Request a copy
Official URL: http://dx.doi.org/10.1145/2694344.2694364


This paper presents the design and implementation of PolyMage, a domain-specific language and compiler for image processing pipelines. An image processing pipeline can be viewed as a graph of interconnected stages which process images successively. Each stage typically performs one of point-wise, stencil, reduction or data-dependent operations on image pixels. Individual stages in a pipeline typically exhibit abundant data parallelism that can be exploited with relative ease. However, the stages also require high memory bandwidth preventing effective utilization of parallelism available on modern architectures. For applications that demand high performance, the traditional options are to use optimized libraries like OpenCV or to optimize manually. While using libraries precludes optimization across library routines, manual optimization accounting for both parallelism and locality is very tedious. The focus of our system, PolyMage, is on automatically generating high-performance implementations of image processing pipelines expressed in a high-level declarative language. Our optimization approach primarily relies on the transformation and code generation capabilities of the polyhedral compiler framework. To the best of our knowledge, this is the first model-driven compiler for image processing pipelines that performs complex fusion, tiling, and storage optimization automatically. Experimental results on a modern multicore system show that the performance achieved by our automatic approach is up to 1.81x better than that achieved through manual tuning in Halide, a state-of-the-art language and compiler for image processing pipelines. For a camera raw image processing pipeline, our performance is comparable to that of a hand-tuned implementation.

Item Type: Journal Article
Additional Information: Copy right for this article belongs to the ASSOC COMPUTING MACHINERY, 2 PENN PLAZA, STE 701, NEW YORK, NY 10121-0701 USA
Keywords: Domain-specific language; image processing; polyhedral optimization; locality; parallelism; tiling; multicores; vectorization
Department/Centre: Division of Electrical Sciences > Computer Science & Automation
Date Deposited: 02 Apr 2016 06:15
Last Modified: 02 Apr 2016 06:15
URI: http://eprints.iisc.ac.in/id/eprint/53564

Actions (login required)

View Item View Item