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.
Réponse
Trop de publicités?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...).