Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. Compiling High Performance Recursive Filters

Compiling High Performance Recursive Filters

Thumbnail Image
Download
Name

recfilter.pdf

Description
Accepted version
Size

3.55 MB

Format

Adobe PDF

Checksum (MD5)

8b84e78fac0a686bd694469314be1d65

sword-2019-05-29T12:04:29.original.xml (130 B)
Original SWORD entry document
Author(s)
Chaurasia, Gaurav
•
Ragan-Kelley, Jonathan
•
Paris, Sylvain
•
Drettakis, George
•
Durand, Fredo
Date Issued
2015
Publisher
Association for Computing Machinery (ACM)
Citation
Chaurasia, Gaurav, Ragan-Kelley, Jonathan, Paris, Sylvain, Drettakis, George and Durand, Fredo. 2015. "Compiling High Performance Recursive Filters."
Version
Author's final manuscript
Abstract
© 2015 ACM. Infinite impulse response (IIR) or recursive filters, are essential for image processing because they turn expensive large-footprint convolutions into operations that have a constant cost per pixel regardless of kernel size. However, their recursive nature constrains the order in which pixels can be computed, severely limiting both parallelism within a filter and memory locality across multiple filters. Prior research has developed algorithms that can compute IIR filters with image tiles. Using a divide-and-recombine strategy inspired by parallel prefix sum, they expose greater parallelism and exploit producer-consumer locality in pipelines of IIR filters over multidimensional images. While the principles are simple, it is hard, given a recursive filter, to derive a corresponding tile-parallel algorithm, and even harder to implement and debug it. We show that parallel and locality-aware implementations of IIR filter pipelines can be obtained through program transformations, which we mechanize through a domain-specific compiler. We show that the composition of a small set of transformations suffices to cover the space of possible strategies. We also demonstrate that the tiled implementations can be automatically scheduled in hardwarespecific manners using a small set of generic heuristics. The programmer specifies the basic recursive filters, and the choice of transformation requires only a few lines of code. Our compiler then generates high-performance implementations that are an order of magnitude faster than standard GPU implementations, and outperform hand tuned tiled implementations of specialized algorithms which require orders of magnitude more programming effort-a few lines of code instead of a few thousand lines per pipeline.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
http://creativecommons.org/licenses/by-nc-sa/4.0/
Persistent DSpace Link
https://hdl.handle.net/1721.1/137548
DOI of Published Version
https://doi.org/10.1145/2790060.2790063
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.