2011-02-27 5 views
7

J'essaye d'optimiser mes noyaux OpenCL et tout ce que j'ai en ce moment, c'est NVidia Visual Profiler, qui semble plutôt contraint. Je voudrais voir le profil ligne par ligne des noyaux pour mieux comprendre les problèmes de coalescence, etc. Existe-t-il un moyen d'obtenir des données de profilage plus complètes que celles fournies par Visual Profiler?Profilage des noyaux OpenCL

Répondre

1

Non, il n'existe pas d'outil de ce type, mais vous pouvez profiler vos modifications de code. Essayez de mesurer la vitesse de votre code, changez quelque chose, puis mesurez-le à nouveau. clEnqueueNDRangeKernel a un argument Event qui peut être utilisé avec clGetEventProfilingInfo par la suite, le timer est très net, la précision est mesurée dans l'ordre de microsecondes. C'est la seule façon de mesurer la performance d'une partie de code séparée ...

1

Je ne l'ai pas testé mais je viens de trouver ce programme http://www.gremedy.com/gDEBuggerCL.php. La description est: "Ce nouveau produit apporte les capacités avancées de débogage, de profilage et d'analyse de mémoire de gDEBugger au monde du développeur OpenCL ..."

4

Je pense que AMD CodeXL est ce que vous recherchez. C'est un ensemble d'outils gratuit qui contient un débogueur OpenCL et un profileur GPU. Le débogueur OpenCL vous permet d'effectuer le débogage ligne par ligne de vos noyaux OpenCL et de votre code hôte, de voir toutes les variables dans différents groupes de travail, d'afficher les événements spéciaux et les erreurs, etc. Le profileur GPU a une fonction intéressante qui génère une chronologie indiquant combien de temps votre programme dépense pour des tâches telles que le transfert de données et l'exécution du noyau.

Pour plus d'informations et des liens de téléchargement, consultez http://developer.amd.com/tools-and-sdks/heterogeneous-computing/codexl/

+0

OpenXL - GPUOPEN ne fonctionne que pour les processeurs AMD, ce qui constitue une limitation majeure pour de nombreux utilisateurs – TripleS

+0

Je pense que vous mélangez deux termes différents: CodeXL est une suite d'outils par AMD, et est l'un des produits qui ont été ouverts dans le cadre de l'initiative GPUOpen d'AMD. Je pense que le but de cette initiative était de permettre aux développeurs et autres acteurs de l'industrie d'étendre ces outils, afin qu'ils puissent supporter des plateformes supplémentaires. – AmitB

Questions connexes