Analiza el uso del ancho de banda de la memoria de Vertex
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
El ancho de banda de memoria de los datos de Vertex puede ser un posible cuello de botella para el rendimiento de la GPU de tu juego. Hay algunos contadores en un perfil del sistema AGI que pueden ayudar a diagnosticar problemas de ancho de banda de memoria de Vertex.
Contadores de Qualcomm Adreno
En los dispositivos con GPU Qualcomm Adreno, se incluyen algunos contadores destacados:
Contraofertar
Descripción
Lectura de memoria de Vertex
Ancho de banda de los datos de vértices leídos desde la memoria externa.
Promedio de bytes por vértice
Tamaño promedio de los datos de vértices, en bytes.
Porcentaje de bloqueos de recuperación de Vertex
Porcentaje de ciclos de reloj en los que la GPU está bloqueada en los datos de vértices.
Contadores de ARM Mali (en construcción)
En los dispositivos con GPU ARM Mali, algunos contadores destacados incluyen los siguientes:
Contraofertar
Descripción
Carga o almacena ritmos de lectura de una memoria externa
Los datos superan a los que se leen desde la memoria externa por la unidad de carga o almacenamiento, promediados por los núcleos del sombreador.
Carga o almacena ritmos de lectura de la caché de L2
Los datos superan la lectura de la caché L2 por la unidad de carga/almacenamiento, promediada en los núcleos del sombreador.
[Más]
Para calcular el ancho de banda total de los tiempos de lectura promedio, el valor del contador se multiplica por el ancho del bus (generalmente, 16 bytes) y por la cantidad total de núcleos del sombreador. [Más]
Contador
Para medir el comportamiento de estos contadores, puedes medir el ancho de banda promedio y máximo en el transcurso de un solo marco de GPU, que se puede delimitar con un bloque contiguo de uso de GPU.
Figura 1: Ancho de banda de lectura de memoria de Vertex para un solo fotograma, con un valor promedio de 327 MBps y un máximo de 1.16 GBps
Recomendamos un ancho de banda máximo de lectura de memoria de vértice de no más de 1.5 GBps y un ancho de banda promedio no superior a 500 Mbps. Los valores más altos indican uno de algunos problemas comunes:
El tamaño de los vértices es demasiado grande: Es posible que los vértices tengan atributos de vértices grandes o una gran cantidad de estos, lo que afecta el tiempo del sombreado de los vértices a gran escala.
Las transmisiones de atributos de Vertex no se dividen: Los atributos de Vertex se intercalan en un solo búfer, lo que reduce la eficiencia de la caché.
Se enviaron demasiados vértices por fotograma: Los modelos complejos o una gran cantidad de modelos pueden ocupar más ancho de banda y tardar más en mostrarse.
Los problemas de tamaño de Vertex también se pueden diagnosticar a través del segmento Promedio de bytes / Vertex, que recomendamos que no supere los 32 bytes o los vértices.
Figura 2: Tamaño promedio de los vértices de un solo fotograma, con un valor promedio de 31.3 bytes
La mejor manera de diagnosticar cuál de estos problemas es mediante un seguimiento de perfil de fotogramas para analizar formatos de vértices.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)."]]