One of my colleagues at MSR Cambridge, Satnam Singh, has written his very first blog entry, and what a beauty it is! Data parallel multicore programming from F# targeting both CPU and GPU – what joy!
Microsoft recently released a preview of the Accelerator V2 GPU and x64 multicore programming system on Microsoft Connect. This system provides a civilized level of abstraction for writing data-parallel programs that execute on GPUs and multicore processors. An experimental FPGA target is under development.
Even on my low end graphics card I get pretty impressive performance results for the 2D convolver that is described in this blog. All 8 cores of my 64-bit Windows 7 workstation are also effectively exercised by the x64 multicore target, which exploits SIMD processor instructions and multithreading. I won’t say anything about performance in this blog post since what I want to focus on is how to use Accelerator from the F# functional programming language. We will work backwards by starting off with a complete implementation of a two dimensional convolver. Step by step we show how this convolver is expressed using Accelerator from F#.
First here is the implementation of a two dimensional convolver…..
Not exactly your usual “I’m starting a blog, my name’s Satnam” :-) Read the full post here – enjoy!