Auslastung der Vertex-Speicherbandbreite analysieren
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Die Arbeitsspeicherbandbreite von Vertex-Daten kann ein potenzieller Engpass für die GPU-Leistung Ihres Spiels sein. Es gibt einige Zähler in einem AGI-Systemprofil, die bei der Diagnose von Problemen mit der Vertex-Speicherbandbreite helfen können.
Qualcomm Adreno-Zähler
Auf Geräten mit Qualcomm Adreno-GPUs sind unter anderem folgende Zähler verfügbar:
Zähler
Beschreibung
Vertex Memory Read
Bandbreite der aus dem externen Speicher gelesenen Vertex-Daten.
Durchschnittliche Byte/Vertex
Durchschnittliche Größe der Vertex-Daten in Byte.
% Vertex-Abruf-Stall
Prozentsatz der Taktzyklen, in denen die GPU aufgrund von Vertex-Daten blockiert ist.
ARM Mali-Zähler (WIP)
Auf Geräten mit ARM Mali-GPUs sind unter anderem die folgenden Zähler verfügbar:
Zähler
Beschreibung
Gelesene Beats aus dem externen Speicher laden/dort speichern
Datenbits, die von der Load/Store-Einheit aus dem externen Speicher gelesen werden, gemittelt über die Shader-Cores.
Lesevorgänge aus dem L2-Cache laden/speichern
Datenbits, die von der Load/Store-Einheit aus dem L2-Cache gelesen werden, gemittelt über die Shader-Cores.
[Mehr]
Um die Gesamtbandbreite aus den durchschnittlichen Lesevorgängen zu berechnen, wird der Zählerwert mit der Busbreite (in der Regel 16 Byte) und der Gesamtzahl der Shader-Cores multipliziert. [Mehr]
Gegenanalyse
Um das Verhalten dieser Zähler zu messen, können Sie die durchschnittliche und die Spitzenbandbreite im Laufe eines einzelnen GPU-Frames messen, der durch einen zusammenhängenden Block von GPU-Auslastung abgegrenzt werden kann.
Abbildung 1: Vertex-Speicherlesebandbreite für einen einzelnen Frame mit einem Durchschnittswert von 327 MB/s und einem Spitzenwert von 1, 16 GB/s
Wir empfehlen eine maximale Bandbreite für das Lesen von Vertex-Speicher von höchstens 1, 5 GB/s und eine durchschnittliche Bandbreite von höchstens 500 MB/s. Höhere Werte deuten auf eines von mehreren häufigen Problemen hin:
Vertexgröße ist zu groß: Knoten können große Knotenattribute oder eine große Anzahl von Knotenattributen haben, was sich auf die Knoten-Shading-Zeit auswirkt.
Vertex-Attributstreams werden nicht aufgeteilt: Vertex-Attribute werden in einem einzigen Puffer verschachtelt, was die Cache-Effizienz verringert.
Zu viele Knotenpunkte pro Frame gesendet: Komplexe Modelle und/oder eine große Anzahl von Modellen können mehr Bandbreite beanspruchen und länger zum Rendern benötigen.
Probleme mit der Vertex-Größe können auch über den Track Durchschnittliche Byte pro Vertex diagnostiziert werden. Wir empfehlen, dass dieser Wert nicht höher als 32 Byte oder Vertices ist.
Abbildung 2 : Durchschnittliche Vertex-Größe für einen einzelnen Frame mit einem Durchschnittswert von 31, 3 Byte
Am besten lässt sich herausfinden, welches dieser Probleme bei Ihnen auftritt, indem Sie einen Frame-Profil-Trace erstellen, um Vertex-Formate zu analysieren.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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)."]]