I’ve been looking for some information on coding CUDA (the nvidia gpu language) with C#. I have seen a few of the libraries, but it seems that they would add a bit of overhead (because of the p/invokes, etc).
- How should I go about using CUDA in my C# applications? Would it be better to code it in say C++ and compile that into a dll?
- Would this overhead of using a wrapper kill any advantages I would get from using CUDA?
- And are there any good examples of using CUDA with C#?
There is such a nice complete cuda 4.2 wrapper as ManagedCuda.
You simply add C++ cuda project to your solution, which contains yours c# project, then you just add
to post-build events in your c# project properties, this compiles *.ptx file and copies it in your c# project output directory.
Then you need simply create new context, load module from file, load function and work with device.