Analyser l'utilisation de la bande passante de la mémoire des données de sommets

La bande passante mémoire des données de vertex peut potentiellement brider les performances du GPU de votre jeu. Certains compteurs d'un profil système AGI peuvent vous aider à diagnostiquer les problèmes de bande passante de la mémoire des vertex.

Compteurs Qualcomm Adreno

Sur les appareils équipés de GPU Qualcomm Adreno, voici quelques compteurs notables :

Compteur Description
Lecture de la mémoire des sommets Bande passante des données de vertex lues à partir de la mémoire externe.
Nombre moyen d'octets par sommet Taille moyenne des données de vertex, en octets.
% de décrochage de la récupération des sommets Pourcentage de cycles d'horloge pendant lesquels le GPU est bloqué sur les données de vertex.

Compteurs ARM Mali (en cours de développement)

Sur les appareils équipés de GPU ARM Mali, voici quelques compteurs notables :

Compteur Description
Charger/stocker les beats lus à partir de la mémoire externe Nombre de bits de données lus à partir de la mémoire externe par l'unité de chargement/stockage, en moyenne sur les cœurs de nuanceur.
Charger/stocker les beats de lecture à partir du cache L2 Battements de données lus à partir du cache L2 par l'unité de chargement/stockage, en moyenne sur les cœurs de nuanceur.
[Plus]

Pour calculer la bande passante globale à partir des battements de lecture moyens, la valeur du compteur est multipliée par la largeur du bus (généralement 16 octets) et par le nombre total de cœurs de nuanceur. [Plus]

Analyse des contre-mesures

Pour mesurer le comportement de ces compteurs, vous pouvez mesurer la bande passante moyenne et maximale au cours d'une seule trame de GPU, qui peut être délimitée par un bloc contigu d'utilisation du GPU.

Bande passante de lecture de la mémoire des sommets pour un seul frame, avec une valeur moyenne de 327 Mbits/s et une valeur maximale de 1,16 Gbits/s
Figure 1  : Bande passante de lecture de la mémoire des sommets pour un seul frame, avec une valeur moyenne de 327 Mbit/s et une valeur maximale de 1,16 Gbit/s

Nous vous recommandons de ne pas dépasser une bande passante de lecture de la mémoire des sommets de 1, 5 Go/s (valeur maximale) et de 500 Mo/s (valeur moyenne). Des valeurs élevées indiquent l'un des problèmes courants suivants :

  • La taille des sommets est trop importante : les sommets peuvent avoir des attributs volumineux ou un grand nombre d'attributs, ce qui affecte le temps d'ombrage des sommets en général.
  • Les flux d'attributs de vertex ne sont pas fractionnés : les attributs de vertex sont entrelacés dans un seul tampon, ce qui réduit l'efficacité du cache.
  • Trop de sommets envoyés par frame : les modèles complexes et/ou un grand nombre de modèles peuvent occuper une bande passante plus importante et prendre plus de temps à ombrer.

Les problèmes de taille des vertex peuvent également être diagnostiqués à l'aide de la piste Moyenne des octets / vertex, qui ne doit pas dépasser 32 octets ou vertex.

Taille moyenne des sommets pour une seule frame, avec une valeur moyenne de 31,3 octets
Figure 2  : Taille moyenne des sommets pour une seule frame, avec une valeur moyenne de 31,3 octets

Le meilleur moyen de déterminer lequel de ces problèmes vous rencontrez est d'effectuer une trace de profil de frame pour analyser les formats de vertex.