Compartir a través de


Uso de GPU

Nota:

Visual Studio Graphics Diagnostics no se admite en VISUAL Studio ARM64.

Use la herramienta Uso de GPU en performance Profiler para comprender mejor el uso de hardware de alto nivel de la aplicación Direct3D. Le ayuda a ver si el rendimiento de la aplicación está enlazado a la CPU o a la GPU y a obtener información sobre cómo puede usar el hardware de la plataforma de forma más eficaz. El uso de GPU proporciona soporte para aplicaciones que utilizan Direct3D 12, Direct3D 11 y Direct3D 10. No admite otras API de gráficos, como Direct2D o OpenGL.

Este es el aspecto de la ventana Informe de uso de GPU :

Captura de pantalla del informe de uso de GPU, con escalas de tiempo de CPU y GPU

Requisitos

Además de los requisitos de diagnóstico de gráficos, se requiere lo siguiente para usar la herramienta Uso de GPU:

  • Un GPU y controlador que soportan la instrumentación de temporización necesaria.

    Nota:

    Para obtener más información sobre el hardware y los controladores admitidos, consulte Compatibilidad con hardware y controladores al final de este documento.

Para obtener más información sobre los requisitos de diagnóstico de gráficos, consulte Introducción.

Usar la herramienta de uso de GPU

Al ejecutar la aplicación en la herramienta Uso de GPU, Visual Studio crea una sesión de diagnóstico. Esta sesión grafica información de alto nivel sobre el rendimiento de representación de la aplicación y el uso de GPU en tiempo real.

Para iniciar la herramienta Uso de GPU:

  1. En el menú principal, elija Depurar>rendimiento y diagnóstico (o, en el teclado, presione Alt+F2).

  2. En el centro rendimiento y diagnóstico , active la casilla situada junto a Uso de GPU. Opcionalmente, active las casillas situadas junto a otras herramientas que le interesen. Puede ejecutar varias herramientas de rendimiento y diagnóstico simultáneamente para obtener una imagen más completa del rendimiento de la aplicación.

    Captura de pantalla del generador de perfiles de rendimiento, con el uso de GPU seleccionado

    Nota:

    No todas las herramientas de rendimiento y diagnóstico se pueden usar al mismo tiempo.

  3. En la parte inferior del centro de rendimiento y diagnóstico , seleccione Iniciar para ejecutar la aplicación en las herramientas seleccionadas.

La información de alto nivel que se muestra en tiempo real incluye el tiempo de fotogramas, la velocidad de fotogramas y el uso de GPU. Cada uno de estos fragmentos de información se grafica de forma independiente, pero todos usan una escala temporal común para que pueda comprender fácilmente las relaciones.

Los gráficos Tiempo de fotogramas (ms) y Fotogramas por segundo (FPS) tienen dos líneas rojas y horizontales que muestran los objetivos de rendimiento de 60 y 30 fotogramas por segundo. En el gráfico de Tiempo de fotograma, la aplicación supera el objetivo de rendimiento cuando el gráfico está por debajo de la línea y no cumple con el objetivo cuando el gráfico está por encima de la línea. Para el gráfico de fotogramas por segundo, es lo contrario: la aplicación supera el objetivo de rendimiento cuando el gráfico está por encima de la línea y no cumple con el objetivo cuando el gráfico está por debajo de la línea. Estos gráficos se usan principalmente para obtener una idea de alto nivel del rendimiento de la aplicación y para identificar ralentizaciones que es posible que quiera investigar. Por ejemplo, podría ser necesaria una investigación adicional si observa una caída repentina en la velocidad de fotogramas o un pico en la utilización de la GPU.

Mientras la aplicación se ejecuta en la herramienta Uso de GPU, la sesión de diagnóstico también recopila información detallada sobre los eventos gráficos que se ejecutaron en la GPU. Esta información se usa para generar un informe más granular sobre cómo la aplicación utiliza el hardware. Dado que este informe tarda algún tiempo en generarse a partir de la información recopilada, solo está disponible después de que la sesión de diagnóstico haya terminado de recopilar información.

Cuando desee examinar un problema de rendimiento o uso más detenidamente, deje de recopilar información de rendimiento para que pueda generar el informe.

Para generar y ver el informe uso de GPU:

  1. En la parte inferior de la ventana de sesión de diagnóstico, elija el vínculo Detener recopilación o seleccione Detener en la esquina superior izquierda.

    Captura de pantalla de una ventana de sesión de diagnóstico en la herramienta Uso de GPU, en la que se muestran Fotogramas por segundo, Uso de GPU, el botón Detener y el vínculo Detener la recopilación.

  2. En la parte superior del informe, seleccione una sección de uno de los gráficos que muestra el problema que desea investigar. La selección puede tener hasta 3 segundos de duración. Las secciones más largas se truncan hacia el principio.

    Captura de pantalla de una ventana de sesión de diagnóstico en la herramienta Uso de GPU con parte de la escala de tiempo de la sesión de diagnóstico seleccionada.

  3. Para ver una escala de tiempo detallada de la selección, en la parte inferior del informe, en el mensaje ... haga clic aquí para ver los detalles del uso de GPU de ese intervalo, seleccione ver detalles.

    Captura de pantalla de la ventana de sesión de diagnóstico, con el intervalo seleccionado

