Unleash those transistors! General Purpose GPU and x64 Data Parallel Multicore Programming with Accelerator from F#

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!


Comments (3)

  1. John says:

    You are right Don – best "first blog post" ever, I think.  

    Thanks for sharing.

  2. Thanks Don.

    I hope & expect 2 C F# in more articles & blogs addressing manycore issues in the future.

    If you read this excellant blog, you’ll probably also enjoy " …Can non-numerical application developers take advantage from the new LRBni instructions?,  by Daniele Paolo Scarpazza —  a member of the Multicore Computing Department at the IBM T. J. Watson Research Center. He is the author of articles and scholarly papers on parallel algorithms and performance optimization on emerging multicore architectures (article sans F#)


  3. Thanks for these articles, I enjoyed them!