2009-09-14 6 views
5

Je cherche des exemples d'introduction à OpenCL qui illustrent les types d'applications pouvant subir de grandes augmentations de vitesse (par exemple, 50x-1000x). Cuda a beaucoup de bons exemples, mais je n'ai pas trouvé la même chose pour OpenCL.Exemples OpenCL avec benchmarks

Un bel exemple pourrait être l'optimisation globale des fonctions complexes par des essaims de particules, recuit simulé, algorithmes évolutifs, fourmi optimisation des colonies, etc.

Répondre

4

Les algorithmes que vous décrivez ne sont ni simples, ni d'introduction du point de vue de la programmation GPU . La raison pour laquelle CUDA a des exemples dans ces domaines est qu'il a été assez long pour que les gens aient développé ces exemples. Il n'y a actuellement aucune version publiquement disponible d'OpenCL qui s'exécute sur les GPU. ATI et NVIDIA proposent des versions bêta de leurs pilotes OpenCL, mais ATI ne prend en charge que le calcul du processeur et NVIDIA nécessite la signature d'un NDA. Simplement, OpenCL n'a pas été assez longtemps pour que des exemples complets comme ceux-ci aient été développés et démontrés. Cela dit, avoir accès aux pilotes OpenCL de NVIDIA n'est pas difficile. Vous pouvez trouver comment le faire sur leurs forums here. Je suppose que la distribution OpenCL contient des exemples de programmes pour vous aider à démarrer.

Cela signifie également que c'est une excellente opportunité pour vous de développer certains de ces benchmarks et d'afficher vos résultats. Ensuite, les gens vont se référer à votre travail plutôt que de vous référer à leur travail. Cependant, je ne m'attendrais pas à beaucoup de surprises. Les performances d'OpenCL devraient être à peu près égales à celles de CUDA une fois qu'elles seront largement disponibles et supportées.

+3

"Il n'existe actuellement aucune version publiquement disponible d'OpenCL qui fonctionne sur les GPU." Je ne sais pas si c'était le cas lorsque vous avez répondu en septembre, mais ce n'est certainement pas le cas maintenant. Les deux AMD (ATI) et Nvidia ont des implémentations OpenCL qui fonctionnent bien. – dwf

0

Vous pouvez essayer les deux livres suivants:

Programmation parallèle processeurs ... A Massively approche pratique (NVIDIA) (chapitres 1 et 2)

Le manuel de programmation OpenCL ... Programmation parallèle pour CPU et GPU MultiCore (composants historiques

Les deux vont dans le détail pour expliquer pourquoi le développement a été fait et où les vrais bonusses peuvent être trouvés.

Je ne suis pas sûr de l'analyse comparative, mais je n'ai pas eu de chance moi non plus.