Analizza l'utilizzo della larghezza di banda della memoria verticale

La larghezza di banda della memoria dei dati dei vertici può rappresentare un potenziale collo di bottiglia per le prestazioni della GPU del gioco. In un profilo di sistema AGI sono presenti alcuni contatori che possono aiutarti a diagnosticare i problemi di larghezza di banda della memoria dei vertici.

Contatori Qualcomm Adreno

Sui dispositivi con GPU Qualcomm Adreno, alcuni contatori importanti includono:

Contatore Descrizione
Vertex Memory Read Larghezza di banda dei dati dei vertici letti dalla memoria esterna.
Average Bytes/Vertex Dimensione media dei dati dei vertici, in byte.
% Vertex Fetch Stall Percentuale di cicli di clock in cui la GPU è bloccata sui dati dei vertici.

Contatori ARM Mali (WIP)

Sui dispositivi con GPU ARM Mali, alcuni contatori importanti includono:

Contatore Descrizione
Load/store read beats from external memory Beat di dati letti dalla memoria esterna dall'unità di caricamento/memorizzazione, in media sui core dello shader.
Load/store read beats from L2 cache Beat di dati letti dalla cache L2 dall'unità di caricamento/memorizzazione, in media sui core dello shader.
[Altro]

Per calcolare la larghezza di banda complessiva dai beat di lettura medi, il valore del contatore viene moltiplicato per la larghezza del bus (in genere 16 byte) e per il numero totale di core dello shader. [Altro]

Analisi dei contatori

Per misurare il comportamento di questi contatori, puoi misurare la larghezza di banda media e di picco nel corso di un singolo frame della GPU, che può essere delimitato da un blocco contiguo di Utilizzo della GPU.

Larghezza di banda di lettura della memoria dei vertici per un singolo frame, con un valore medio di 327 MB/s e un valore di picco di 1,16 GB/s
Figura 1: larghezza di banda di lettura della memoria dei vertici per un singolo frame, con un valore medio di 327 MBps e un valore di picco di 1,16 GBps

Ti consigliamo di non superare una larghezza di banda di lettura della memoria dei vertici di picco di 1, 5 GBps e una larghezza di banda media di 500 MBps. Valori più elevati indicano uno dei seguenti problemi comuni:

  • La dimensione dei vertici è troppo grande: i vertici potrebbero avere attributi di vertici di grandi dimensioni o un numero elevato di attributi di vertici, il che influisce notevolmente sul tempo di shading dei vertici.
  • I flussi di attributi dei vertici non sono suddivisi: gli attributi dei vertici sono interlacciati in un singolo buffer, riducendo l'efficienza della cache.
  • Vengono inviati troppi vertici per frame: i modelli complessi e/o un numero elevato di modelli potrebbero occupare una larghezza di banda maggiore e richiedere più tempo per lo shading.

I problemi di dimensione dei vertici possono essere diagnosticati anche tramite la traccia Byte medi / vertice, che ti consigliamo di non superare i 32 byte o vertici.

Dimensione media dei vertici per un singolo frame, con un valore medio di 31,3 byte
Figura 2: dimensione media dei vertici per un singolo frame, con un valore medio di 31,3 byte

Il modo migliore per diagnosticare quale di questi problemi potresti riscontrare è acquisire una traccia del profilo del frame per analizzare i formati dei vertici.