Esta selección abre un nuevo documento con pestañas que contiene el informe. El informe Uso de GPU le ayuda a ver cuándo se inicia un evento de gráficos en la CPU, cuándo llega a la GPU y cuánto tiempo tarda la GPU en ejecutarse. Esta información puede ayudarle a identificar cuellos de botella y oportunidades para aumentar el paralelismo en el código.

Exportar a GPUView o al Analizador de rendimiento de Windows

A partir de Visual Studio 2017, puede abrir estos datos con GPUView y Windows Performance Analyzer. Solo tiene que seleccionar los vínculos Abrir en GpuView o Abrir en WPA ubicados en la esquina inferior derecha de la sesión de diagnóstico.

Captura de pantalla de la ventana de sesión de diagnóstico, con vínculos resaltados

Utilizar el informe de uso de GPU

La parte superior del informe Uso de GPU muestra las escalas de tiempo de la actividad de procesamiento de CPU, la actividad de representación de GPU y la actividad de copia de GPU. Estas escalas de tiempo se dividen por barras verticales de color gris claro que indican la sincronización vertical de la pantalla (vsync). La frecuencia de las barras coincide con la frecuencia de actualización de una de las pantallas (seleccionada mediante la lista desplegable Mostrar ) de la que se recopilaron los datos de uso de GPU.

Dado que la pantalla puede tener una frecuencia de actualización más alta que el objetivo de rendimiento de la aplicación, es posible que no haya una relación de 1 a 1 entre vsync y la velocidad de fotogramas que desea alcanzar con la aplicación. Para cumplir su objetivo de rendimiento, una aplicación debe completar todo el procesamiento, realizar la representación y hacer una Present() llamada al framerate objetivo. Sin embargo, el marco renderizado no se mostrará hasta el siguiente vsync después de Present().

En la parte inferior del informe Uso de GPU se enumeran los eventos gráficos que se produjeron durante el período de tiempo del informe. Al seleccionar un evento, aparece un marcador en los eventos correspondientes en las escalas de tiempo pertinentes. Normalmente, un evento en un subproceso de CPU muestra la llamada API, mientras que otro evento en una de las escalas de tiempo de GPU muestra cuando la GPU completó la tarea. Del mismo modo, al seleccionar un evento en una escala de tiempo, el informe resalta el evento gráfico correspondiente en la parte inferior del informe.

Cuando se aleja de las escalas de tiempo de la parte superior del informe, solo se ven los eventos que consumen más tiempo. Para ver eventos que tienen una duración más corta, acérquese a las líneas de tiempo utilizando Ctrl+rueda en su dispositivo de puntero, o el control de escalado en la esquina inferior izquierda del panel superior. También puede arrastrar el contenido del panel de la línea de tiempo para moverse por los eventos grabados.

Para ayudar a encontrar lo que busca, filtre el informe Uso de GPU en función de los nombres de proceso, los identificadores de subprocesos y el nombre del evento. Además, puede elegir qué frecuencia de actualización de la pantalla determina las líneas vsync. Puedes ordenar los eventos jerárquicamente si la aplicación usa la interfaz ID3DUserDefinedAnnotation para agrupar comandos de representación.

Estos son más detalles:

Control de filtro Descripción
Proceso Nombre del proceso que le interesa. Todos los procesos que usaban la GPU durante la sesión de diagnóstico se incluyen en esta lista desplegable. El color asociado al proceso es el color de la actividad del subproceso en las líneas de tiempo.
Subproceso El identificador de hilo que le resulta de interés. En una aplicación multiproceso, esta información puede ayudarle a aislar subprocesos concretos que pertenecen al proceso que le interesa. Los eventos asociados al hilo seleccionado se resaltan en cada línea de tiempo.
Monitor Número de la pantalla cuya frecuencia de actualización se muestra. Algunos controladores se pueden configurar para presentar varias pantallas físicas como una sola pantalla virtual grande. Es posible que vea una sola pantalla en la lista, incluso si la máquina tiene varias pantallas conectadas.
Filtro Palabras clave que le interesan. Los eventos de la parte inferior del informe solo incluirán los que coinciden con una palabra clave, totalmente o parcialmente. Puede especificar varias palabras clave separandolas con un punto y coma (;).
Ordenar jerarquía Casilla que indica si las jerarquías de eventos, definidas a través de marcadores de usuario, se conservan o omiten.

