Halide: A Language and Compiler for Optimizing Parallelism, Locality, and Recomputation in Image Processing Pipelines

Created by W.Langdon from gp-bibliography.bib Revision:1.4420

@InProceedings{Ragan-Kelley:2013:PLDI,
  author =       "Jonathan Ragan-Kelley and Connelly Barnes and 
                 Andrew Adams and Sylvain Paris and Fredo Durand and 
                 Saman Amarasinghe",
  title =        "Halide: A Language and Compiler for Optimizing
                 Parallelism, Locality, and Recomputation in Image
                 Processing Pipelines",
  booktitle =    "Proceedings of the 34th ACM SIGPLAN Conference on
                 Programming Language Design and Implementation",
  year =         "2013",
  pages =        "519--530",
  address =      "Seattle, Washington, USA",
  month =        jun # " 16-19",
  publisher =    "ACM",
  keywords =     "genetic algorithms, genetic programming, genetic
                 improvement, autotuning, compiler, domain specific
                 language, GPU, image processing, locality,
                 optimization, parallelism, redundant computation,
                 vectorization",
  isbn13 =       "978-1-4503-2014-6",
  acmid =        "2462176",
  URL =          "http://people.csail.mit.edu/jrk/halide-pldi13.pdf",
  DOI =          "doi:10.1145/2491956.2462176",
  size =         "12 pages",
  abstract =     "Image processing pipelines combine the challenges of
                 stencil computations and stream programs. They are
                 composed of large graphs of different stencil stages,
                 as well as complex reductions, and stages with global
                 or data-dependent access patterns. Because of their
                 complex structure, the performance difference between a
                 naive implementation of a pipeline and an optimized one
                 is often an order of magnitude. Efficient
                 implementations require optimization of both
                 parallelism and locality, but due to the nature of
                 stencils, there is a fundamental tension between
                 parallelism, locality, and introducing redundant
                 recomputation of shared values.

                 We present a systematic model of the trade-off space
                 fundamental to stencil pipelines, a schedule
                 representation which describes concrete points in this
                 space for each stage in an image processing pipeline,
                 and an optimizing compiler for the Halide image
                 processing language that synthesizes high performance
                 implementations from a Halide algorithm and a schedule.
                 Combining this compiler with stochastic search over the
                 space of schedules enables terse, composable programs
                 to achieve state-of-the-art performance on a wide range
                 of real image processing pipelines, and across
                 different hardware architectures, including multicores
                 with SIMD, and heterogeneous CPU+GPU execution. From
                 simple Halide programs written in a few hours, we
                 demonstrate performance up to 5 times faster than
                 hand-tuned C, intrinsics, and CUDA implementations
                 optimized by experts over weeks or months, for image
                 processing applications beyond the reach of past
                 automatic compilers.",
  notes =        "and an optimizing compiler for the Halide image
                 processing language... Autotuning Pipeline
                 Schedules

                 \cite{Mullapudi:2015:ASPLOS} says GA tool no longer
                 available",
}

Genetic Programming entries for Jonathan Ragan-Kelley Connelly Barnes Andrew Adams Sylvain Paris Fredo Durand Saman Amarasinghe

Citations