2009-08-12 5 views
6

Y at-il un petit outil qui me donne accès aux données recueillies par les compteurs CPU Intel (comme les échecs de cache L1/L2, les échecs de prédiction de branchement ... vous savez qu'ils sont hunderts d'Intel sur les processeurs Core2 modernes).Comment puis-je accéder au compteur Intel CPU

Il doit fonctionner sur Windows (bien que pouvoir l'utiliser avec Solaris, FreeBSD, Linux, MacOSX soit bien sûr sympa).

+0

D'accord, j'ai trouvé la bibliothèque PAPI.Mais ceci est plus ou moins un Linux seulement (supportant Solaris uniquement sur Sparc) et nécessite des correctifs de noyau linux - ouais je sais que Linus a dit que la surveillance des performances est l'une des deux faiblesses réelles. Et j'ai trouvé perfmon2 et rabbit (un projet mort) qui sont aussi seulement Linux. Pas un coup pour les fenêtres jusqu'à présent. – Lothar

Répondre

0

Vous n'avez pas écrit de vous cherchez une application ou une bibliothèque.

Pour Windows, il y a Intel VTune. Mais ce n'est pas exactement un petit outil. Pour Linux, j'ai utilisé oprofile, qui fonctionne sans les correctifs du noyau.

+0

Je cherche une bibliothèque parce que je veux écrire un profileur d'instrumentation qui enregistre les événements INSTRUCTION_RETIRED au lieu de millise. Oui et peut-être d'autres choses, donc vous pouvez le voir comme un petit outil VTune comme je veux écrire moi-même. – Lothar

+0

Je ne pense pas qu'il y ait une bibliothèque. Le registre du moniteur de performances est accessible via les instructions rdmsr et wrmsr. Pour commencer, vous pouvez consulter le "Manuel de développement de logiciels pour architectures Intel 64 et IA-32" (google pour la dernière version) Volume 3B, chapitre 18.11ff. Il est exactement décrit ce dont vous avez besoin pour accéder aux compteurs de performance. – hirschhornsalz

0

Sous OS X, Shark vous permet d'obtenir des données à partir des PMC. Je ne suis pas sûr de ce qui est disponible sur Windows autre que les outils d'Intel (VTune, comme mentionné par drhirsch).

0

Essayez cette http://icl.cs.utk.edu/papi/ Il est une bibliothèque complète qui vous permet de lire toutes les données des compteurs CPU, fonctionne à la fois sous Windows et Linux [et d'autres OS]

+0

PAPI ne fonctionne pas sous Windows. –

1

PAPI est une avance très prometteuse, mais je crois ils ont cessé de supporter Windows (et donc .NET C#) il y a quelques années.

Sur le front de fenêtres, Visual Studio 2010 Premium est livré avec l'explorateur de performance. Si vous exécutez un projet ou un fichier binaire en mode instrumentation, vous pouvez accéder aux événements matériels tels que les instructions retirées. Les résultats peuvent être quelque peu mélangés et incohérents selon les facteurs externes, mais ils s'intègrent bien avec Visual Studio et vous obtenez des comptes détaillés (avg, maximum, total) sur un niveau par méthode/module.

L'analyseur de performance Intel V-tune les expose également de manière native. Je n'ai pas encore joué avec cet outil mais il pourrait s'agir d'une API plus flexible que ce que Visual Studio 2010 expose.

+2

Merci, mais je suis dans l'entreprise pour développer et vendre IDE moi-même. Donc, cela ne m'aide évidemment pas. – Lothar

4

Ce thread semble un peu vieux mais si vous êtes toujours intéressé, j'ai écrit un howto récemment sur ce sujet en utilisant rien de plus que rdmsr et wrmsr sous Linux. Il ne traite que des compteurs de performance sur Intel uncore pour Westmere, mais le processus que j'ai décrit pourrait vous aider à comprendre ce dont vous avez besoin si vous ne l'avez pas déjà fait. Je suis sûr que Windows a un appel de programme ou de fonction équivalent à RDMSR et WRMSR. Le problème est que vous devez utiliser l'anneau 0 (mode kernel) pour lire les MSR. Je n'ai aucune idée de comment le faire dans Windows. Je ne serai pas en mesure d'aider avec des questions de Windows, mais peut être en mesure de répondre à certaines questions liées à MSR si vous en avez. Je ne suis en aucun cas un expert.

0

Ce fil semble assez vieux. Mais encore, tous les compteurs mentionnés ci-dessus sont disponibles à Intel PCM. Ces compteurs peuvent être utilisés comme un plugin Microsoft Perfmon ou une interface d'invite de commande. Le PCM Intel fournit des informations telles que le taux d'accès au cache L2 et L3, les échecs de cache, etc.

Questions connexes