2012-05-02 18 views
9

Tengo una pregunta con respecto a la relación entre fallos de caché de los niveles de caché diferencia en una arquitectura x86 (Say Xeon X5660).¿Qué causa un error de caché L3 en la CPU?

he hecho un poco más de una aplicación de perfiles de OpenCL (Blackscholes), en algunos contadores de rendimiento. Para cada contador, resumo todos los valores por encima de todos los núcleos y obtener este resultado:

instructions #: 493167746502.000000 

L3_MISS #: 1967809.000000 

L1_MISS #: 2344383795.000000 

L2_DATA_MISS #: 901131.000000 

L2_MISS #: 1397931.000000 

memory loads #: 151559373227.000000 

La pregunta es ¿por qué el número de L3 echa de menos es más grande que el número de fallos L2? (Sigo volviendo a ejecutar el perfil muchas veces y la varianza no es significativa). Lo que pensé que básicamente es:

pierde L2 = L3 + L3 golpea pierde

posible que alguien me explique lo que va mal aquí, me he perdido algo?

Poniendo un poco más lejos, lo que provoca una lectura de la memoria caché de último nivel (CPU) de la CPU caché? ¿Es simplemente una pérdida de datos de L2?

Gracias

+4

Podría ser que se está midiendo esto en una arquitectura con cachés L2 y L3 separados unificado? Si es así, es posible que solo esté leyendo errores de caché de un L2, y los números L3 podrían ser de un L3 unificado. – boiler96

+0

Sí, me di cuenta de esto. Pero estoy seguro de que he resumido todos los núcleos. Por lo tanto, no debería importar si está unificado o no, ¿verdad? – Zk1001

+0

Otra cosa es que, cuando hago esto: "cat/sys/devices/system/cpu/cpu0/cache/index2/tipo", lo que tengo es "unificado". Se sabe que la memoria caché L2 es privada y 256 KB por núcleo para todas las arquitecturas de Westmere, ¿no? – Zk1001

Respuesta

2

The 32 nanometer, six core Westmere-EP chip

Ref Image: http://www.theregister.co.uk/2010/02/03/intel_westmere_ep_preview/

Como se puede ver arriba, en 'Westmere-EP' bloque configuración de 3 núcleos comparten una sección de caché L3. Entonces, ¿qué dice "boiler96" tiene sentido? Estás obteniendo errores L2 en núcleos individuales o tu recuento de errores L3 proviene de Uncore, que se combina el número de fallas de todos los núcleos.

Cuestiones relacionadas