Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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...

like image 297
AK_ Avatar asked Apr 08 '12 07:04

AK_


2 Answers

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...

like image 89
Yahia Avatar answered Nov 21 '22 00:11

Yahia


In addition to other projects mentioned in other answers, I think it's worth to mention Cloo project, which is opensource object-oriented .NET wrapper of OpenCL.

like image 23
Ňuf Avatar answered Nov 21 '22 00:11

Ňuf