LINQ Not Supported

Aug 1, 2012 at 5:50 PM

Hi, why does QueryExpression type is not supported? It seems like there is some work done in that area, code is commented though.

Coordinator
Aug 9, 2012 at 11:08 AM

Do you mean in host or device code?

Aug 14, 2012 at 4:08 PM

In device code, for example:

void kernel(int[] a, int[] b)
{
    b = a.Where(item => item > 9).Reverse().ToArray();
}
Coordinator
Aug 15, 2012 at 9:09 AM

Hi,

Why would you want to do this in device code?  You want to typically split the elements of your arrays a and b so each thread handles only a few (or even one) element.  For reversing for example there are some very interesting ways of optimizing this using shared memory.  How you have currently written the code it will always be faster on a CPU even if supported in device code.

A high level host library targeting GPUs similar to PLinq would be useful but is currently beyond the scope of CUDAfy (read, would be a lot of work and we haven't got the time).  So as not to reinvent the wheel we should also check the existence of other libraries such as Thrust and see how to port/wrap these for .NET.

Nick

Aug 17, 2012 at 8:47 AM

Hi Nick,

I was considering if cudafy is able to do the conversion. I am working with ExpressionTree translation and conversion, I have wondered if it would be possible. thank you for your suggestions.

kerem.

Coordinator
Aug 19, 2012 at 5:04 PM

Can you give a short example of relevant CPU code?