Je voudrais commencer à déclarer que je ne sais rien de la programmation OpenCL/GPU mais je suis un programmeur avancé C# (général .Net) sans crainte de C++ et j'aimerais apprendre la programmation OpenCL/GPU. .. ma question est ... où dois-je commencer?!? Que devrais-je télécharger?!? existe-t-il un moyen de programmer OpenCL/GPU sur Visual Studio (sur C#)!?! comme ... bonjour stuff monde ... TKS tousOpenCL et GPU programmation Roadmap
Répondre
Le meilleur site que j'ai trouvé une introduction claire sur la façon dont la programmation GPU est différente de la programmation CPU est ce site:
http://www.macresearch.org/opencl
Même si ces vidéos sont faites montrant des cartes de style NVIDIA, les concepts importants de:
plusieurs threads en cours d'exécution exactement les mêmes instructions de blocage à pas (même si un code est écrit avec if-else constructions), et
accès mémoire coalisée
appliquent également à AMD ou NVIDIA et sont crucial pour commencer à changer la façon dont vous pensez à la façon de structurer votre algorithme pour obtenir une amélioration des performances sur le GPU.
Désolé, je pense que cette question concerne principalement la mise en route du codage par opposition à la conception. La série MacResearch est idéale pour commencer à penser en termes de GPU mais n'est pas très informative pour le codage. Il est également plutôt daté maintenant. Je recommanderais la série, cependant. –
http://developer.amd.com/zones/OpenCLZone/pages/default.aspx
En supposant que vous voulez faire OpenCL plutôt que cuda alors cela a un tas de tutoriels vidéo d'introduction. Il existe un ensemble similaire chez NVidia - bien qu'ils aient plus de contenu basé sur CUDA.
Si vous voulez faire de la programmation en GPL, il vous suffit d'obtenir un exemple d'application capable d'exporter du code opencl/cuda dans un GPU. Vous devez également apprendre le langage opencl/cuda, puis apprendre à réfléchir aux algorithmes en parallèle et à tester/mesurer les résultats.
Il n'y a pas « utiliser GPU » bouton qui fait instantanément votre code 100x plus rapide
j'espérais une réponse plus directe ... comme ..."allez à cette adresse et téléchargez ça ... si vous avez une carte vidéo ATI allez-y ... si vous avez un Geforce allez dans ce site" sorte de chose ... – Leonardo
ok ... alors où dois-je commencer? !? que dois-je faire à mes programmes afin qu'ils utilisent la puissance du GPU?!? – Leonardo
Sur une note que vous souhaitiez voir: Haskell pourrait très bien avoir ce bouton. Dans une certaine mesure, c'est possible avec toutes les langues, mais avec Haskell c'est plus souvent possible. Et beaucoup plus facile à développer. (La programmation fonctionnelle définit le comportement de manière plus stricte car elle définit les résultats, pas les procédures) – Lodewijk
Je dirais check out OpenTK et leurs liaisons C# pour obtenir un saut sur OpenCL. Regardez OpenCL's website pour obtenir les liaisons C ou C++ standard.
Apprentissage OpenCL, il y a différentes ressources ... pas une tonne. J'ai trouvé following this utile.
Je suis désolé d'avoir 7 ans de retard. Mais voici une bibliothèque C# GPGPU open source pour écrire vos propres noyaux OpenCL:
https://github.com/tugrul512bit/Cekirdekler/wiki/Beginning
et un monde bonjour comme tradition:
ClNumberCruncher gpus= new ClNumberCruncher(
ClPlatforms.all().devicesAmd().gpus(), @"
__constant char text[12] = {'h','e','l','l','o',' ','w','o','r','l','d',' '};
__kernel void hello(__global char * arr)
{
printf(text);
}
");
gpus.performanceFeed = true;
ClArray<byte> array = new ClArray<byte>(5,1);
array.compute(gpus, 1, "hello", 5, 1);
array.compute(gpus, 1, "hello", 5, 1);
array.compute(gpus, 1, "hello", 5, 1);
c'est la sortie:
hello world
hello world
hello world
hello worldhello world
Compute-ID: 1 ----- Load Distributions: [40.0%] - [60.0%] -----------------------------------------------------
Device 0(gddr): Oland ||| time: 29.47ms, workitems: 2
Device 1(gddr): gfx804 ||| time: 29.76ms, workitems: 3
-----------------------------------------------------------------------------------------------------------------
hello worldhello world
hello world
hello world
hello world
Compute-ID: 1 ----- Load Distributions: [40.0%] - [60.0%] -----------------------------------------------------
Device 0(gddr): Oland ||| time: 1.64ms, workitems: 2
Device 1(gddr): gfx804 ||| time: 1.33ms, workitems: 3
-----------------------------------------------------------------------------------------------------------------
hello worldhello world
hello world
hello world
hello world
Compute-ID: 1 ----- Load Distributions: [40.0%] - [60.0%] -----------------------------------------------------
Device 0(gddr): Oland ||| time: 1.08ms, workitems: 2
Device 1(gddr): gfx804 ||| time: .87ms, workitems: 3
-----------------------------------------------------------------------------------------------------------------
il peut faire un tas de choses de pipelining à la planification du pool de tâches.
hahahahah tks quand même! – Leonardo
- 1. OpenCL FFT lib pour les GPU?
- 2. Est-il possible d'utiliser OpenCL pour PowerVR SGX530 GPU?
- 3. Subversion roadmap
- 4. x86 instruction set roadmap
- 5. Débutant à la programmation GPU: quoi apprendre?
- 6. Programmation GPU pour contrôler la sortie DVI
- 7. Il est possible d'étendre un noyau OpenCL pour l'exécuter simultanément sur le processeur et le GPU.
- 8. Mix OpenCL avec OpenGL
- 9. S'il vous plaît recommander une carte graphique pour la programmation GPU
- 10. Mode de calcul exclusif avec OpenCL + NVidia
- 11. OpenCL, accès direct à la mémoire de l'hôte à partir des noyaux GPU
- 12. Quels sont les langages de programmation pour le GPU?
- 13. OpenCL ou OpenGL - lequel utiliser?
- 14. Traitement d'image sur GPU
- 15. Inversion de matrice dans OpenCL
- 16. Le nettoyage OpenCl provoque la segfault
- 17. OpenCL ou CUDA Quelle route y aller?
- 18. OpenCL Texture Memory
- 19. Comment installer et exécuter les exemples de QtOpenCl, c'est-à-dire Qt dans OpenCl?
- 20. CUDA, OpenCL, PGI, etc .... mais qu'est-il arrivé à GLSL et Cg?
- 21. Débogueur pour OpenCL
- 22. Performance GPU vs CPU pour les algorithmes courants
- 23. OpenCL for Python
- 24. Plusieurs noyaux OpenCl
- 25. Exemples OpenCL avec benchmarks
- 26. Logiciel de surveillance GPU
- 27. Cuda GPU optimisation
- 28. Détection de chipset GPU
- 29. GPGPU, OpenCL, CUDA, ATI Stream
- 30. Est-il possible de faire de la programmation GPU si j'ai une carte graphique intégrée?
Possédez-vous une carte ATI ou nvidia? –
j'ai les deux en ce moment ... dans 1 pc j'ai un ati et dans un autre j'ai un nvidia ... – Leonardo
.Net a XNA Framework, qui est la fabrication de jeu xbox. Tu devrais le casser. – Bonshington