annotate polly/www/projects.html @ 259:011663b4a808

remove duplicate setjmp in return continuation
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 12 Oct 2023 15:52:37 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
anatofuz
parents:
diff changeset
2 "http://www.w3.org/TR/html4/strict.dtd">
anatofuz
parents:
diff changeset
3 <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
anatofuz
parents:
diff changeset
4 <html>
anatofuz
parents:
diff changeset
5 <head>
anatofuz
parents:
diff changeset
6 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
anatofuz
parents:
diff changeset
7 <title>Polly - Polyhedral optimizations for LLVM</title>
anatofuz
parents:
diff changeset
8 <link type="text/css" rel="stylesheet" href="menu.css">
anatofuz
parents:
diff changeset
9 <link type="text/css" rel="stylesheet" href="content.css">
anatofuz
parents:
diff changeset
10 <script src="video-js/video.js" type="text/javascript" charset="utf-8"></script>
anatofuz
parents:
diff changeset
11 <script type="text/javascript">
anatofuz
parents:
diff changeset
12 VideoJS.setupAllWhenReady();
anatofuz
parents:
diff changeset
13 </script>
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 <!-- Include the VideoJS Stylesheet -->
anatofuz
parents:
diff changeset
16 <link rel="stylesheet" href="video-js/video-js.css" type="text/css" media="screen" title="Video JS">
anatofuz
parents:
diff changeset
17 </head>
anatofuz
parents:
diff changeset
18 <body>
anatofuz
parents:
diff changeset
19 <div id="box">
anatofuz
parents:
diff changeset
20 <!--#include virtual="menu.html.incl"-->
anatofuz
parents:
diff changeset
21 <div id="content">
anatofuz
parents:
diff changeset
22 <!--*********************************************************************-->
anatofuz
parents:
diff changeset
23 <h1>Open Projects</h1>
anatofuz
parents:
diff changeset
24 <!--*********************************************************************-->
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 LLVM Polly keeps here a list of open projects which each of themselves would
anatofuz
parents:
diff changeset
27 be a great contribution to Polly. All of these projects are meant to be self
anatofuz
parents:
diff changeset
28 contained and should take a newcomer around 3-4 months of work. The projects
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
29 we propose are all suitable as <a
150
anatofuz
parents:
diff changeset
30 href="https://developers.google.com/open-source/gsoc/">Google Summer of
anatofuz
parents:
diff changeset
31 Code</a> projects. In case you are interested in a Google Summer of code
anatofuz
parents:
diff changeset
32 project make sure to reach out via the Polly <a
anatofuz
parents:
diff changeset
33 href="https://groups.google.com/group/polly-dev">mailing list</a> early to
anatofuz
parents:
diff changeset
34 discuss your project proposal.
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 <h3>Integrate Polly with the LLVM vectorizers</h3>
anatofuz
parents:
diff changeset
37 Polly is not only a self-contained optimizer, but also provides a powerful
anatofuz
parents:
diff changeset
38 dependence and other program analyses. Currently, these analyses are only used
anatofuz
parents:
diff changeset
39 for our own optimizations. However, LLVM passes such as the loop vectorizer
anatofuz
parents:
diff changeset
40 would clearly benefit from having direct access to the available Polly
anatofuz
parents:
diff changeset
41 analyses. In this project, you would define in collaboration with the LLVM
anatofuz
parents:
diff changeset
42 community and considering existing dependence analysis interface a new
anatofuz
parents:
diff changeset
43 dependence analysis interface for Polly that allows passes to directly query
anatofuz
parents:
diff changeset
44 Polly analysis. Even though this project sounds straightforward at a first
anatofuz
parents:
diff changeset
45 glance, sorting out how to actually make this happen with the current and
anatofuz
parents:
diff changeset
46 the new pass managers, understanding how and when to invalidate the Polly
anatofuz
parents:
diff changeset
47 analysis and if dependence information can be computed on-demand make this
anatofuz
parents:
diff changeset
48 still a challenging project. If successful, this project may be a great way
anatofuz
parents:
diff changeset
49 to bring features of Polly to standard -O3 optimizations.
anatofuz
parents:
diff changeset
50
anatofuz
parents:
diff changeset
51 <h3>Register tiling to obtain fast BLAS kernels with Polly</h3>
anatofuz
parents:
diff changeset
52 Even though Polly is already able to speep up compute kernels significantly,
anatofuz
parents:
diff changeset
53 when comparing to the best BLAS routines we still are at least one order of
anatofuz
parents:
diff changeset
54 magnitude off. In this project you will investigate what is needed to close
anatofuz
parents:
diff changeset
55 this performance gap. Earlier investigations have shown that register tiling
anatofuz
parents:
diff changeset
56 is one important piece towards this goal. In combination with good tile size
anatofuz
parents:
diff changeset
57 models and some back-end work, this project is shooting to make common blas
anatofuz
parents:
diff changeset
58 operations, but also many non-blas kernels competitive with vendor math
anatofuz
parents:
diff changeset
59 libraries and outperforming the code icc/gcc currently generate.
anatofuz
parents:
diff changeset
60
anatofuz
parents:
diff changeset
61 <h3>Polly support for Julia - First steps</h3>
anatofuz
parents:
diff changeset
62 <a href="https://julialang.org/">Julia</a> is a new matlab style programming
anatofuz
parents:
diff changeset
63 language that provides C like performance for scientific computing. Even
anatofuz
parents:
diff changeset
64 though Julia also translates to LLVM-IR, parsing and optimizing Julia code
anatofuz
parents:
diff changeset
65 poses new challenges that currently prevent Polly from optimizing Julia
anatofuz
parents:
diff changeset
66 code despite the clear need for optimizations such as loop-tiling for Julia.
anatofuz
parents:
diff changeset
67 In this project you will -- starting from first proof-of-concept patches --
anatofuz
parents:
diff changeset
68 integrate Polly into Julia and ensure that Julia code can benefit from the
anatofuz
parents:
diff changeset
69 same high-level loop optimizations as todays C code already does. If time
anatofuz
parents:
diff changeset
70 permits, making Polly's recent bound-check elimination logic work in Julia
anatofuz
parents:
diff changeset
71 code would allow the optimization of Julia code, even if save out-of-bound
anatofuz
parents:
diff changeset
72 checking is used.
anatofuz
parents:
diff changeset
73 <h3>Interactive Polyhedral Web Calculator</h3>
anatofuz
parents:
diff changeset
74 At the core of Polly we use the isl math library. isl allows us to describe
anatofuz
parents:
diff changeset
75 loop transformations with relatively simple higher level operations while
anatofuz
parents:
diff changeset
76 still providing the full expressiveness of integer polyhedra. To understand
anatofuz
parents:
diff changeset
77 and describe the transformations we are performing it is often very convenient
anatofuz
parents:
diff changeset
78 to quickly script example transformations in a scripting language like python.
anatofuz
parents:
diff changeset
79 isl already comes with a python binding generator, with
anatofuz
parents:
diff changeset
80 pypyjs there is a python interpreter for the web and with emscriptem isl
anatofuz
parents:
diff changeset
81 itself can also be compiled to javascript. In this project you combine all
anatofuz
parents:
diff changeset
82 these components to obtain an interactive polyhedral web calculator, that uses
anatofuz
parents:
diff changeset
83 latest web technology to nicely illustrate the integer polyhedra you obtain.
anatofuz
parents:
diff changeset
84 </div>
anatofuz
parents:
diff changeset
85 </div>
anatofuz
parents:
diff changeset
86 </body>
anatofuz
parents:
diff changeset
87 </html>