Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to push simple, parallel calculations to the GPU in .Net?

With .Net 4.0 coming up, and the new parallel extensions, I wondered if the CLR will be able to optimize and push some calculations to the GPU? Or if any library which can help with the task exists?

I'm no GPU programming expert at all, so forgive me if this is a silly question. Maybe the CLR doesn't support interfacing to the GPUs instruction-set? Are they too primitive, or simply out of scope?

Thanks in advance.

[EDIT] Just to clarify: I know about CUDA and similar libraries, but I want to know if there's a pure .Net solution, and if so, can it work behind the scenes for you, or do you need to do explicit coding?

like image 757
cwap Avatar asked Jan 04 '10 11:01

cwap


2 Answers

There is nothing integrated in .NET related to that.

But I think this is what you're looking for (can use in .NET) ;) :

http://research.microsoft.com/en-us/projects/Accelerator/

also FYI: http://brahma.ananthonline.net/

like image 130
Lukas Šalkauskas Avatar answered Oct 13 '22 13:10

Lukas Šalkauskas


CLR only targets CPUs (Microsoft's Research OS Helios is tasked with support of GPUs at the CIL level through heterogeneous execution).

So the only alternative for now is to use one of those libraries:

Microsoft Research Accelerator project:

It provides a simplified programming of GPUs via a high-level data-parallel library (project is in its v2.0 now).

There's a good article here: http://tomasp.net/articles/accelerator-intro.aspx

Brahma:

Uses C# 3.0's LINQ syntax to specify streaming transformation of data.

like image 22
Stringer Avatar answered Oct 13 '22 12:10

Stringer