2009-04-06 8 views
1

Les processeurs modernes utilisent toutes sortes d'astuces pour combler l'écart entre la grande vitesse de leurs éléments de traitement et le retard de la mémoire externe. Dans les applications critiques, la manière dont vous structurez votre code peut souvent avoir une influence considérable sur son efficacité. Par exemple, les chercheurs utilisant l'analyseur SLO ont pu corriger les problèmes de localisation du cache et doubler la vitesse d'exécution de plusieurs programmes de test SPEC2000. Je suis à la recherche de recommandations pour un outil open source qui utilise la surveillance de performance du processeur pour localiser et analyser les inefficacités architecturales telles que les échecs de cache, les erreurs de branchement, les interruptions frontales, la pollution du cache par aliasing d'adresse, les instructions de latence longue et les échecs TLB . Je suis au courant de VTune (commercial) d'Intel, CodeAnalysist d'AMD (libre, mais pas open source), et Cachegrind (repose sur la simulation).Profileur open source pour analyser les inefficacités architecturales de bas niveau

Répondre

1

Pour linux, oprofile fonctionne bien. En fait, CodeAnalysist d'AMD utilise oprofile comme backend. Oprofile utilise le mécanisme d'accord de performance interne du processeur pour analyser l'inefficacité architecturale.

+0

Parfait! Les listes opcontrol --list-events d'Oprofile sont en effet des réseaux d'événements que l'on voudrait surveiller. –