Mam pytanie dotyczące relacji między brakami pamięci podręcznej różnicowych poziomów pamięci podręcznej w architekturze x86 (Say Xeon X5660).Co powoduje brak pamięci podręcznej L3 w procesorze?
Zrobiłem profilowanie w aplikacji OpenCL (Blackscholes) na niektórych licznikach wydajności. Dla każdego licznika, mam podsumować wszystkie wartości ponad wszystkich rdzeni i uzyskać ten wynik:
instructions #: 493167746502.000000
L3_MISS #: 1967809.000000
L1_MISS #: 2344383795.000000
L2_DATA_MISS #: 901131.000000
L2_MISS #: 1397931.000000
memory loads #: 151559373227.000000
Pytanie jest, dlaczego liczba L3 strzela jest większa niż liczba pomyłek L2? (Wciąż powtarzam profilowanie wiele razy, a wariancja nie jest znacząca). Co myślałem zasadzie jest:
chybienia = L3 L2 + L3 uderza strzela
mógłby ktoś wytłumaczyć mi, co idzie źle tutaj, coś mnie ominęło?
Trochę dalej, co powoduje, że pamięć podręczna jest odczytywana dla ostatniego poziomu pamięci podręcznej procesora (CPU)? Czy to po prostu brak danych z L2?
Dzięki
Czy to możliwe, że mierzysz to na architekturze z oddzielnymi pamięciami podręcznymi L2 i zunifikowanym L3? Jeśli tak, możesz po prostu czytać pomyłki w pamięci podręcznej z jednego L2, a numery L3 mogą pochodzić ze zunifikowanego L3. – boiler96
Tak, zauważyłem o tym. Ale jestem pewien, że podsumowałem wszystkie rdzenie. Więc nie powinno mieć znaczenia, czy jest zunifikowane czy nie, prawda? – Zk1001
Inną sprawą jest, gdy robię to: "cat/sys/devices/system/cpu/cpu0/cache/index2/type", otrzymałem "ujednolicony". Wiadomo, że pamięć podręczna L2 jest prywatna, a 256 KB na rdzeń dla wszystkich architektur zachodnich, prawda? – Zk1001