-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
554 lines (530 loc) · 23.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
<!DOCTYPE HTML>
<!--
Highlights by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<title>Elevate - A Language for Describing Optimization Strategies</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
</head>
<body class="is-preload">
<!-- Header -->
<section id="header">
<header class="major">
<h1>Elevʌte</h1>
<p>A Language for Describing Optimization Strategies</p>
</header>
<div class="container">
<ul class="actions special">
<li><a href="#one" class="button primary scrolly">Explore</a></li>
</ul>
</div>
</section>
<!-- One -->
<section id="one" class="main special">
<div class="container">
<span class="image fit primary"><img src="images/gray.jpg" alt="" /></span>
<div class="content">
<header class="major">
<h2 style="font-family: 'Fira Sans', sans-serif; text-transform: uppercase;">Elevʌte</h2>
</header>
<p>
Optimizing programs to run efficiently on modern parallel hardware is hard but crucial for many applications.
The predominantly used imperative languages - like C or OpenCL - force the programmer to intertwine the code describing functionality and optimizations.
This results in a nightmare for portability which is particularly problematic given the accelerating trend towards specialized hardware devices to further increase efficiency.
</p>
<p>
Many emerging DSLs used in performance demanding domains such as deep learning, automatic differentiation, or image processing attempt to simplify or even fully automate the optimization process.
Using a high-level - often functional - language, programmers focus on describing functionality in a declarative way.
In some systems such as Halide or TVM, a separate schedule specifies how the program should be optimized.
Unfortunately, these schedules are not written in well-defined programming languages.
Instead, they are implemented as a set of ad-hoc predefined APIs that the compiler writers have exposed.
</p>
<p>
We present Elevate: a functional language for describing optimization strategies.
Elevate follows a tradition of prior systems used in different contexts that express optimization strategies as composition of rewrites.
In contrast to systems with scheduling APIs, in Elevate, programmers are not restricted to a set of built-in optimizations but define their own optimization strategies freely in a composable way.
We show how user-defined optimization strategies in Elevate enable the effective optimization of programs expressed in a functional data-parallel language demonstrating competitive performance with Halide and TVM.
</p>
<!--
<p>
Elevate allows to express optimization strategies as <font color="#f03d33">compositions of rewrite
rules</font>.
In contrast to systems with scheduling APIs, in Elevate, programmers are not restricted to a set of
built-in optimizations but define their own optimization strategies freely in a composable way.
Elevate is flexible
je show how user-defined optimization strategies in Elevate enable the effective optimization of
programs expressed in a functional data-parallel language demonstrating competitive performance with
Halide and TVM.
</p>
-->
</div>
<a href="#case-studies" class="goto-next scrolly">Next</a>
</div>
</section>
<!-- Two -->
<section id="case-studies" class="main special">
<div class="container">
<span class="image fit primary"><img src="images/gray.jpg" alt="" /></span>
<div class="content">
<header class="major">
<h2>Case Studies</h2>
</header>
<p>
So far, we have applied Elevate to three different domains.
We're currently working towards releasing Elevate as Open Source.
</p>
<ul class="icons-grid">
<li>
<span class="icon solid major"><i class="fa fa-pencil-alt" style="font-size: 300%;"></i></span>
<h3>Auto Differentiation</h3>
</li>
<li>
<span class="icon solid major"><i class="fa fa-camera-retro"
style="font-size: 300%;"></i></span>
<h3>Image Processing</h3>
</li>
<li>
<span class="icon solid major"><i class="fa fa-brain" style="font-size: 300%;"></i></span>
<h3>Deep Learning</h3>
</li>
<li>
<a href="https://github.com/elevate-lang">
<span class="icon solid major"><i class="fab fa-github" style="font-size: 300%;"></i></span>
<h3>GitHub</h3>
</a>
</li>
</ul>
</div>
<a href="#team" class="goto-next scrolly">Next</a>
</div>
</section>
<section id="team" class="main special">
<div class="container">
<span class="image fit primary"><img src="images/gray.jpg" alt="" /></span>
<div class="content">
<header class="major">
<h2>Team</h2>
</header>
<p>
Elevate is developed by PhD students and academics from the Universities of Münster, Germany and
Glasgow, Scotland.
</p>
<ul class="image-grid">
<li>
<a href="https://bastianhagedorn.github.io/">
<h3>Bastian Hagedorn</h3>
<img src="images/bastianH.jpg" alt="Bastian Hagedorn" style="width: 50%;" />
</a>
<p>
PhD student <br> University of Münster
</p>
</li>
<li>
<a href="https://michel.steuwer.info/">
<h3>Michel Steuwer</h3>
<img src="images/michel.jpg" alt="Michel Steuwer" style="width: 50%;" />
</a>
<p>
Lecturer <br> University of Glasgow
</p>
</li>
<li>
<a href="https://github.com/roger-uw">
<h3>Rongxiao Fu</h3>
<img src="images/rongxiao.png" alt="Rongxiao Fu" style="width: 50%;" />
</a>
<p>
PhD student <br> University of Glasgow
</p>
</li>
<li>
<a href="https://github.com/johanneslenfers">
<h3>Johannes Lenfers</h3>
<img src="images/johannes.jpg" alt="Johannes Lenfers" style="width: 50%;" />
</a>
<p>
PhD student <br> University of Münster
</p>
</li>
</ul>
</div>
<!-- <a href="#three" class="goto-next scrolly">Next</a> -->
</div>
</section>
<!-- Three -->
<!-- <section id="three" class="main special">
<div class="container">
<span class="image fit primary"><img src="images/pic03.jpg" alt="" /></span>
<div class="content">
<header class="major">
<h2>One more thing</h2>
</header>
<p>Aliquam ante ac id. Adipiscing interdum lorem praesent fusce pellentesque arcu feugiat. Consequat sed
ultricies rutrum. Sed adipiscing eu amet interdum lorem blandit vis ac commodo aliquet integer
vulputate phasellus lorem ipsum dolor lorem magna consequat sed etiam adipiscing interdum.</p>
</div>
<a href="#footer" class="goto-next scrolly">Next</a>
</div>
</section> -->
<!-- Four -->
<!--
<section id="four" class="main">
<div class="container">
<div class="content">
<header class="major">
<h2>Elements</h2>
</header>
<section>
<h4>Text</h4>
<p>This is <b>bold</b> and this is <strong>strong</strong>. This is <i>italic</i> and this is <em>emphasized</em>.
This is <sup>superscript</sup> text and this is <sub>subscript</sub> text.
This is <u>underlined</u> and this is code: <code>for (;;) { ... }</code>. Finally, <a href="#">this is a link</a>.</p>
<hr />
<header>
<h4>Heading with a Subtitle</h4>
<p>Lorem ipsum dolor sit amet nullam id egestas urna aliquam</p>
</header>
<p>Nunc lacinia ante nunc ac lobortis. Interdum adipiscing gravida odio porttitor sem non mi integer non faucibus ornare mi ut ante amet placerat aliquet. Volutpat eu sed ante lacinia sapien lorem accumsan varius montes viverra nibh in adipiscing blandit tempus accumsan.</p>
<header>
<h5>Heading with a Subtitle</h5>
<p>Lorem ipsum dolor sit amet nullam id egestas urna aliquam</p>
</header>
<p>Nunc lacinia ante nunc ac lobortis. Interdum adipiscing gravida odio porttitor sem non mi integer non faucibus ornare mi ut ante amet placerat aliquet. Volutpat eu sed ante lacinia sapien lorem accumsan varius montes viverra nibh in adipiscing blandit tempus accumsan.</p>
<hr />
<h2>Heading Level 2</h2>
<h3>Heading Level 3</h3>
<h4>Heading Level 4</h4>
<h5>Heading Level 5</h5>
<h6>Heading Level 6</h6>
<hr />
<h5>Blockquote</h5>
<blockquote>Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.</blockquote>
<h5>Preformatted</h5>
<pre><code>i = 0;
while (!deck.isInOrder()) {
print 'Iteration ' + i;
deck.shuffle();
i++;
}
print 'It took ' + i + ' iterations to sort the deck.';</code></pre>
</section>
<section>
<h4>Lists</h4>
<div class="row">
<div class="col-6 col-12-medium">
<h5>Unordered</h5>
<ul>
<li>Dolor pulvinar etiam.</li>
<li>Sagittis adipiscing.</li>
<li>Felis enim feugiat.</li>
</ul>
<h5>Alternate</h5>
<ul class="alt">
<li>Dolor pulvinar etiam.</li>
<li>Sagittis adipiscing.</li>
<li>Felis enim feugiat.</li>
</ul>
</div>
<div class="col-6 col-12-medium">
<h5>Ordered</h5>
<ol>
<li>Dolor pulvinar etiam.</li>
<li>Etiam vel felis viverra.</li>
<li>Felis enim feugiat.</li>
<li>Dolor pulvinar etiam.</li>
<li>Etiam vel felis lorem.</li>
<li>Felis enim et feugiat.</li>
</ol>
<h5>Icons</h5>
<ul class="icons">
<li><a href="#" class="icon brands fa-twitter"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands fa-facebook-f"><span class="label">Facebook</span></a></li>
<li><a href="#" class="icon brands fa-instagram"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands fa-github"><span class="label">Github</span></a></li>
</ul>
</div>
</div>
<h5>Actions</h5>
<ul class="actions">
<li><a href="#" class="button primary">Default</a></li>
<li><a href="#" class="button">Default</a></li>
</ul>
<ul class="actions small">
<li><a href="#" class="button primary small">Small</a></li>
<li><a href="#" class="button small">Small</a></li>
</ul>
<div class="row">
<div class="col-6 col-12-small">
<ul class="actions stacked">
<li><a href="#" class="button primary">Default</a></li>
<li><a href="#" class="button">Default</a></li>
</ul>
</div>
<div class="col-6 col-12-small">
<ul class="actions stacked">
<li><a href="#" class="button primary small">Small</a></li>
<li><a href="#" class="button small">Small</a></li>
</ul>
</div>
<div class="col-6 col-12-small">
<ul class="actions stacked">
<li><a href="#" class="button primary fit">Default</a></li>
<li><a href="#" class="button fit">Default</a></li>
</ul>
</div>
<div class="col-6 col-12-small">
<ul class="actions stacked">
<li><a href="#" class="button primary small fit">Small</a></li>
<li><a href="#" class="button small fit">Small</a></li>
</ul>
</div>
</div>
</section>
<section>
<h4>Table</h4>
<h5>Default</h5>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Item One</td>
<td>Ante turpis integer aliquet porttitor.</td>
<td>29.99</td>
</tr>
<tr>
<td>Item Two</td>
<td>Vis ac commodo adipiscing arcu aliquet.</td>
<td>19.99</td>
</tr>
<tr>
<td>Item Three</td>
<td> Morbi faucibus arcu accumsan lorem.</td>
<td>29.99</td>
</tr>
<tr>
<td>Item Four</td>
<td>Vitae integer tempus condimentum.</td>
<td>19.99</td>
</tr>
<tr>
<td>Item Five</td>
<td>Ante turpis integer aliquet porttitor.</td>
<td>29.99</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2"></td>
<td>100.00</td>
</tr>
</tfoot>
</table>
</div>
<h5>Alternate</h5>
<div class="table-wrapper">
<table class="alt">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Item One</td>
<td>Ante turpis integer aliquet porttitor.</td>
<td>29.99</td>
</tr>
<tr>
<td>Item Two</td>
<td>Vis ac commodo adipiscing arcu aliquet.</td>
<td>19.99</td>
</tr>
<tr>
<td>Item Three</td>
<td> Morbi faucibus arcu accumsan lorem.</td>
<td>29.99</td>
</tr>
<tr>
<td>Item Four</td>
<td>Vitae integer tempus condimentum.</td>
<td>19.99</td>
</tr>
<tr>
<td>Item Five</td>
<td>Ante turpis integer aliquet porttitor.</td>
<td>29.99</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2"></td>
<td>100.00</td>
</tr>
</tfoot>
</table>
</div>
</section>
<section>
<h4>Buttons</h4>
<ul class="actions">
<li><a href="#" class="button primary">Primary</a></li>
<li><a href="#" class="button">Default</a></li>
</ul>
<ul class="actions">
<li><a href="#" class="button">Default</a></li>
<li><a href="#" class="button small">Small</a></li>
</ul>
<ul class="actions fit">
<li><a href="#" class="button primary fit">Fit</a></li>
<li><a href="#" class="button fit">Fit</a></li>
</ul>
<ul class="actions fit small">
<li><a href="#" class="button primary fit small">Fit + Small</a></li>
<li><a href="#" class="button fit small">Fit + Small</a></li>
</ul>
<ul class="actions">
<li><a href="#" class="button primary icon solid fa-download">Icon</a></li>
<li><a href="#" class="button icon solid fa-download">Icon</a></li>
</ul>
<ul class="actions">
<li><span class="button primary disabled">Disabled</span></li>
<li><span class="button disabled">Disabled</span></li>
</ul>
</section>
<section>
<h4>Form</h4>
<form method="post" action="#">
<div class="row gtr-uniform">
<div class="col-6 col-12-xsmall">
<input type="text" name="demo-name" id="demo-name" value="" placeholder="Name" />
</div>
<div class="col-6 col-12-xsmall">
<input type="email" name="demo-email" id="demo-email" value="" placeholder="Email" />
</div>
<div class="col-12">
<select name="demo-category" id="demo-category">
<option value="">- Category -</option>
<option value="1">Manufacturing</option>
<option value="1">Shipping</option>
<option value="1">Administration</option>
<option value="1">Human Resources</option>
</select>
</div>
<div class="col-4 col-12-small">
<input type="radio" id="demo-priority-low" name="demo-priority" checked>
<label for="demo-priority-low">Low</label>
</div>
<div class="col-4 col-12-small">
<input type="radio" id="demo-priority-normal" name="demo-priority">
<label for="demo-priority-normal">Normal</label>
</div>
<div class="col-4 col-12-small">
<input type="radio" id="demo-priority-high" name="demo-priority">
<label for="demo-priority-high">High</label>
</div>
<div class="col-6 col-12-small">
<input type="checkbox" id="demo-copy" name="demo-copy">
<label for="demo-copy">Email me a copy</label>
</div>
<div class="col-6 col-12-small">
<input type="checkbox" id="demo-human" name="demo-human" checked>
<label for="demo-human">Not a robot</label>
</div>
<div class="col-12">
<textarea name="demo-message" id="demo-message" placeholder="Enter your message" rows="6"></textarea>
</div>
<div class="col-12">
<ul class="actions">
<li><input type="submit" value="Send Message" class="primary" /></li>
<li><input type="reset" value="Reset" /></li>
</ul>
</div>
</div>
</form>
</section>
<section>
<h4>Image</h4>
<h5>Fit</h5>
<div class="box alt">
<div class="row gtr-uniform gtr-50">
<div class="col-12"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
<div class="col-4"><span class="image fit"><img src="images/pic04.jpg" alt="" /></span></div>
</div>
</div>
<h5>Left & Right</h5>
<p><span class="image left"><img src="images/pic05.jpg" alt="" /></span>Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent.</p>
<p><span class="image right"><img src="images/pic05.jpg" alt="" /></span>Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent.</p>
</section>
</div>
<a href="#footer" class="goto-next scrolly">Next</a>
</div>
</section>
-->
<!-- Footer -->
<section id="footer">
<!-- <div class="container">
<header class="major">
<h2>Get in touch</h2>
</header>
<form method="post" action="#">
<div class="row gtr-uniform">
<div class="col-6 col-12-xsmall"><input type="text" name="name" id="name" placeholder="Name" />
</div>
<div class="col-6 col-12-xsmall"><input type="email" name="email" id="email" placeholder="Email" />
</div>
<div class="col-12"><textarea name="message" id="message" placeholder="Message" rows="4"></textarea>
</div>
<div class="col-12">
<ul class="actions special">
<li><input type="submit" value="Send Message" class="primary" /></li>
</ul>
</div>
</div>
</form>
</div> -->
<footer>
<!-- <ul class="icons">
<li><a href="#" class="icon brands alt fa-twitter"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands alt fa-facebook-f"><span class="label">Facebook</span></a></li>
<li><a href="#" class="icon brands alt fa-instagram"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands alt fa-dribbble"><span class="label">Dribbble</span></a></li>
<li><a href="#" class="icon solid alt fa-envelope"><span class="label">Email</span></a></li>
</ul> -->
<ul class="copyright">
<li>© The Elevate Team 2020</li>
<li>Base Design: <a href="http://html5up.net">HTML5 UP</a></li>
</ul>
</footer>
</section>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>