Analizowanie wykorzystania przepustowości pamięci wierzchołka
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Przepustowość pamięci danych wierzchołków może być potencjalnym wąskim gardłem wydajności procesora graficznego w Twojej grze. W profilu systemu AGI znajdują się liczniki, które mogą pomóc w diagnozowaniu problemów z przepustowością pamięci wierzchołków.
Liczniki Qualcomm Adreno
Na urządzeniach z procesorami graficznymi Qualcomm Adreno do ważnych liczników należą:
Kontroferta
Opis
Odczyt pamięci wierzchołka
Przepustowość danych wierzchołków odczytywanych z pamięci zewnętrznej.
Średnia liczba bajtów na wierzchołek
Średni rozmiar danych wierzchołków w bajtach.
% Vertex Fetch Stall
Odsetek cykli zegara, w których procesor graficzny jest blokowany przez dane wierzchołków.
Liczniki ARM Mali (w trakcie opracowywania)
Na urządzeniach z procesorami GPU ARM Mali do ważnych liczników należą:
Kontroferta
Opis
Wczytywanie/zapisywanie odczytanych bitów z pamięci zewnętrznej
Dane odczytywane z pamięci zewnętrznej przez jednostkę wczytywania/zapisywania, uśrednione w rdzeniach cieniowania.
Wczytywanie/zapisywanie odczytanych bloków z pamięci podręcznej L2
Dane odczytane z pamięci podręcznej L2 przez jednostkę wczytywania/zapisywania, uśrednione w rdzeniach cieniowania.
[Więcej]
Aby obliczyć ogólną przepustowość na podstawie średniej liczby odczytów, wartość licznika jest mnożona przez szerokość magistrali (zwykle 16 bajtów) i łączną liczbę rdzeni cieniowania. [Więcej]
Analiza kontr
Aby zmierzyć zachowanie tych liczników, możesz zmierzyć średnią i szczytową przepustowość w ciągu jednej klatki GPU, którą można wyznaczyć za pomocą ciągłego bloku wykorzystania GPU.
Rysunek 1. Przepustowość odczytu pamięci wierzchołków dla pojedynczej klatki, ze średnią wartością 327 MB/s i wartością szczytową 1,16 GB/s
Zalecamy maksymalną przepustowość odczytu pamięci wierzchołków nie większą niż 1,5 GB/s, a średnią przepustowość nie większą niż 500 MB/s. Wyższe wartości wskazują na jeden z kilku typowych problemów:
Rozmiar wierzchołka jest zbyt duży: wierzchołki mogą mieć duże atrybuty lub dużą liczbę atrybutów, co wpływa na czas cieniowania wierzchołków.
Strumienie atrybutów wierzchołków nie są rozdzielone: atrybuty wierzchołków są przeplatane w jednym buforze, co zmniejsza wydajność pamięci podręcznej.
Zbyt wiele wierzchołków przesłanych na klatkę: złożone modele lub duża liczba modeli mogą zajmować więcej przepustowości i dłużej się cieniować.
Problemy z rozmiarem wierzchołków można też diagnozować za pomocą ścieżki Średnia liczba bajtów na wierzchołek, która nie powinna przekraczać 32 bajtów lub wierzchołków.
Ilustracja 2. Średni rozmiar wierzchołka w przypadku pojedynczej klatki, ze średnią wartością 31,3 bajtów
Najlepszym sposobem na zdiagnozowanie, który z tych problemów występuje, jest wykonanie śledzenia profilu klatki w celu analizy formatów wierzchołków.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Analyze vertex memory bandwidth usage\n\nThe memory bandwidth of vertex data can be a potential bottleneck for your game's GPU performance. There are some counters in an AGI system profile that can help diagnose vertex memory bandwidth issues.\n\nQualcomm Adreno counters\n------------------------\n\nOn devices with Qualcomm Adreno GPUs, some notable counters include:\n\n| Counter | Description |\n|----------------------|---------------------------------------------------------------------|\n| Vertex Memory Read | Bandwidth of vertex data read from external memory. |\n| Average Bytes/Vertex | Average size of vertex data, in bytes. |\n| % Vertex Fetch Stall | Percentage of clock cycles where the GPU is blocked on vertex data. |\n\nARM Mali counters (WIP)\n-----------------------\n\nOn devices with ARM Mali GPUs, some notable counters include:\n\n| Counter | Description |\n|--------------------------------------------|----------------------------------------------------------------------------------------------|\n| Load/store read beats from external memory | Data beats read from external memory by the load/store unit, averaged over the shader cores. |\n| Load/store read beats from L2 cache | Data beats read from the L2 cache by the load/store unit, averaged over the shader cores. |\n| \\[More\\] | |\n\nTo calculate the overall bandwidth from average read beats, the counter value is multiplied by the bus width (typically 16 bytes) and by the total number of shader cores. \\[More\\]\n\nCounter analysis\n----------------\n\nTo measure the behavior of these counters, you can measure the average and peak\nbandwidth over the course of a single GPU frame, which can be delineated with a\ncontiguous block of **GPU Utilization**.\n**Figure 1:**Vertex memory read bandwidth for a single frame, with an average value of 327 MBps and a peak value of 1.16 GBps\n\nWe recommend a peak vertex memory read bandwidth of no higher than 1.5 GBps, and an average bandwidth no higher than 500 MBps. Higher values are indicators of one of a few common issues:\n\n- **Vertex size is too big**: Vertices may have large vertex attributes or a large number of vertex attributes, affecting vertex shading time at large.\n- **Vertex attribute streams are not split**: Vertex attributes are interleaved into a single buffer, reducing cache efficiency.\n- **Too many vertices submitted per frame**: Complex models and/or a large number of models may take up greater bandwidth and take longer to shade.\n\nVertex size issues may also be diagnosed through the **Average Bytes / Vertex**\ntrack, which we recommend to be no higher than 32 bytes or verteces.\n**Figure 2:**Average vertex size for a single frame, with an average value of 31.3 bytes\n\nThe best way to diagnose which of these problems you may be facing is by taking a frame profile trace to [analyze vertex formats](/agi/frame-trace/vertex-formats)."]]