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!