GPU Programming in Haskell
つい最近までCUDAに苦しめられていたので、
GPU Kernels as Data-Parallel Array Computations in Haskell
http://www.cse.unsw.edu.au/~chak/papers/gpugen.pdf
Obsidian: GPU Programming in Haskell
http://www.cse.chalmers.se/~joels/writing/dccpaper_obsidian.pdf
を眺めた。
前者は、Gpugenという、割と抽象度の高いレイヤーでコードを書こうというアプローチで、Obsidianは、もうちょっと抽象度が低い。とりあえず、Gpugenのベンチマークが対数グラフなので極めてうさんくさい。一応、Black-Scholes方程式のシミュレーションで、生のCUDAとGpugenは遜色ないよという話らしいけど、使ったCUDAコードも明らかではないし。zipWithやmapに相当する関数が使えると書いてあるけど、この手の処理はCUDAでも簡単に書けてしまうし、微妙な感じがする。