Gdy używamy CUDA
profilera nvvp
, istnieje kilka "napowietrzne" s skorelowane z instrukcją, na przykład:W CUDA profiler nvvp, co oznacza "Overhead współdzielonej pamięci globalnej"? Jak to oblicza?
- Oddział Rozbieżność Overhead;
- Współdzielenie pamięci/Współdzielenie pamięci współdzielonej; i
- Lokalne/globalne zwielokrotnienie powtórzenia pamięci podręcznej.
Moje pytania są następujące:
- Co przyczyna (y) I te koszty
- jak są obliczane?
- Podobnie, w jaki sposób oblicza się globalną wydajność ładowania/składowania?
Załącznik: Znalazłem wszystkie formuły obliczające te koszty w "Podręczniku użytkownika Profesora CUDA" zapakowanym w zestaw narzędzi CUDA5.
Dzięki za odpowiedzi, Benc, mam zorientowali się „odtwarzane Instrukcje” i „Wspólna banku konflikt replay” procentów. Jednak biorąc pod uwagę formuły powtórzeń "Global/Local memory", nadal nie mogę zrozumieć, dlaczego globalne/lokalne pomyłki w pamięci podręcznej spowodują powtórzenia instrukcji. Gdy wydarzy się pamięć podręczna, wystarczy przejść do pamięci globalnej, aby pobrać potrzebne informacje, DLACZEGO POWTÓRZY? – troore
Myślę, że możesz znaleźć odpowiedzi na swoje pytanie w [tych slajdach] (http://developer.download.nvidia.com/CUDA/training/bandwidthlimitedkernels_webinar.pdf).Operacje pamięci są wydawane na osnowy, tak jak każda inna instrukcja. Kiedy osnowa żąda następnych słów, słabe koalescumowanie pamięci doprowadzi do wielu błędów ładunku l1, powodując tym samym powtarzanie instrukcji. Zauważ, że nie jestem ekspertem od CUDA, więc moje zrozumienie może nie być poprawne :-) – BenC
Ten [inny link] (http://www.freepatentsonline.com/8266383.html) może być tym, czego szukałeś, ale szczegóły techniczne wymagają prawdziwej motywacji. – BenC