2,308 votesregis commented
Hybridizer generates cuda code from msil assemblies. It supports generics, virtual function, automatic memory management. Parallel.For is mapped to a CUDA-like loop (threadIdx.x...). It also gives full control to developer (explicit loops, intrinsic functions -- handwritten cuda functions -- explicit memory management...).
The free version generates CUDA binaries from c# code, and is distributed as a Visual Studio Extension.