Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems 2015
DOI: 10.1145/2694344.2694364
|View full text |Cite
|
Sign up to set email alerts
|

PolyMage

Abstract: 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 h… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
18
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
6
1
1

Relationship

0
8

Authors

Journals

citations
Cited by 105 publications
(18 citation statements)
references
References 43 publications
0
18
0
Order By: Relevance
“…Evaluation of the optimization selection is supported by a large selection of benchmarks from different domains: Mälardalen benchmark suite, that are reference benchmarks for WCET estimation [11]; Polybench benchmarks [12] for linear algebra, physics and statistics; MiBench [13] benchmarks for its applications in security and telecommunications; and PolyMage [14] for image processing. As this work focuses on optimization, we paid special attention to include complex kernels, which can be challenging for WCET estimation.…”
Section: Experimental Evaluation a Experimental Setupmentioning
confidence: 99%
“…Evaluation of the optimization selection is supported by a large selection of benchmarks from different domains: Mälardalen benchmark suite, that are reference benchmarks for WCET estimation [11]; Polybench benchmarks [12] for linear algebra, physics and statistics; MiBench [13] benchmarks for its applications in security and telecommunications; and PolyMage [14] for image processing. As this work focuses on optimization, we paid special attention to include complex kernels, which can be challenging for WCET estimation.…”
Section: Experimental Evaluation a Experimental Setupmentioning
confidence: 99%
“…Polyhedral techniques have also been tailored for domain-specific purposes. State-of-the-art examples include the PolyMage [46] DSL for image processing pipelines and the PENCIL approach to the construction of parallelizing and compilers for DSLs [5,9]. PolyMage is a clear illustration of the benefits of operating at a high level of abstraction, closer to the mathematics of the domain of interest: While GCC/Graphite and LLVM/Polly struggle to recover affine control and flow from low-level code, PolyMage natively captures patterns amenable to domain-specific optimization, such as stencil-specific overlapped tiling with or without recomputation, and cache-conscious fusion and tiling heuristics; it also offers a more productive programming experience for end-users.…”
Section: Related Workmentioning
confidence: 99%
“…The polyhedral framework of compilation emerged as a natural candidate to design a versatile optimization flow satisfying the needs of the domain and target hardware. It has demonstrated strong results in domain-specific optimization [5,9,20,46], expert-driven meta-programming [6,15,26], embedding of third-party library code [40], and automatic generation of efficient code for heterogeneous targets [5,7,43,51,70,77]. We attempt to take the best of both worlds, defining a domain-specific language rich enough to capture full sub-graphs of modern Machine Learning (ML) models while enabling aggressive compilation competitive to native libraries.…”
Section: Introductionmentioning
confidence: 99%
“…The latter may be implemented by either splitting the shaded region of overlapped tiles or introducing more advanced scheduling constraints on the bounding faces of a tile. No implementations of overlapped tiling are known to exist in generalpurpose compilers, although the technique was implemented in domain-specific compilers for image processing pipelines [24,31] or stencil code generator for GPU [19,37]. There was also an implementation of split tiling for iterated stencils on GPU architectures [15].…”
Section: Related Workmentioning
confidence: 99%
“…PolyMage [24] is the state-of-the-art polyhedral compilation framework automatically generating high-performance schedules for such image processing pipelines, benefiting from the full inter-tile parallelism enabled by overlapped tiling [21]. It takes as input a domain-specific language (DSL) inspired by Halide [31], computes schedules competitive with manually written ones for image processing pipelines, and generates high-performance imperative code.…”
Section: Introductionmentioning
confidence: 99%