C #: Realizar operaciones en GPU, no CPU (Calcular Pi)

Recientemente he leído mucho sobre software (principalmente científico / matemático y cifrado) que transfiere parte de sus cálculos a la GPU, lo que provoca un aumento de 100-1000 (!) Veces en la velocidad de las operaciones admitidas.

¿Hay una biblioteca, API u otra forma de ejecutar algo en la GPU a través de C #? Estoy pensando en el cálculo de Pi simple. Tengo una GeForce 8800 GTX si es relevante (aunque preferiría una solución independiente de la tarjeta).

Es una tecnología muy nueva, pero podrías investigar CUDA . Ya que su pregunta está etiquetada con C #, aquí hay una envoltura .Net .

Como beneficio adicional, parece que su 8800 GTX es compatible con CUDA.

Otra opción que no se ha mencionado para el cálculo de GPU de C # es Brahma .

Brahma proporciona una abstracción basada en LINQ para los cálculos de GPU; básicamente es LINQ a GPU. Funciona sobre OpenGL y DirectX sin bibliotecas adicionales (pero requiere SM3). Algunas de las muestras son bastante sorprendentes.

Es posible que desee ver esta pregunta

Probablemente estés buscando Accelerator , pero si estás interesado en el desarrollo de juegos en general, te sugiero que eches un vistazo a XNA

CUDA.NET debe ser exactamente lo que está buscando y parece ser compatible con su tarjeta gráfica específica.

Puede acceder a las últimas API de Direct3D desde .NET utilizando el paquete de códigos de API de Windows . Direct3D 11 viene con Compute Shaders. Estos son aproximadamente comparables a CUDA, pero funcionan también en GPU que no son NVIDIA.

Tenga en cuenta que Managed DirectX y XNA están limitados al conjunto de características de Direct3D 9, que es algo difícil de usar para GPGPU.

Hay un conjunto de enlaces .Net para la API CUDA de Nvidia, se llama CUDA.net . Puede consultar la guía de referencia para ver algunos ejemplos de código C #.

La forma preferida de acceder a su co-procesador (GPU) sería utilizar OpenCL para que su código sea portátil con las tarjetas ATI, pero creo que es posible que se requiera una encoding adicional y no estoy seguro de cuánto soporte tiene OpenCL para. Plataforma de red.

Si desea usar C ++, aquí tiene una descripción general rápida sobre cómo obtener algunos ejemplos de código de comstackción con Visual Studio.

FYI: Accelerator ( http://research.microsoft.com/en-us/projects/Accelerator/ ) estaba funcionando muy bien para un par de pruebas.