BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:Gotta Go Fast: Futhark - A Data-Parallel Purely Functional Languag
 e and its Optimising GPGPU Compiler - Troels Henriksen (DIKU)
DTSTART:20160511T103000Z
DTEND:20160511T113000Z
UID:TALK66149@talks.cam.ac.uk
CONTACT:Dominic Orchard
DESCRIPTION:Futhark is a small programming language designed to be compile
 d to efficient GPU code. It is a statically typed\, data-parallel\, and pu
 rely functional array language\, and comes with a optimising ahead-of-time
  compiler that generates GPU code via OpenCL. Futhark is not designed for 
 graphics programming\, but instead uses the compute power of the GPU to ac
 celerate data-parallel array computations ("GPGPU"). We support regular ne
 sted data-parallelism\, as well as a form of imperative-style in-place mod
 ification of arrays\, while still preserving the overall purity of the lan
 guage via the use of a uniqueness type system.\n\nThis talk presents the d
 esign of the Futhark language\, as well as outlines several of the key com
 piler optimisations that have enabled performance comparable to hand-writt
 en OpenCL code.  Our compiler seeks a common ground between functional and
  imperative approaches.  Through the use of a functional source language\,
  we obtain strong invariants that simplify and empower the application of 
 traditional compiler optimisation techniques.  For example (i)\naggressive
 ly restructuring transformations such as fusion\, (ii) loop interchange an
 d distribution to extract flat parallel kernels from nested parallel sourc
 e programs\, and (iii) data layout transformations to ensure coalesced mem
 ory access on GPUs.
LOCATION:FW26
END:VEVENT
END:VCALENDAR
