I'm afraid that my knowledge of using the GPU is rather theoretical beyond writing shaders for DirectX / XNA and dabbling a little bit with CUDA (NVidia specific). However, I have heard quite a lot about OpenCL (Open Computing Language) which allows you to run algorithms which OpenCL will intelligently push out to your graphics cards, or run on the CPU if you don't have a compatible GPU.
The code you run on the GPU will have to be written specifically in OpenCL's subset of C99 (apologies if this does not meet your reqiurements as you've asked how to use it from C#), but beyond your number crunching algorithms, you can write the rest of your application in C# and have it all work together nicely by using The Open Toolkit;
http://www.opentk.com/