La lista de eventos de la parte inferior del informe Uso de GPU muestra los detalles de cada evento.

Columna Descripción
Nombre de evento Nombre del evento de gráficos. Un evento normalmente corresponde a un evento en una línea de tiempo de hilo de CPU y un evento en una línea de tiempo de GPU. Los nombres de eventos pueden no asignarse si el uso de GPU no puede determinar el nombre de un evento. Para obtener más información, vea la nota que sigue a esta tabla.
Inicio de CPU (ns) Hora en que se inició el evento en la CPU mediante una llamada a una API de Direct3D. El tiempo se mide en nanosegundos, en relación con el momento en que se inició la aplicación.
Inicio de GPU (ns) Hora a la que se inició el evento en la GPU. El tiempo se mide en nanosegundos, en relación con el momento en que se inició la aplicación.
Duración de GPU (ns) La hora, en nanosegundos, que el evento tardó en completarse en la GPU.
Nombre del Proceso Nombre de la aplicación desde la que vino el evento.
Identificador de hilo Identificador del subproceso desde el que vino el evento.

Importante

Si la GPU o el controlador no admiten las características de instrumentación necesarias, todos los eventos aparecerán como no distribuidos. Si experimenta este problema, actualice el controlador de GPU e inténtelo de nuevo. Para obtener más información, consulte Compatibilidad con hardware y controladores al final de este documento.

Configuración de uso de GPU

Puede configurar la herramienta Uso de GPU para posponer la recopilación de información de generación de perfiles, en lugar de empezar a recopilar información tan pronto como se inicie la aplicación. Dado que el tamaño de la información de generación de perfiles puede ser significativo, esta acción es útil cuando sabe que las ralentizaciones en el rendimiento de la aplicación no aparecerán hasta más adelante.

Para posponer la generación de perfiles desde el inicio de la aplicación:

  1. En el menú principal, elija Depurar>rendimiento y diagnóstico (o, en el teclado, presione Alt+F2).

  2. En el centro rendimiento y diagnóstico , junto a Uso de GPU, seleccione el vínculo configuración .

  3. En Configuración de generación de perfiles de GPU, en la página de propiedades General , desactive la casilla Comenzar generación de perfiles en el inicio de la aplicación para posponer la generación de perfiles.

    Captura de pantalla de las páginas de propiedades del objeto, en la que se muestran las opciones de colección

Importante

En este momento, no se puede posponer la generación de perfiles para aplicaciones de Direct3D 12.

Después de ejecutar la aplicación en la herramienta Uso de GPU, hay un vínculo adicional disponible en la parte inferior de la ventana de herramientas Uso de GPU. Para empezar a recopilar información de generación de perfiles, elija el vínculo Inicio en el mensaje Iniciar recopilación de datos de uso de GPU adicionales.

Compatibilidad con hardware y controladores

Se admiten los siguientes controladores y hardware de GPU:

Proveedor Descripción de GPU Versión del controlador necesaria
Intel® 4ª generación de procesadores Intel® Core ('Haswell')

- Intel® HD Graphics (GT1)
- Intel® HD Graphics 4200 (GT2)
- Intel® HD Graphics 4400 (GT2)
- Intel® HD Graphics 4600 (GT2)
- Intel® HD Graphics P4600 (GT2)
- Intel® HD Graphics P4700 (GT2)
- Intel® HD Graphics 5000 (GT3)
- Intel® Iris™ Graphics 5100 (GT3)
- Intel® Iris™ Pro Graphics 5200 (GT3e)
(utiliza los controladores más recientes)
AMD® La mayoría desde la serie AMD Radeon™ HD 7000 (excluye AMD Radeon™ HD 7350-7670)

GPU AMD Radeon™, GPU AMD FirePro y aceleradores de GPU AMD FirePro™ con arquitectura graphics Core Next (GCN)

Unidades de Procesamiento Acelerado de la serie AMD® E y de la serie AMD A con arquitectura de Graphics Core Next (GCN) ('Kaveri', 'Kabini', 'Temash', 'Beema', 'Mullins')
14.7 RC3 o posterior
NVIDIA® La mayoría desde la serie NVIDIA® GeForce® 400

GPU NVIDIA GeForce®, GPU NVIDIA Quadro® y aceleradores de GPU NVIDIA® Tesla™ con arquitectura Fermi™, Kepler™ o Maxwell™
343.37 o posterior

Las configuraciones de varias GPU, como NVIDIA® SLI™ y AMD Crossfire™, no se admiten en este momento. Se admiten las configuraciones de gráficos híbridos, como NVIDIA® Optimus™ y AMD Enduro™.