A practical automatic polyhedral parallelizer and locality optimizer
By Uday Bondhugula, Albert Hartono, J. Ramanujam, Ponnuswamy Sadayappan. ACM-SIGPLAN Symposium on Programming Language Design and Implementation, 2008
1,095 citations recorded by the source corpus.
Subfields: Computer Networks and Communications, Hardware and Architecture
View Paper: https://www.semanticscholar.org/paper/f0f4757aa2f923a349e8357e73850a78e9b80fee
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- Henk Corporaal
- Cedric Nugteren
- Koushik Sen
- Arvind Krishnamurthy
- Francky Catthoor
- Shoaib Kamil
- Tushar Krishna
- Saman P. Amarasinghe
In Hardware and Architecture
- Albert Cohen
- Andrew Adams
- Nicolas Vasilache
- Oleksandr Zinenko
- Luis Ceze
- Henk Corporaal
- José Ignacio Gómez
- Francky Catthoor
Citations in the corpus
- Learning to Optimize Tensor Programs (2018, methodology): “Polyhedral models [5, 42, 41] are a popular choice for Se; they model the loop domains as integer linear constraints.”
- Polly - Performing Polyhedral Optimizations on a Low-Level Intermediate Representation (2012, background): “Furthermore, Bondhugula et al. [6] created PLuTo, an advanced data locality optimizer that exposes thread and SIMD parallelism simultaneously.”
- PATUS: A Code Generation and Autotuning Framework for Parallel Iterative Stencil Computations on Modern Microarchitectures (2011, methodology): “The polyhedral model is used for both determining good tile sizes as well for auto-parallelization [12].”
- Bones (2014, methodology): “Apart from C-to-CUDA [Baskaran et al. 2010] (limited to kernel generation only) and Pluto [Bondhugula et al. 2008] (evolved into PPCG), these are the only fully automatic compilers generating CUDA code directly from C. Tiling for PPCG is set to default to keep the results fully automatic for all…”
- Understanding Reuse, Performance, and Hardware Cost of DNN Dataflow: A Data-Centric Approach (2018, background): “Compute-centric representation including the polyhedral model has been a huge help to compilers in estimating reuses in guiding optimal loop transformations for both parallelism and locality [8, 32, 36, 37, 39, 40, 45].”
- Tensor Comprehensions: Framework-Agnostic High-Performance Machine Learning Abstractions (2018, methodology): “The polyhedral framework is a powerful abstraction for the analysis and transformation of loop nests, and a number of tools and libraries have been developed to realize its benefits [26, 12, 85, 11, 92], including components for production compilers such as GCC (Graphite) and LLVM (Polly).”
- Memory-centric accelerator design for Convolutional Neural Networks (2013, methodology): “This idea is further extended with multiple transformations as the polyhedral model from [14].”
- Ansor : Generating High-Performance Tensor Programs for Deep Learning (2020, methodology): “The polyhedral compilation model [8,52,53] formulates the optimization of programs as an integer linear programming (ILP) problem.”
- CodeScope: An Execution-based Multilingual Multitask Multidimensional Benchmark for Evaluating LLMs on Code Understanding and Generation (2023, methodology): “Much research in this category works on optimizing loops using the polyhedral model (Bondhugula et al., 2008; Bastoul, 2004).”
- MLIR: A Compiler Infrastructure for the End of Moore's Law (2020, background): “…[19, 41, 5, 14], and fully automatic flows such as PolyMage [28], Tensor Com-prehensions [52], Stripe [58], Diesel [16], Tiramisu [4] and their underlying polyhedral compilation techniques [17, 54, 8, 55] could co-exist as different code generation paths within an MLIR-based compilation framework.”
- Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code (2018, methodology): “Some of them are designed for specific domains (such as Tensor Comprehensions and PolyMage), while Pluto, PENCIL, and Polly are more general.”
- MLIR: Scaling Compiler Infrastructure for Domain Specific Computation (2021, positive): “Similarly, the loop nest metaprogramming techniques from Halide [50] and TVM [49], earlier loop nest metaprogramming [26], [51], [52], [53], and automatic flows such as PolyMage [54], Tensor Comprehensions [29], Stripe [55], Diesel [56], Tiramisu [57] and their underlying polyhedral compilation techn”
- Polyhedral parallel code generation for CUDA (2013, methodology): “, for computing the affine functions Si, we refer to [Bondhugula et al. 2008a].”