2015
DOI: 10.1145/2786763.2694364
|View full text |Cite
|
Sign up to set email alerts
|

PolyMage

Abstract: This paper presents the design and implementation of Poly-Mage, 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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
17
0

Year Published

2017
2017
2024
2024

Publication Types

Select...
5
3
1

Relationship

0
9

Authors

Journals

citations
Cited by 64 publications
(17 citation statements)
references
References 50 publications
0
17
0
Order By: Relevance
“…Programming such an optimization manually is tedious and virtually impossible for large-scale codes. Traditional compilers and Polyhedral compilers [32,33,34,35,36,37,38] have been targeting this problem for many years, yet they are not applicable to problems of this size. Therefore in OPS we have implemented a feature that determines the crossloop dependencies and constructs execution schedules at runtime [24].…”
Section: Tilingmentioning
confidence: 99%
“…Programming such an optimization manually is tedious and virtually impossible for large-scale codes. Traditional compilers and Polyhedral compilers [32,33,34,35,36,37,38] have been targeting this problem for many years, yet they are not applicable to problems of this size. Therefore in OPS we have implemented a feature that determines the crossloop dependencies and constructs execution schedules at runtime [24].…”
Section: Tilingmentioning
confidence: 99%
“…As the SDFG provides general-purpose state machines with dataflow, all the above models can be fully represented within it, where SDFGs have the added benefit of encapsulating fine-grained data dependencies. [18,44,51,58,60,63] provide a fixed set of high-level program transformations, similar to those presented on SDFGs. In particular, Halide's schedules are by definition data-centric, and the same applies to polyhedral loop transformations in CHiLL.…”
Section: Related Workmentioning
confidence: 99%
“…The checks ensure that the array is indeed transient and not used in other instances of data access nodes. To avoid recomputing subsets (which may not be feasible to compute symbolically), if the transformation operates in strict mode, it only matches two arrays of the same shape (lines [51][52][53][54][55][56]. The transformation then operates in a straightforward manner, renaming the memlets to point to the second (not removed) array (lines 66-70) and redirecting dataflow edges to that data access node (lines 73-74).…”
Section: Polybench Flagsmentioning
confidence: 99%
“…However, it typically requires an initial loop nest to be provided by the programmer, whereas a DSL like Halide can describe the functionality at an abstract level. PolyMage [Mullapudi et al 2015] is another DSL which offers such an abstract description style. It automatically generates optimized loop nests using polyhedral optimization techniques.…”
Section: Heterogeneous Platform Programmabilitymentioning
confidence: 99%