tags:

views:

241

answers:

4

I'm working on some image manipulation code in c# and need to do some matrix operations (specifically 2D convolution). I have the code written in matlab which uses the conv2 function ... is there a library for C# / .NET that does good high-speed matrix manipulations? I'd be fine if it requires some specific GPU and does the matrix math on-GPU if that's what it takes.

+1  A: 

For GPU based work have a look at CUDA :

http://www.nvidia.com/object/what_is_cuda_new.html

.Net with CUDA :

http://www.hoopoe-cloud.com/Solutions/CUDA.NET/Default.aspx

Rusty
What would you recommend for OpenCL and .NET?
Dave
I only gave OpenCL an informational scan..Nvidia hardware was mandated..sorry.Out of curiosity..how many iterations against what image size are you doing ? I spend some time doing deconvolution on astronomical images and a run of ~20 iterations on a 4096 x 4096 32bpp image only takes a few minutes on a dual core box without using the GPU.
Rusty
+2  A: 

Another idea would be to create a dll with your routines that you link to with C#. I think Matlab has export/compile to C file functionality..

filip-fku
+2  A: 

http://www.mathworks.com/products/netbuilder/

ebpower
+2  A: 

Emgu is a nice C# port of OpenCV. I'm not sure about your convolution speicifically, but from this link it appears likely.

kenny