6 votes

API de profilage de cache simple

Existe-t-il un moyen d'accéder aux compteurs matériels (Intel]) pour chaque noyau ? de manière programmée ? (c'est-à-dire non perf , perfmon o valgrind et je devrais ajouter "simple", donc pas de PAPI J'aimerais savoir (pour chaque noyau) combien de hits/manques de cache L1-LLC il (= un certain programme fonctionnant sur ce noyau) a encouru. Ceci est pour Linux 3.2.0-32, C, et en utilisant GCC.

1voto

Mats Petersson Points 70074

Les compteurs de performance du processeur ne peuvent pas être lus à partir d'un code en mode "utilisateur", vous avez donc besoin d'une sorte de module noyau pour le faire. Une fois que vous l'avez, ce n'est pas très difficile, il y a un certain nombre de MSR.

Vous pouvez peut-être aussi utiliser /dev/cpu/core-number/msr pour lire les valeurs sans module kernel.

Décrire tous les détails de la façon dont vous faites cela est un peu trop pour une réponse (à moins que je ne copie et colle toute la section du manuel des programmeurs d'Intel (Vol3) - ce qui, je pense, n'est pas tout à fait ce que nous voulons ici...).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X