Write a Blog >>
Sun 18 Jun 2017 15:30 - 16:00 at Vertex WS208 - Session 4

Heterogeneous architectures incorporating both CPUs (Central Processing Units) with multiple cores and GPUs (Graphics Processing Units) as accelerators, have become mainstream. These architectures are built for better resource usage and/or reduction of program latencies. Programming these massively parallel systems in isolation is challenging enough and combining them together needs utmost care for efficient synchronization and communication. Libraries/languages providing features to make programming modular, composable and error-free have been the quintessential goal to alleviate these problems.

Existing libraries for GPUs provide few bare bones functional features for programming. But we needed to pursue the design from the point of providing better implicitly parallel and composable abstractions. We pushed the abstraction for our library design to see how much leverage, features from functional languages such as purity composability, especially functional streams can provide, and how easy can they be exposed to the GPGPU (General Purpose GPU) programmers.

Ours is the first library and scheduler for stream programs that targets both CPU and GPU. We also introduce the formal semantics of stream transformation and code generation for GPUs. Many of the abstractions for stream programs in our library form a monad, and formal properties of the library can be reasoned about. We evaluate our implementation on real world benchmarks, and show that there is no loss in performance on GPUs. Some benchmarks perform even better with our library. The gain in performance was achieved with stream fusion and use of category theoretic transformations for optimization of stream programs. Our library performs as well as hand-written code, while maintaining guarantees for correctness.

Sun 18 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:30 - 15:00
13:30
30m
Talk
Invited Talk: What Lies Beyond a PhD
ECOOP Doctoral Symposium
Sarah Nadi University of Alberta
14:00
30m
Talk
Verifiable, reusable, yet useful conditioning
ECOOP Doctoral Symposium
Praveen Narayanan Indiana University, USA
14:30
30m
Talk
Improving Warmup in Meta-Traced Virtual Machines
ECOOP Doctoral Symposium
Jasper Schulz King's College London
15:30 - 17:50
15:30
30m
Talk
Compilation of Stream Programs for Heterogeneous Architectures
ECOOP Doctoral Symposium
16:00
30m
Talk
Introspective Intrusion Detection for Popular Software Platforms
ECOOP Doctoral Symposium
16:30
30m
Talk
Privacy-aware operator placement
ECOOP Doctoral Symposium
17:00
40m
Talk
How to get your Ph.D. DONE
ECOOP Doctoral Symposium
Eric Jul University of Oslo
17:40
10m
Talk
Round up by the academic panel
ECOOP Doctoral Symposium