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
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
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
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