llvm-project/polly/www/publications.html

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

237 lines
8.3 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Polly - Publications</title>
<link type="text/css" rel="stylesheet" href="menu.css">
<link type="text/css" rel="stylesheet" href="content.css">
</head>
<body>
2013-12-20 06:50:10 +08:00
<div id="box">
<!--#include virtual="menu.html.incl"-->
<div id="content">
<!--*********************************************************************-->
<h1>Publications</h1>
<!--*********************************************************************-->
<h2> Publications about polyhedral compilation </h2>
<a href="https://polyhedral.info/publications.html">polyhedral.info</a> has a
large list of publications related to polyhedral compilation. They are very
useful to get an idea of the latest developments in this area of compilation
as well as to understand what kind of optimizations can be built on top of
Polly.
<h2> Citing Polly</h2>
The canonical publication to cite Polly is:
<p>
<em>Polly - Performing polyhedral optimizations on a low-level intermediate
representation </em><br />
Tobias Grosser, Armin Groesslinger, Christian Lengauer<br />
Parallel Processing Letters 2012 22:04<br />
<a href="https://www.grosser.es#pub-Polly">Paper</a>
</p>
<h2> Publications involving Polly </h2>
<h3> 2016 </h3>
<ul>
<li><em>Loopy: Programmable and Formally Verified Loop Transformations</em><br />
Kedar Namjoshi and Nimit Singhania<br />
23rd Static Analysis Symposium (SAS 2016)<br />
<a href="https://link.springer.com/chapter/10.1007/978-3-662-53413-7_19">Paper</a>
</li>
<li><em>Input Space Splitting for OpenCL</em><br />
Simon Moll, Johannes Doerfert and Sebastian Hack<br />
25th International Conference on Compiler Construction (CC 2016)<br />
</li>
<li><em>Parallelisation automatique de programmes scientifiques pour systems
distribues
</em><br />
Felix-Antoine Quellet<br />
Master Thesis, Universite de Sherbrooke<br />
<a
href="https://savoirs.usherbrooke.ca/bitstream/handle/11143/8171/Ouellet_Felix_Antoine_MSc_2016.pdf?sequence=4">Thesis</a>
</li>
</ul>
<h3> 2015 </h3>
<ul>
AST Generation Paper published in TOPLAS The July issue of TOPLAS contains a 50 page discussion of the AST generation techniques used in Polly. This discussion gives not only an in-depth description of how we (re)generate an imperative AST from our polyhedral based mathematical program description, but also gives interesting insights about: - Schedule trees: A tree-based mathematical program description that enables us to perform loop transformations on an abstract level, while issues like the generation of the correct loop structure and loop bounds will be taken care of by our AST generator. - Polyhedral unrolling: We discuss techniques that allow the unrolling of non-trivial loops in the context of parameteric loop bounds, complex tile shapes and conditionally executed statements. Such unrolling support enables the generation of predicated code e.g. in the context of GPGPU computing. - Isolation for full/partial tile separation: We discuss native support for handling full/partial tile separation and -- in general -- native support for isolation of boundary cases to enable smooth code generation for core computations. - AST generation with modulo constraints: We discuss how modulo mappings are lowered to efficient C/LLVM code. - User-defined constraint sets for run-time checks We discuss how arbitrary sets of constraints can be used to automatically create run-time checks that ensure a set of constrainst actually hold. This feature is very useful to verify at run-time various assumptions that have been taken program optimization. Polyhedral AST generation is more than scanning polyhedra Tobias Grosser, Sven Verdoolaege, Albert Cohen ACM Transations on Programming Languages and Systems (TOPLAS), 37(4), July 2015 llvm-svn: 245157
2015-08-15 17:34:33 +08:00
<li><em>Polyhedral AST generation is more than scanning polyhedra</em><br />
Tobias Grosser, Sven Verdoolaege, Albert Cohen<br />
ACM Transations on Programming Languages and Systems (TOPLAS), 37(4), July
2015<br />
<a href="https://www.grosser.es#pub-polyhedral-AST-generation">Paper</a>
AST Generation Paper published in TOPLAS The July issue of TOPLAS contains a 50 page discussion of the AST generation techniques used in Polly. This discussion gives not only an in-depth description of how we (re)generate an imperative AST from our polyhedral based mathematical program description, but also gives interesting insights about: - Schedule trees: A tree-based mathematical program description that enables us to perform loop transformations on an abstract level, while issues like the generation of the correct loop structure and loop bounds will be taken care of by our AST generator. - Polyhedral unrolling: We discuss techniques that allow the unrolling of non-trivial loops in the context of parameteric loop bounds, complex tile shapes and conditionally executed statements. Such unrolling support enables the generation of predicated code e.g. in the context of GPGPU computing. - Isolation for full/partial tile separation: We discuss native support for handling full/partial tile separation and -- in general -- native support for isolation of boundary cases to enable smooth code generation for core computations. - AST generation with modulo constraints: We discuss how modulo mappings are lowered to efficient C/LLVM code. - User-defined constraint sets for run-time checks We discuss how arbitrary sets of constraints can be used to automatically create run-time checks that ensure a set of constrainst actually hold. This feature is very useful to verify at run-time various assumptions that have been taken program optimization. Polyhedral AST generation is more than scanning polyhedra Tobias Grosser, Sven Verdoolaege, Albert Cohen ACM Transations on Programming Languages and Systems (TOPLAS), 37(4), July 2015 llvm-svn: 245157
2015-08-15 17:34:33 +08:00
</li>
<li><em>On recovering multi-dimensional arrays in Polly</em><br />
Tobias Grosser, Sebastian Pop, J. Ramanujam, P. Sadayappan <br />
Impact2015 at HiPEAC, Amsterdam, The Netherlands<br />
Slides & Paper: <a href="http://impact.gforge.inria.fr/impact2015/">Impact 2015</a>
</li>
<li><em>Polly's polyhedral scheduling in the presence of reductions </em><br />
Johannes Doerfert, Kevin Streit, Sebastian Hack, Zino Benaissa<br />
Impact2015 at HiPEAC, Amsterdam, The Netherlands<br />
Slides & Paper: <a href="http://impact.gforge.inria.fr/impact2015/">Impact 2015</a>
</li>
</ul>
<h3> 2014 </h3>
<ul>
<li><em>
Lattice QCD Optimization and Polytopic Representations of Distributed Memory </em><br />
Michael Kruse<br />
Doctoral Thesis, Ecole doctorale Informatique de Paris-Sud<br />
<a href="https://www.theses.fr/2014PA112198">Thesis</a>
</li>
</ul>
<h3> 2012 </h3>
<ul>
<li><em>KernelGen - a prototype of auto-parallelizing Fortran/C compiler for NVIDIA GPUs</em><br />
Dmitry Mikushin, Nikolay Likhogrud, Hou Yunqing, Sergey Kovylov<br />
Multi-core Workshop 2012, NCAR, Boulder, CO<br /><a
href="publications/kernelgen-ncar-2012-slides.pdf">Slides</a>
</li>
<li><em>KernelGen - a toolchain for automatic GPU-centric applications porting</em><br />
Nikolay Likhogrud, Dmitry Mikushin, Andrew Adinets<br />
Parallel Computational Technologies (PCT) 2012, Novosibirsk<br /><a
href="publications/kernelgen-pavt-2012-slides.pdf">Slides</a>
</li>
</ul>
<h3> 2011 </h3>
<ul>
<li><em>Polly - First Successful Optimizations - How to proceed?</em><br />
Tobias Grosser, Ragesh A<br />
LLVM Developer Meeting 2011<br /><a
href="https://llvm.org/devmtg/2011-11/Grosser_PollyOptimizations.pdf">Slides</a>, <a
href="https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov">Video
(Computer)</a>, <a
href="https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4">Video
(Mobile)</a></li>
<li><em>A Framework for Automatic OpenMP Code Generation</em><br />
Raghesh A<br />
Masters Thesis (May 2011)<br />
<a
href="publications/raghesh-a-masters-thesis.pdf">Thesis</a>
</li>
<li><em>Enabling Polyhedral Optimizations in LLVM</em><br />
Tobias Grosser<br />
Diploma Thesis (April 2011)<br />
<a
href="publications/grosser-diploma-thesis.pdf">Thesis</a>
</li>
<li><em>Polly - Polyhedral Optimization in LLVM</em><br />
Tobias Grosser, Hongbin Zheng, Ragesh Aloor, Andreas Simb&uuml;rger, Armin
Gr&ouml;&szlig;linger, Louis-No&euml;l Pouchet<br />
IMPACT at CGO 2011 <br />
<a
href="publications/grosser-impact-2011.pdf">Paper</a>, <a
href="publications/grosser-impact-2011-slides.pdf">Slides </a>
</li>
</ul>
<h3> 2010 </h3>
<ul>
<li><em>Polly - Polyhedral Transformations for LLVM</em><br />
Tobias Grosser, Hongbin Zheng<br />
LLVM Developer Meeting 2010<br /><a
href="https://llvm.org/devmtg/2010-11/Grosser-Polly.pdf">Slides</a>, <a
href="https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4">Video
(Computer)</a>, <a
href="https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4">Video
(Mobile)</a></li>
</ul>
<h2>Publications used within Polly</h2>
<h3>Polyhedral library</h3>
<ul>
<li><em>isl: An Integer Set Library for the Polyhedral Model </em><br />
Sven Verdoolaege<br />
ICMS 2010
</li>
</ul>
<h3>Optimization</h3>
<ul>
<li><em>A Practical Automatic Polyhedral Parallelizer and Locality Optimizer
</em><br />
Uday Bondhugula, Alberto Hartono, J. Ramanujam, P. Sadayappan<br />
PLDI 2008
</li>
2012-01-03 18:00:55 +08:00
<li><em>Effective Automatic Parallelization and Locality Optimization using
the Polyhedral Model
</em><br />
Uday Bondhugula<br />
PhD thesis 2008
</li>
</ul>
<h3>Code Generation</h3>
<ul>
<li><em>Code Generation in the Polyhedral Model Is Easier Than You Think</em>
<br />
C&eacute;dric Bastoul<br />
PACT 2004
</li>
</ul>
<h2>Interesting Publications</h2>
Publications that are not yet used or implemented in Polly, but that are
interesting to look at either to understand general concepts or to implement
the corresponding ideas. This list is incomplete and papers are added as
we hear about them.<br />
<h3>GPGPU</h3>
<ul>
<li><em>Automatic C-to-CUDA Code Generation for Affine Programs</em>
<br />
Muthu Manikandan Baskaran, J. Ramanujam and P. Sadayappan<br />
CC 2010
</li>
<li><em>Putting Automatic Polyhedral Compilation for GPGPU to Work<em>
Soufiane Baghdadi, Armin Gr&ouml;&szlig;linger, and Albert Cohen. <br />
In Proc. of Compilers for Parallel Computers (CPC), 2010.
</li>
</ul>
<h3>Vectorization</h3>
<ul>
<li><em>Joint Scheduling and Layout Optimization to Enable Multi-Level
Vectorization</em>
<br />
Nicolas Vasilache, Benoit Meister, Muthu Baskaran, Richard Lethin<br />
IMPACT 2012 (upcoming)
</li>
</ul>
<h3>Iterative Compilation</h3>
<ul>
<li><em>Iterative optimization in the polyhedral model: Part I,
one-dimensional time. </em>
<br />
Louis-No&euml;l Pouchet, C&eacute;dric Bastoul, Albert Cohen and Nicolas Vasilache<br />
CGO 2007
</li>
<li><em>Iterative optimization in the polyhedral model: Part II,
multidimensional time. </em>
<br />
Louis-No&euml;l Pouchet, C&eacute;dric Bastoul, Albert Cohen and John Cavazos<br />
PLDI 2008
</li>
</ul>
<h3>Non-static Control</h3>
<ul>
<li><em>The Polyhedral Model Is More Widely Applicable Than You Think</em>
<br />
Mohamed-Walid Benabderrahmane, Louis-No&euml;l Pouchet, Albert Cohen,
C&eacute;dric
Bastoul.<br />
CC 2010
</li>
</ul>
<h3>Source to Source Tools</h3>
<ul>
<li><em> Polyhedral Extraction Tool</em>
<br />
Sven Verdoolaege, Tobias Grosser<br />
IMPACT 2012
</li>
</ul>
</div>
2013-12-20 06:50:10 +08:00
</div>
</body>
</html>