55 votes

C #: effectuer des opérations sur le GPU, pas sur le processeur (Calculate Pi)

J'ai récemment lu beaucoup de choses sur les logiciels (principalement scientifiques / mathématiques et liés au cryptage) qui transfèrent une partie de leurs calculs sur le GPU, ce qui multiplie par 100 la vitesse des opérations prises en charge.

Existe-t-il une bibliothèque, une API ou un autre moyen d'exécuter quelque chose sur le GPU via C #? Je pense au calcul simple de Pi. J'ai une GeForce 8800 GTX si cela est pertinent (je préférerais une solution indépendante de la carte).

Tous les indices sont appréciés!

25voto

Charlie Salts Points 5958

C'est une technologie très nouvelle, mais vous pourriez étudier CUDA . Puisque votre question est étiquetée avec C #, voici un wrapper .Net .

En prime, il semble que votre 8800 GTX prenne en charge CUDA.

16voto

Reed Copsey Points 315315

Brahma est une autre option qui n’a pas été mentionnée pour le calcul de GPU à partir de C #.

Brahma fournit une abstraction basée sur LINQ pour les calculs de GPU - il s’agit essentiellement de LINQ to GPU. Cela fonctionne sur OpenGL et DirectX sans bibliothèques supplémentaires (mais nécessite SM3). Certains échantillons sont assez étonnants.

8voto

Tchami Points 3294

Vous voudrez peut-être regarder cette question

Vous cherchez probablement Accelerator , mais si vous êtes intéressé par le développement de jeux en général, je vous suggère de jeter un coup d'œil à XNA.

4voto

Michael Borgwardt Points 181658

CUDA.NET devrait correspondre exactement à ce que vous recherchez et semble prendre en charge votre carte graphique spécifique.

4voto

Malte Clasen Points 3989

Vous pouvez accéder aux dernières API Direct3D à partir de .NET à l'aide du pack de codes API Windows . Direct3D 11 est livré avec Compute Shaders. Celles-ci sont à peu près comparables à CUDA, mais fonctionnent également sur des GPU non-NVIDIA.

Notez que Managed DirectX et XNA sont limités à l'ensemble de fonctionnalités de Direct3D 9, ce qui est un peu difficile à utiliser pour GPGPU.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X