Le calcul à usage général sur les unités de traitement graphique ( GPGPU ) est un concept très intéressant pour exploiter la puissance du GPU pour tout type de calcul.
J'aimerais utiliser le GPGPU pour le traitement des images, les particules et les opérations géométriques rapides.
À l'heure actuelle, il semble que les deux concurrents dans ce domaine soient CUDA et OpenCL. J'aimerais savoir :
- OpenCL est-il déjà utilisable depuis Java sur Windows/Mac ?
- Quelles sont les bibliothèques qui permettent de s'interfacer avec OpenCL/CUDA ?
- Est-il possible d'utiliser directement JNA ?
- Est-ce que j'oublie quelque chose ?
Toute expérience du monde réel/exemple/récit de guerre est apprécié.
1 votes
J'imagine que la programmation de GPU en Java serait difficile, vu l'utilisation des pointeurs dans la programmation de cuda. Je ne sais pas s'il y aurait beaucoup d'avantages à utiliser Java pour la programmation de périphériques, car il est peu probable que vous disposiez de toutes les fonctionnalités/librairies Java implémentées qui différencient Java de C++.
2 votes
J'ai vu des démos Java impressionnantes qui utilisaient GLSL et probablement CUDA, donc c'est certainement possible.
1 votes
Avez-vous vérifié jcuda.org et jocl.org ?
1 votes
Je les connais, mais je ne peux pas juger de leur qualité. Avez-vous de l'expérience avec eux ?
0 votes
Ces liens peuvent vous intéresser : pixelnerve.com/v/2009/10/30/opencl-4-java - prace-project.eu/documents/05_cudaopencl_hh.pdf
0 votes
Je n'ai pas d'expérience en la matière moi-même, mais il me semble que code.google.com/p/javacl est beaucoup plus Java-ish que jcuda / jocl.
0 votes
Je ne suis pas sûr que Java soit le bon langage si vous voulez des performances
4 votes
@Nils : et c'est pourquoi il veut pousser tous les calculs sur le GPU... De toute façon, même le simple C ou l'asm x86 auraient du mal à concurrencer les processeurs parallèles de données massives comme les GPU.
1 votes
S'il peut transférer la majeure partie du traitement vers le processeur graphique et maintenir le travail effectué sur le processeur au minimum, le langage qu'il utilise n'aura pas beaucoup d'importance.
0 votes
Jetez un coup d'œil, stackoverflow.com/questions/18014327/