2009-08-12 16 views
6

Hay alguna pequeña herramienta que me da acceso a los datos recopilados por los contadores de CPU Intel (como fallas de caché L1/L2, fallas de predicción de bifurcación ... sabes que hay muchos de ellos) en la CPU Core2 moderna).¿Cómo puedo acceder al contador de CPU Intel

Debe funcionar en Windows (mientras que ser capaz de usarlo con Solaris, FreeBSD, Linux, MacOSX sería bueno).

+0

Bien, mientras tanto encontré la biblioteca PAPI.Pero esto es más o menos solo Linux (soporta Solaris solo en Sparc) y requiere algunos parches de kernel de Linux. Sí, sé que Linus dijo que el monitoreo del rendimiento es una de las dos debilidades reales. Y encontré perfmon2 y rabbit (un proyecto inactivo) que también son solo Linux. Hasta el momento, no se ha visto nada por las ventanas. – Lothar

Respuesta

0

Usted no ha escrito de que está buscando una aplicación o una biblioteca.

Para Windows hay Intel VTune. Pero esto no es exactamente una pequeña herramienta. Para linux he usado Oprofile, que funciona sin parches de kernel.

+0

Estoy buscando una biblioteca porque quiero escribir un perfilador de instrumentos que registra eventos INSTRUCTION_RETIRED en lugar de milisegundos. Sí y tal vez algunas otras cosas, por lo que puede verlo como una pequeña herramienta de VTune que quiero escribir yo mismo. – Lothar

+0

No creo que haya una biblioteca. El registro del monitor de rendimiento se accede a través de las instrucciones rdmsr y wrmsr. Para empezar, puede consultar el "Manual de desarrollo de software de arquitecturas Intel 64 e IA-32" (google para obtener la última versión) Volumen 3B, Capítulo 18.11ff. Se describe exactamente lo que necesita para acceder a los Contadores de rendimiento. – hirschhornsalz

0

En OS X, Shark le permite obtener datos de los PMC. No estoy seguro de qué hay disponible en Windows aparte de las herramientas de Intel (VTune, como lo menciona drhirsch).

0

Prueba este http://icl.cs.utk.edu/papi/ Es una biblioteca completa que le permite leer cualquier dato contadores CPU, funciona tanto en Windows y Linux [y otro sistema operativo]

+0

PAPI no funciona en Windows. –

1

PAPI es una ventaja muy prometedor, sin embargo, creo suspendieron la compatibilidad con Windows (y, por lo tanto, con .NET C#) hace bastantes años.

En el frente de Windows, Visual Studio 2010 Premium viene con explorador de rendimiento. Si ejecuta cualquier proyecto o binario en modo de instrumentación, puede obtener acceso a eventos de hardware tales como instrucciones retiradas.

Los resultados pueden ser un tanto mixtos e inconsistentes dependiendo de factores externos, pero se integra muy bien con Visual Studio y se obtienen recuentos detallados (promedio, máximo, total) por nivel de método/módulo.

El analizador de rendimiento Intel V-tune también los expone de forma nativa. Todavía no jugué con esta herramienta, pero podría ser una API más flexible que la que expone Visual Studio 2010.

+2

Gracias, pero estoy en el negocio de desarrollar y vender IDE yo mismo. Entonces esto obviamente no me ayuda. – Lothar

4

Este hilo parece un poco viejo, pero si todavía está interesado, escribí un howto recientemente sobre este tema usando solo rdmsr y wrmsr en Linux. Solo se ocupa de los contadores de rendimiento en un puntaje Intel para Westmere, pero el proceso que describí podría ayudarte a descubrir lo que necesitas si aún no lo has hecho. Estoy seguro de que Windows tiene un programa equivalente o llamada de función a RDMSR y WRMSR. El problema es que necesita ser el anillo 0 (modo kernel) para leer los MSR. No tengo idea de cómo hacer eso en Windows. No podré ayudar con ninguna pregunta de Windows, pero es posible que pueda responder algunas preguntas relacionadas con MSR si tiene alguna. De ninguna manera soy un experto.

0

Este hilo parece bastante antiguo. Pero aún así, todos los contadores mencionados están disponibles en Intel PCM. Estos contadores se pueden usar como un complemento de Microsoft Perfmon o una interfaz de símbolo del sistema. El PCM de Intel proporciona información como la tasa de aciertos de caché L2 y L3, falta de memoria caché, etc.

Cuestiones relacionadas