Looking for an API to employ the wonderful powers of the GPU from .NET

.net, c#, gpu, parallel-processing

Solution

There are several options (sometimes with a difference regarding ATI versus nVidia though):

- Accelerator

- GPU.NET

- Brahma

- CUDAfy.NET (for a nice article see here)

- GLinq

- OpenCL.NET

- Conflux

- OpenTK

- VS 2011 Preview AMP - see here, here and here too

As per comments:

From the question it is hard to give any recommendation since some relevant aspects like are the algorithms easily expressed via LINQ ? How deep should .NET integration go ? etc. are basically not clear to me from the question... the above is just a list of currently available technologies to use GPUs for computational work via .NET .

IF a recommendation is needed please give more details on the type development/projects you want to implement...

Problem

I'm looking for a nice API to use for implementing algorithms on the GPU. I would prefer something relevantly simple and flexible. I'm not looking for the most hardcore performance, but for something I can play around with. Also I would really prefer something that works both on Nvidia and ATI cards... Good recommendation, especially based on experience might be rewarded with a bounty. Currently the algorithms we are discussing are image processing, i.e. relevantly simple manipulations over very large matrices... for me I would love to be able to just take PLINQ expressions to the GPU, And also have an API like System.Threading.Tasks.Parallel , that would execute stuff on the GPU... We're mostly in the initial exploring phase here... And again working cross platform is pretty much a requirement...

Original source