Czy procesor Intel PMU może być używany do pomiaru wykorzystania pasma odczytu/zapisu w pamięci rdzeniowej? Tutaj "pamięć" oznacza DRAM (tj. Nie trafiając na żaden poziom pamięci podręcznej).Czy liczniki monitora wydajności Intel mogą być używane do pomiaru przepustowości pamięci?
Odpowiedz
Tak, jest to możliwe, choć niekoniecznie jest tak proste, jak programowanie zwykłych liczników PMU.
Jednym ze sposobów jest użycie programowalnych liczników kontrolerów pamięci, do których dostęp odbywa się przez przestrzeń PCI. Dobrym miejscem na rozpoczęcie jest badanie własnej implementacji Intela w pcm-memory
pod numerem pcm-memory.cpp. Ta aplikacja pokazuje przepustowość per-socket lub per-memory-controller, która jest odpowiednia do niektórych zastosowań. W szczególności przepustowość jest dzielona pomiędzy wszystkie rdzenie, więc na cichym komputerze można założyć, że większość przepustowości jest związana z testowanym procesem, lub jeśli chcesz monitorować na poziomie gniazda, to jest dokładnie to, czego potrzebujesz.
Inną alternatywą jest ostrożne programowanie liczników "offscena odp.". Te, o ile mi wiadomo, dotyczą ruchu między L2 (ostatnią prywatną pamięcią podręczną) a resztą systemu. Możesz filtrować wyniki wyniku reakcji, więc możesz użyć kombinacji różnych zdarzeń "L3 Miss" i pomnożyć przez rozmiar linii pamięci podręcznej, aby uzyskać szerokość pasma odczytu i zapisu. Zdarzenia są dość drobnoziarniste, więc możesz je dalej rozbić przez to, co spowodowało dostęp w pierwszej kolejności: pobieranie instrukcji, żądania żądań danych, wstępne pobieranie itd., Itp.
Liczniki odpowiedzi offcore na ogół pozostają w tyle za obsługa za pomocą narzędzi takich jak perf
i likwid
, ale przynajmniej najnowsze wersje wydają się mieć uzasadnione wsparcie, nawet dla części klienta, takich jak SKL.
Nie jestem pewien co do Intel PMU, ale myślę, że możesz użyć wzmacniacza Intel VTune (https://software.intel.com/en-us/intel-vtune-amplifier-xe). Ten ma wiele narzędzi do monitorowania wydajności (pamięć, pamięć cpu, cpu). Może to zadziała dla ciebie.
Tak (ish) pośrednio. Możesz użyć relacji między licznikami (w tym znacznikiem czasu), aby wywnioskować inne liczby. Na przykład, jeśli spróbujesz interwału o długości 1 sekundy, a są tam pomyłki pamięci podręcznej N ostatniego poziomu (3), możesz być całkiem pewny, że zajmujesz N * CacheLineSize bajtów na sekundę.
Robi się nieco lepki odnosić się dokładnie do działalności programowej, jak te chybienia może odzwierciedlać cpu prefetching, aktywność przerwań itp
Jest też bagna „to CPU nie liczy (MMX, SSE, AVX, ..) chyba że ten bit konfiguracyjny jest w tym stanie "; w ten sposób toczenia własne jest niewygodne ....
- 1. Jak interpretować MapReduce wydajności Liczniki
- 2. Jak używać JavaScriptu do pomiaru jasności monitora użytkownika?
- 3. Czy F # TypeProviders mogą być używane w aplikacji Windows Store?
- 4. Czy funkcje obiektu wywołania funkcji mapy Pythona mogą być używane?
- 5. Czy kontrakty Microsoft Code mogą być używane z witryną ASP.NET?
- 6. Czy ładowarki mogą być używane bez dostawcy treści lub kombinacji?
- 7. Czy słowniki mogą być używane w języku C++
- 8. Czy pseudoelementy mogą być używane samodzielnie w CSS?
- 9. Narzędzia do analizy pamięci/wydajności dla Androida
- 10. Liczniki wydajności w operacjach usług sieciowych
- 11. Kanoniczna metoda pomiaru wydajności uruchamiania aplikacji iOS?
- 12. Liczniki Perfmon do sprawdzania wycieku pamięci
- 13. Inline Asembler: Jakie rejestry zarysowania mogą być używane?
- 14. Wielkość pamięci procesowej - różne liczniki
- 15. "Protokoły nie mogą być używane z isinstance()" - dlaczego nie?
- 16. jakie bazy danych mogą być używane z java?
- 17. Jakie typy mogą być używane dla członków adnotacji Java?
- 18. Dlaczego Integer i int mogą być używane zamiennie?
- 19. Cabal: Co oznacza "tylko zainstalowane już instancje mogą być używane"?
- 20. Czy tymczasowe dane logowania do roli IAM mogą być używane w szablonach Cloudformation?
- 21. Czy komponenty internetowe mogą być używane do tworzenia niestandardowych elementów wejściowych?
- 22. Czy liczniki wydajności są odpowiednim narzędziem do mojej pracy? Jeśli tak, jak z nich korzystać?
- 23. Które wdrożenie listy ma być używane?
- 24. Liczniki czasu do mierzenia opóźnienia
- 25. Czy renderowanie OpenGL może być używane w monitorach 3D?
- 26. Jak odczytać liczniki wydajności na procesorach i5, i7
- 27. javax.servlet.jsp.PageContext nie mogą być rozwiązane do rodzaju
- 28. Czy liczniki czasu Erlanga?
- 29. Haskell: Czy zmienne typu mogą być używane w ramach definicji funkcji?
- 30. Czy protokoły SVN i HTTP mogą być bezpiecznie używane jednocześnie w tym samym repozytorium?
VTune to narzędzie do korzystania z liczników wydajności sprzętu (tj. PMU = jednostka monitorowania wydajności). Jeśli nie możesz wyjaśnić, * jak * uzyskać VTune do pomiaru przepustowości pamięci, nie jest to przydatna odpowiedź. (VTune jest użytecznym narzędziem i może pomóc w znalezieniu hotspotów z cache-miss i tym podobnych, i najwyraźniej wykracza daleko poza zwykłe rejestrowanie liczników perf.) Ale nie o to pyta.) –