Key points are not available for this paper at this time.
Les programmes écrits pour les GPU contiennent souvent des erreurs de correction telles que des courses, des blocages, ou peuvent calculer le mauvais résultat. Les outils de débogage existants manquent souvent ces erreurs en raison de leur exploration limitée de l'espace d'entrée et de l'espace d'exécution. Les outils existants basés sur une analyse statique conservatrice ou un modélisation conservatrice de la concurrence SIMD génèrent de fausses alertes entraînant une chasse aux bogues inefficace. Ils ne ciblent souvent pas non plus les bogues de performance (accès à la mémoire non coalescés, conflits de banques de mémoire et warp divergents). Nous proposons un nouveau cadre appelé GKLEE qui peut analyser des programmes GPU en C++, localisant les bogues de correction et de performance susmentionnés. Pour ces programmes, GKLEE peut également générer automatiquement des tests qui offrent une couverture élevée. Ces tests servent de témoins concrets pour chaque bogue signalé. Ils peuvent également être utilisés pour le débogage en aval, par exemple pour tester le noyau sur le matériel réel. Nous décrivons l'architecture de GKLEE, son modèle de machine virtuelle symbolique, et décrivons des bogues et des problèmes de performance auparavant inconnus qu'il a détectés sur des noyaux SDK commerciaux. Nous décrivons les heuristiques de réduction de cas de test de GKLEE, et l'amélioration de scalabilité résultante pour un objectif de couverture donné.
Li et al. (Samedi,) ont étudié cette question.