Show simple item record

dc.contributor.authorAdams, Andrew
dc.contributor.authorParis, Sylvain
dc.contributor.authorLevoy, Marc
dc.contributor.authorRagan-Kelley, Jonathan Millar
dc.contributor.authorAmarasinghe, Saman P.
dc.contributor.authorDurand, Fredo
dc.date.accessioned2014-03-28T13:45:27Z
dc.date.available2014-03-28T13:45:27Z
dc.date.issued2012-07
dc.identifier.issn07300301
dc.identifier.urihttp://hdl.handle.net/1721.1/85942
dc.description.abstractUsing existing programming tools, writing high-performance image processing code requires sacrificing readability, portability, and modularity. We argue that this is a consequence of conflating what computations define the algorithm, with decisions about storage and the order of computation. We refer to these latter two concerns as the schedule, including choices of tiling, fusion, recomputation vs. storage, vectorization, and parallelism. We propose a representation for feed-forward imaging pipelines that separates the algorithm from its schedule, enabling high-performance without sacrificing code clarity. This decoupling simplifies the algorithm specification: images and intermediate buffers become functions over an infinite integer domain, with no explicit storage or boundary conditions. Imaging pipelines are compositions of functions. Programmers separately specify scheduling strategies for the various functions composing the algorithm, which allows them to efficiently explore different optimizations without changing the algorithmic code. We demonstrate the power of this representation by expressing a range of recent image processing applications in an embedded domain specific language called Halide, and compiling them for ARM, x86, and GPUs. Our compiler targets SIMD units, multiple cores, and complex memory hierarchies. We demonstrate that it can handle algorithms such as a camera raw pipeline, the bilateral grid, fast local Laplacian filtering, and image segmentation. The algorithms expressed in our language are both shorter and faster than state-of-the-art implementations.en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (Grant 0964004)en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (Grant 0964218)en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (Grant 0832997)en_US
dc.description.sponsorshipUnited States. Dept. of Energy (Award DE-SC0005288)en_US
dc.description.sponsorshipCognex Corporationen_US
dc.description.sponsorshipAdobe Systemsen_US
dc.language.isoen_US
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/2185520.2185528en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceMIT web domainen_US
dc.titleDecoupling algorithms from schedules for easy optimization of image processing pipelinesen_US
dc.typeArticleen_US
dc.identifier.citationJonathan Ragan-Kelley, Andrew Adams, Sylvain Paris, Marc Levoy, Saman Amarasinghe, and Fredo Durand. 2012. Decoupling algorithms from schedules for easy optimization of image processing pipelines. ACM Trans. Graph. 31, 4, Article 32 (July 2012), 12 pages.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.contributor.mitauthorRagan-Kelley, Jonathan Millaren_US
dc.contributor.mitauthorAdams, Andrewen_US
dc.contributor.mitauthorAmarasinghe, Saman P.en_US
dc.contributor.mitauthorDurand, Fredoen_US
dc.relation.journalACM Transactions on Graphicsen_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dspace.orderedauthorsRagan-Kelley, Jonathan; Adams, Andrew; Paris, Sylvain; Levoy, Marc; Amarasinghe, Saman; Durand, Fredoen_US
dc.identifier.orcidhttps://orcid.org/0000-0001-9919-069X
dc.identifier.orcidhttps://orcid.org/0000-0002-7231-7643
mit.licenseOPEN_ACCESS_POLICYen_US
mit.metadata.statusComplete


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record