2009-08-12 14 views
6

C'è qualche piccolo strumento che mi dà accesso ai dati raccolti dai contatori CPU Intel (come mancanze di cache L1/L2, fallimenti di previsione ramo ... sai che ci sono loro hunderts sulle moderne CPU Core2).Come posso accedere al Contatore CPU Intel

Deve funzionare su Windows (pur essendo in grado di usarlo con Solaris, FreeBSD, Linux, MacOSX sarebbe ovviamente bello).

+0

Ok nel frattempo ho trovato la libreria PAPI.Ma questo è più o meno solo un Linux (supporta Solaris solo su Sparc) e richiede alcune patch per il kernel Linux - sì, so Linus ha detto che il monitoraggio delle prestazioni è una delle due vere debolezze. E ho trovato perfmon2 e rabbit (un progetto morto) che sono anche solo Linux. Nessun hit per Windows finora. – Lothar

risposta

0

Non hai scritto che stai cercando un'applicazione o una biblioteca.

Per Windows è presente Intel VTune. Ma questo non è esattamente un piccolo strumento. Per Linux ho usato oprofile, che funziona senza patch del kernel.

+0

Sto cercando una libreria perché voglio scrivere un profiler di strumenti che registra gli eventi INSTRUCTION_RETIRED invece di millisecondi. Sì e forse alcune altre cose, quindi puoi vederlo come un piccolo strumento VTune che voglio scrivere da solo. – Lothar

+0

Non penso che ci sia una biblioteca. Si accede al registro di Performance Monitor tramite le istruzioni rdmsr e wrmsr. Per cominciare si può consultare il "Manuale degli sviluppatori di software per architetture Intel 64 e IA-32" (google per l'ultima versione) Volume 3B, Capitolo 18.11ff. Vi è esattamente descritto ciò che è necessario per accedere ai contatori delle prestazioni. – hirschhornsalz

0

Su OS X, Shark consente di ottenere dati dai PMC. Non sono sicuro di cosa sia disponibile su Windows oltre agli strumenti di Intel (VTune, come menzionato da drhirsch).

0

Prova questo http://icl.cs.utk.edu/papi/ Si tratta di una libreria completa che consente di leggere i dati contatori della CPU, funziona sia su Windows e Linux [e altri OS]

+0

PAPI non funziona su Windows. –

1

Papi è un vantaggio molto promettente, tuttavia, credo hanno interrotto il supporto per Windows (e quindi .NET C#) alcuni anni fa.

Sul fronte di Windows, Visual Studio 2010 Premium viene fornito con Performance explorer. Se si esegue un progetto o un binario in modalità strumentazione, è possibile accedere agli eventi hardware come le istruzioni ritirate.

I risultati possono essere un po 'misti e incoerenti a seconda dei fattori esterni, ma si integra perfettamente con Visual Studio e si ottengono conteggi dettagliati (media, massimo, totale) su un livello per metodo/modulo.

L'analizzatore di prestazioni Intel V-tune espone anche questi in modo nativo. Non ho ancora giocato con questo strumento, ma potrebbe essere un'API più flessibile rispetto a ciò che Visual Studio 2010 espone.

+2

Grazie, ma io sono nel business per sviluppare e vendere me stesso IDE. Quindi questo ovviamente non mi aiuta. – Lothar

4

Questo thread sembra un po 'vecchio ma se sei ancora interessato, ho scritto un howto di recente su questo argomento usando nient'altro che rdmsr e wrmsr in Linux. Si occupa solo dei contatori delle prestazioni su un Intel uncore per Westmere, ma il processo che ho descritto potrebbe aiutarti a capire cosa ti serve se non lo hai già fatto. Sono sicuro che Windows ha qualche equivalente chiamata di programma o funzione a RDMSR e WRMSR. Il problema è che devi fare il ring 0 (modalità kernel) per leggere gli MSR. Non ho idea di come farlo in Windows. Non sarò in grado di aiutarti con domande su Windows, ma potrei essere in grado di rispondere ad alcune domande relative a MSR se ne hai. Comunque non sono un esperto.

0

Questo thread sembra piuttosto vecchio. Tuttavia, tutti i contatori sopra menzionati sono disponibili al numero Intel PCM. Questi contatori possono essere utilizzati come plugin Microsoft Perfmon o un'interfaccia del prompt dei comandi. Intel PCM fornisce informazioni come il rapporto di riscontri cache L2 e L3, mancate cache ecc.

Problemi correlati