2013
DOI: 10.1145/2499370.2462176
|View full text |Cite
|
Sign up to set email alerts
|

Halide

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 s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
27
0

Year Published

2015
2015
2022
2022

Publication Types

Select...
7
2

Relationship

1
8

Authors

Journals

citations
Cited by 378 publications
(27 citation statements)
references
References 26 publications
(30 reference statements)
0
27
0
Order By: Relevance
“…Many of these contain some degree of autotuning functionality to achieve good performance across different platforms [50]. Halide [39] was designed for image processing. [52].…”
Section: Domain-specific Languagesmentioning
confidence: 99%
“…Many of these contain some degree of autotuning functionality to achieve good performance across different platforms [50]. Halide [39] was designed for image processing. [52].…”
Section: Domain-specific Languagesmentioning
confidence: 99%
“…From these DSL descriptions, a compiler can generate different code variants that can be tested in an online phase. An important application area for these approaches are stencil computations, see PATUS [24], Pochoir [25] and Halide [26] for approaches in this direction. All approaches mentioned above are application-specific, i.e., they have been developed for a specific application area and exploit specific properties of this application area.…”
Section: Related Workmentioning
confidence: 99%
“…The generation of different code variants is an important part of many autotuning approaches. The polytope model [30] and compiler-based approaches [26] are often used in this context. The resulting number of code variants can be large and efficient heuristic search strategies are important, including Simulated Annealing or Nelder-Mead [31].…”
Section: Related Workmentioning
confidence: 99%
“…They are computationally intense, and implementations often have to be highly optimized by experts, at great cost, to be usable in practice. The Halide programming language has proven to be a powerful tool for this task because it separates the algorithm -what you want to compute -from the schedule -how you want to compute it, including choices about memory locality, redundant computation, and parallelism [Ragan-Kelley et al 2012, 2013. While Halide makes it easy to try different schedules, writing schedules that achieve high performance is hard: it requires expertise in hardware architecture and optimization, and even then, the space of possible schedules is enormous and their performance can be difficult to predict.…”
Section: Introductionmentioning
confidence: 99%