[polly] r261867 - Add Polly GSoC projects

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 25 06:17:11 PST 2016

Author: grosser
Date: Thu Feb 25 08:17:11 2016
New Revision: 261867

URL: http://llvm.org/viewvc/llvm-project?rev=261867&view=rev
Add Polly GSoC projects

These projects are just some first thoughts. Feel free to updated / add ideas
for further projects.


Modified: polly/trunk/www/content.css
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/www/content.css?rev=261867&r1=261866&r2=261867&view=diff
--- polly/trunk/www/content.css (original)
+++ polly/trunk/www/content.css Thu Feb 25 08:17:11 2016
@@ -24,7 +24,7 @@ h1, h2, h3, tt { color: #000 }
 h1 { padding-top:0px; margin-top:0px;}
 h2 { color:#333333; padding-top:0.5em; }
-h3 { padding-top: 0.5em; margin-bottom: -0.25em; color:#2d58b7}
+h3 { padding-top: 0.5em; color:#2d58b7}
 li { padding-bottom: 0.5em; }
 ul { padding-left:1.5em; }

Modified: polly/trunk/www/menu.html.incl
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/www/menu.html.incl?rev=261867&r1=261866&r2=261867&view=diff
--- polly/trunk/www/menu.html.incl (original)
+++ polly/trunk/www/menu.html.incl Thu Feb 25 08:17:11 2016
@@ -21,6 +21,7 @@ Optimizations</span></h2>
     <a href="/contributors.html">Contributors</a>
     <a href="/todo.html">TODO</a>
     <a href="/changelog.html">ChangeLog</a>
+    <a href="/projects.html">Open Projects</a>
   <div class="submenu">

Added: polly/trunk/www/projects.html
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/www/projects.html?rev=261867&view=auto
--- polly/trunk/www/projects.html (added)
+++ polly/trunk/www/projects.html Thu Feb 25 08:17:11 2016
@@ -0,0 +1,87 @@
+          "http://www.w3.org/TR/html4/strict.dtd">
+<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
+  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  <title>Polly - Polyhedral optimizations for LLVM</title>
+  <link type="text/css" rel="stylesheet" href="menu.css">
+  <link type="text/css" rel="stylesheet" href="content.css">
+  <script src="video-js/video.js" type="text/javascript" charset="utf-8"></script>
+  <script type="text/javascript">
+    VideoJS.setupAllWhenReady();
+  </script>
+  <!-- Include the VideoJS Stylesheet -->
+  <link rel="stylesheet" href="video-js/video-js.css" type="text/css" media="screen" title="Video JS">
+<div id="box">
+<!--#include virtual="menu.html.incl"-->
+<div id="content">
+  <!--*********************************************************************-->
+  <h1>Open Projects</h1>
+  <!--*********************************************************************-->
+  LLVM Polly keeps here a list of open projects which each of themselves would
+  be a great contribution to Polly. All of these projects are meant to be self
+  contained and should take a newcomer around 3-4 months of work. The projects
+  we propose are all suiteable as <a
+  href="https://developers.google.com/open-source/gsoc/">Google Summer of
+  Code</a> projects. In case you are interested in a Google Summer of code
+  project make sure to reach out via the Polly <a
+  href="http://groups.google.com/group/polly-dev">mailing list</a> early to
+  discuss your project proposal.
+  <h3>Integrate Polly with the LLVM vectorizers</h3>
+  Polly is not only a self-contained optimizer, but also provides a powerful
+  dependence and other program analyses. Currently, these analyses are only used
+  for our own optimizations. However, LLVM passes such as the loop vectorizer
+  would clearly benefit from having direct access to the available Polly
+  analyses. In this project, you would define in collaboration with the LLVM
+  community and considering existing dependence analysis interface a new
+  dependence analysis interface for Polly that allows passes to directly query
+  Polly analysis. Even though this project sounds straightforward at a first
+  glance, sorting out how to actually make this happen with the current and
+  the new pass managers, understanding how and when to invalidate the Polly
+  analysis and if dependence information can be computed on-demand make this
+  still a challenging project. If successful, this project may be a great way
+  to bring features of Polly to standard -O3 optimizations.
+  <h3>Register tiling to obtain fast BLAS kernels with Polly</h3>
+  Even though Polly is already able to speep up compute kernels significantly,
+  when comparing to the best BLAS routines we still are at least one order of
+  magnitude off. In this project you will investigate what is needed to close
+  this performance gap. Earlier investigations have shown that register tiling
+  is one important piece towards this goal. In combination with good tile size
+  models and some back-end work, this project is shooting to make common blas
+  operations, but also many non-blas kernels competitive with vendor math
+  libraries and outperforming the code icc/gcc currently generate.
+  <h3>Polly support for Julia - First steps</h3>
+  <a href="http://julialang.org/">Julia</a> is a new matlab style programming
+  language that provides C like performance for scientific computing. Even
+  though Julia also translates to LLVM-IR, parsing and optimizing Julia code
+  poses new challenges that currently prevent Polly from optimizing Julia
+  code despite the clear need for optimizations such as loop-tiling for Julia.
+  In this project you will -- starting from first proof-of-concept patches --
+  integrate Polly into Julia and ensure that Julia code can benefit from the
+  same high-level loop optimizations as todays C code already does. If time
+  permits, making Polly's recent bound-check elimination logic work in Julia
+  code would allow the optimization of Julia code, even if save out-of-bound
+  checking is used.
+  <h3>Interactive Polyhedral Web Calculator</h3>
+  At the core of Polly we use the isl math library. isl allows us to describe
+  loop transformations with relatively simple higher level operations while
+  still providing the full expressiveness of integer polyhedra. To understand
+  and describe the transformations we are performing it is often very convenient
+  to quickly script example transformations in a low-level language like python
+  and then subsequently. isl already comes with a python binding generator, with
+  pypyjs there is a python interpreter for the web and with emscriptem isl
+  itself can also be compiled to javascript. In this project you combine all
+  these components to obtain an interactive polyhedral web calculator, that uses
+  latest web technology to nicely illustrate the integer polyhedra you obtain.

More information about the llvm-commits mailing list