GpuLinq's main mission is to democratize GPGPU programming through LINQ. The main idea is that we represent the query as an Expression tree and after various transformations-optimizations we compile it into fast OpenCL kernel code. In addition we provide a very easy to work API without the need of messing with the details of the OpenCL API.
using(varcontext=newGpuContext()){using(varnums=context.CreateGpuArray(array)){varquery=(fromnuminnums.AsGpuQueryExpr()wherenum%2==0selectnum*num).Sum();varresult=context.Run(query);}}