[Haskell-cafe] [GSoC] A data parallel physics engine
Manuel M T Chakravarty
chak at cse.unsw.edu.au
Wed Mar 12 21:43:55 EDT 2008
> Bas van Dijk wrote:
>> A bit offtopic but slightly related:
>> I just added a GSoC project proposal about adding a nVidia CUDA
>> backend to Data Parallel Haskell:
>> It would be great if this physics engine or matrix library could run
>> on a CUDA enabled nVidia "graphics" card!
> As Don said, we're working on that. However, this is a lot more work
> than just a summer project. The reason is that you can't run
> arbitrary NDP computations on the GPU, just a fairly restricted
> subset. This means that you need to decide what to put on the GPU
> during code generation which, in turn, means a significant amount of
> compiler hacking. It's really more than enough work for a PhD thesis.
To elaborate on that, our current, more moderate goal is to implement
a sort of embedded, array DSL into Haskell/GHC, so that all array DSL
code is compiled down to CUDA and linked into the rest of the Haskell
application using the FFI. This requires the design of the array DSL
(partially done), a small addition to GHC (not done), and a compiler
from GHC Core to CUDA (partially done). All this is part of a PhD
project, and we hope to have something to show later this year.
Step 2, then, is to implement a backend to DPH using that array DSL.
Doing that efficiently is going to be another significant project
(much more than can be achieved in a GSoC project).
More information about the Haskell-Cafe