Analizza l'utilizzo della larghezza di banda della memoria verticale

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.

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
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.

La dimensione del vertice media per un singolo frame, con un valore medio di 31,3 byte
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.