
Although I'm sure a lot can be done on modern GPU's (especially the DirectX
10 cards = Nvidia 8x00, that can write back to main memory, called "geometry
shaders"), a Playstation 3 runs Linux, doesn't cost a lot, and it has 7 CPUs
running at 3+ GHz, and 6 of these have parallel vector processing
capacities. I think it should be easier (but far from easy) to implement
Haskell on a PS3 then it is on a GPU. I developed imperative software for
both, but not in depth, but to me GPUs are still too much oriented towards
graphics, whilest the PS3 CPUs are more general purpose (although they also
expect to process streams of data).
See http://cell.scei.co.jp/e_download.html
-----Original Message-----
From: haskell-cafe-bounces@haskell.org
[mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Dan Piponi
Sent: Thursday, August 30, 2007 6:05 PM
To: haskell-cafe@haskell.org
Subject: Re: Re[4]: [Haskell-cafe] Haskell on the Playstation 3? :-)
On 8/30/07, Hugh Perkins
On the whole, maps and folds may constitute the bulk of what we are trying to parallelize (certainly, SPJ's NDP focuses extensively on maps), so this is probably broadly compatible with the CUDA architecture?
Right. But the functions and data that we are trying to map and fold could be anything, so we are required to have the full functionality of Haskell running on the GPU - unless the compiler can smartly figure out what should run on the GPU and what shouldn't. All in all, this could be a fairly ambitious project. Another, more modest, approach would be to define a DSL, maybe along the lines of what Lennart Augustsson has been doing on his blog (http://augustss.blogspot.com/), and implement a compiler back end that generates GPU code from the DSL. Something similar for C++ is Michael McCool's Sh library (www.csee.umbc.edu/~olano/s2005c37/ch07.pdf) which has now developed into a more general purpose commercial product. It seems to me that this could be a killer application for Haskell without a major rewrite of the Haskell compiler. What's more, the same DSL could have different back ends targeting GPUs, multiple cores or even just single CPUs (where you'd still get the benefits of partial evaluation). -- Dan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe