53 votes

Python programmation GPU

Je travaille actuellement sur un projet en python et j'aimerais utiliser le GPU pour certains calculs.

À première vue, il semble y avoir de nombreux outils disponibles; à y regarder de plus près, j'ai l'impression de passer à côté de quelque chose.

Copperhead a l'air génial mais n'a pas encore été publié. Il semblerait que je sois limité à écrire des noyaux CUDA ou openCL de bas niveau ; pas de thrust, pas de cudpp. Si je veux quelque chose trié, je vais devoir le faire moi-même.

Cela ne me semble pas tout à fait correct. Est-ce que je manque quelque chose ? Ou est-ce que ce script GPU ne tient pas encore toutes ses promesses ?

Édition : GPULIB semble être ce dont j'ai besoin. La documentation est rudimentaire et les liaisons python ne sont mentionnées qu'en passant, mais je demande un lien de téléchargement en ce moment. Est-ce que quelqu'un a de l'expérience avec cela, ou des liens vers des bibliothèques GPU similaires gratuites pour un usage académique ? Réédition : ok, les liaisons python sont en fait inexistantes.

Édition2 : Donc je suppose que ma meilleure option est d'écrire quelque chose en C/CUDA et de l'appeler depuis python ?

28voto

Joe Points 1396

PyCUDA offre une très bonne intégration avec CUDA et dispose de plusieurs interfaces d'aide pour faciliter l'écriture de code CUDA plus facilement que dans l'API C standard. Voici un exemple du Wiki qui réalise une FFT 2D sans avoir besoin de code C du tout.

7voto

Bogdan Points 58

Je sais que ce fil de discussion est ancien, mais je pense pouvoir apporter des informations pertinentes en réponse à la question posée.

Continuum Analytics propose un package contenant des bibliothèques qui résolvent le calcul CUDA pour vous. Fondamentalement, vous pouvez instrumenter votre code qui doit être parallélisé (à l'intérieur d'une fonction) avec un décorateur et vous devez importer une bibliothèque. Ainsi, vous n'avez pas besoin de connaissances sur les instructions CUDA.

Les informations peuvent être trouvées sur la page de NVIDIA

https://developer.nvidia.com/anaconda-accelerate

ou vous pouvez aller directement sur la page de Continuum Analytics

https://store.continuum.io/cshop/anaconda/

Il y a une période d'essai de 30 jours et une licence gratuite pour les universitaires.

Je l'utilise régulièrement et cela accélère mon code entre 10 et 50 fois.

5voto

katzenklavier Points 76

Theano semble être ce que vous recherchez. D'après ce que je comprends, il est très capable de réaliser des calculs mathématiques lourds avec le GPU et semble être activement maintenu.

Bonne chance!

1voto

onteria_ Points 18947

0voto

Moj Points 878

Je peux recommander scikits.cuda. mais pour cela, vous devez télécharger la version complète de CULA (gratuite pour les étudiants). Une autre option est CUV. Si vous recherchez quelque chose de mieux et êtes prêt à payer pour cela, vous pouvez également jeter un œil à array fire. Actuellement, j'utilise scikits et en suis assez satisfait jusqu'à présent.

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