Analizza l'utilizzo della larghezza di banda della memoria verticale
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
La larghezza di banda della memoria dei dati del vertice può essere un potenziale collo di bottiglia per le prestazioni della GPU del tuo gioco. In un profilo di sistema AGI sono presenti alcuni contatori che possono aiutare a diagnosticare i problemi relativi alla larghezza di banda della memoria verticale.
Contatori Qualcomm Adreno
Sui dispositivi con GPU Qualcomm Adreno, alcuni contatori degni di nota sono:
Negozia
Descrizione
Lettura memoria Vertex
Larghezza di banda dei dati del vertice letti dalla memoria esterna.
Byte medi/Vertex
Dimensione media dei dati del vertice, in byte.
% stallo recupero vertice
Percentuale di cicli di clock in cui la GPU è bloccata sui dati del vertice.
Contatori ARM Mali (in fase di elaborazione)
Sui dispositivi con GPU ARM Mali, alcuni contatori degni di nota includono:
Negozia
Descrizione
Carica/archivia beat di lettura dalla memoria esterna
Battiti dei dati letti dalla memoria esterna dall'unità di caricamento/archiviazione, calcolata in media sui core dello Shader.
Carica/archivia i beat di lettura dalla cache L2
Battiti di dati letti dalla cache L2 dall'unità di caricamento/archiviazione, calcolati in media sui core dello mesh.
[Altro]
Per calcolare la larghezza di banda complessiva dai battiti medi di lettura, il valore del contatore viene moltiplicato per la larghezza del bus (in genere 16 byte) e per il numero totale di core dello shabbyr. [Altro]
Analisi dei contatori
Per misurare il comportamento di questi contatori, puoi misurare la larghezza di banda media e massima nel corso di un singolo frame GPU, che possono essere definiti con un blocco contiguo di Utilizzo GPU.
Figura 1: la larghezza di banda di lettura della memoria Vertex per un singolo frame, con un valore medio di 327 MBps e un valore di picco di 1,16 GBps
Consigliamo una larghezza di banda di lettura della memoria del vertice di picco non superiore a 1, 5 GBps e una larghezza di banda media non superiore a 500 MBps. I valori più elevati sono indicatori di uno di alcuni problemi comuni:
La dimensione del vertice è troppo grande: i vertici possono avere attributi per il vertice grandi o un numero elevato di attributi dei vertici, che influiscono in generale sul tempo di ombreggiatura del vertice.
Gli stream degli attributi Vertex non sono suddivisi: gli attributi di Vertex sono interleaving in un unico buffer, riducendo l'efficienza della cache.
Troppi vertici inviati per frame: i modelli complessi e/o un numero elevato di modelli potrebbero utilizzare una larghezza di banda maggiore e richiedere più tempo per l'ombreggiatura.
I problemi relativi alle dimensioni dei vertici possono essere diagnosticati anche tramite la traccia Byte medi / Vertex, che consigliamo di non superare i 32 byte o verteci.
Figura 2: dimensioni del vertice medie per un singolo frame, con un valore medio di 31,3 byte
Il modo migliore per diagnosticare quali di questi problemi potresti riscontrare è eseguire una traccia del profilo del frame per analizzare i formati dei vertici.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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)."]]