Narzędzie do profilowania pamięci
Korzystając z profilu pamięci, możesz wizualizować wykorzystanie pamięci przez przyspieszacze w czasie.
Obsługiwane platformy
TPU: obsługiwane
GPU: obsługiwane
Korzystanie z narzędzia do profilowania pamięci
Profil pamięci zawiera te komponenty:
- Selektor identyfikatora pamięci u góry strony pozwala skupić się na pamięci o dużej przepustowości (HBM) podłączonej do jednego z różnych akceleratorów, które mogą być połączone z hostem, którego profil jest tworzony, lub nawet z pamięcią hosta w niektórych przypadkach.
- „Wykres osi czasu pamięci” i „Podsumowanie profilu pamięci” zawierają ogólne informacje o przydzielaniu i zwalnianiu pamięci oraz jej wykorzystaniu podczas sesji profilowania, w tym podział na stos i kupę oraz wpływ fragmentacji.
- Tabela ze szczegółowymi informacjami o pamięci zawiera informacje o operacjach na poziomie frameworku, które w największym stopniu przyczyniają się do wykorzystania pamięci. Istnieją też dodatkowe szczegóły dotyczące poszczególnych operacji, takie jak kształt, typ danych itp., jeśli kompilator udostępnia te informacje XProf. Tabela zawiera te informacje w miejscu szczytowego wykorzystania w oknie profilowania, aby ułatwić debugowanie sytuacji braku pamięci.
- Przydziałami i rezerwacjami zarządza (i dodaje je do profilu) moduł alokacji XLA, który zarządza całą pamięcią HBM.
- Pamiętaj, że profil pamięci jest zwykle bardziej przydatny i bardziej wartościowy w przypadku profilowania GPU niż w przypadku zadań TPU. Model wykonywania na TPU polega zazwyczaj na przydzielaniu dużej ilości zasobów przez kompilator XLA z góry, a nie podczas trenowania modelu lub wnioskowania. Dlatego często widać, że wykres alokacji wygląda jak płaska pozioma linia. Alokacje prawdopodobnie wystąpiły na samym początku profilu (jeśli profil był aktywny w tym momencie), przez co trudno je zauważyć.
- Dane o podziałach w podsumowaniu profilu pamięci i na wykresie chronologii pamięci (w procentach) pomagają wykrywać problemy z podziałem pamięci. Wysoka wartość fragmentacji wskazuje, że mimo że może być wystarczająca łączna ilość wolnej pamięci, nie jest ona ciągła, więc duże żądanie przydzielenia może się nie powieść.
Oto najważniejsze różnice między tym narzędziem a Memory Viewer:
- Wyświetlacz pamięci jest całkowicie statyczny i skupia się na kolejności programów. Profil pamięci zapewnia dynamiczne wyświetlanie danych na przestrzeni czasu w okresie profilowania.
- W Memory Viewer można wizualizować przydzielanie pamięci dla poszczególnych modułów XLA. W przypadku obciążeń składających się z wielu modułów XLA profil pamięci zapewnia globalny widok pamięci.