Partager via


Utilisation du GPU

Remarque

Visual Studio Graphics Diagnostics n’est pas pris en charge sur ARM64 Visual Studio.

Utilisez l’outil d’utilisation du GPU dans le Profileur de performances pour mieux comprendre l’utilisation matérielle générale de votre application Direct3D. Il vous permet de déterminer si les performances de votre application sont liées au processeur ou au GPU, et d’obtenir des informations sur la façon dont vous pouvez utiliser le matériel de la plateforme plus efficacement. L’utilisation du GPU prend en charge les applications qui utilisent Direct3D 12, Direct3D 11 et Direct3D 10. Il ne prend pas en charge d’autres API graphiques, telles que Direct2D ou OpenGL.

Voici à quoi ressemble la fenêtre Rapport d’utilisation gpu :

Capture d’écran du rapport d’utilisation du GPU, avec des chronologies processeur et GPU

Spécifications

Outre la configuration requise pour les diagnostics graphiques, les éléments suivants sont nécessaires pour utiliser l'outil Utilisation du GPU :

  • Un GPU et le pilote qui prennent en charge l’instrumentation de temporisation nécessaire.

    Remarque

    Pour plus d’informations sur le matériel et les pilotes pris en charge, consultez La prise en charge du matériel et du pilote à la fin de ce document.

Pour plus d’informations sur les conditions requises pour Graphics Diagnostics, consultez Prise en main.

Utiliser l’outil Utilisation du GPU

Lorsque vous exécutez votre application sous l’outil Utilisation du GPU, Visual Studio crée une session de diagnostic. Cette session présente des informations générales sur les performances de rendu et l’utilisation du GPU de votre application en temps réel.

Pour démarrer l’outil Utilisation du GPU :

  1. Dans le menu principal, choisissez Déboguer>les performances et les diagnostics (ou, sur le clavier, appuyez sur Alt+F2).

  2. Dans le hub Performances et diagnostics , cochez la case en regard de l’utilisation du GPU. Si vous le souhaitez, cochez les cases en regard d’autres outils qui vous intéressent. Vous pouvez exécuter plusieurs outils de performances et de diagnostic simultanément pour obtenir une image plus complète des performances de votre application.

    Capture d’écran du Profileur de performances, avec l’utilisation du GPU sélectionnée

    Remarque

    Tous les outils de performances et de diagnostics ne peuvent pas être utilisés en même temps.

  3. En bas du hub Performances et diagnostics , sélectionnez Démarrer pour exécuter votre application sous les outils que vous avez sélectionnés.

Les informations de haut niveau affichées en temps réel incluent le minutage d’images, la fréquence d’images et l’utilisation du GPU. Chacune de ces informations est représentée indépendamment, mais elles utilisent toutes une échelle de temps commune pour vous permettre de comprendre facilement les relations.

Les graphiques du temps de cadre (ms) et des images par seconde (FPS) ont chacun deux lignes rouges et horizontales qui indiquent des objectifs de performance de 60 et 30 images par seconde. Dans le graphique de temps de trame, votre application dépasse l'objectif de performance lorsque le graphique est en dessous de la ligne, et elle rate cet objectif lorsque le graphique est au-dessus de la ligne. Pour les images par seconde, il s’agit de l’inverse : votre application dépasse la cible de performances lorsque le graphique est au-dessus de la ligne et qu’elle manque la cible lorsque le graphique est en dessous de la ligne. Vous utilisez ces graphiques principalement pour obtenir une idée générale des performances de votre application et identifier les ralentissements que vous souhaiterez peut-être examiner. Par exemple, une investigation supplémentaire peut être justifiée si vous voyez une baisse soudaine de la fréquence d’images ou un pic d’utilisation du GPU.

Pendant que votre application s’exécute sous l’outil Utilisation du GPU, la session de diagnostics collecte également des informations détaillées sur les événements graphiques exécutés sur le GPU. Vous utilisez ces informations pour générer un rapport plus précis sur la façon dont votre application utilise le matériel. Étant donné que ce rapport prend un certain temps pour générer à partir des informations collectées, il n’est disponible qu’après la collecte des informations de la session de diagnostic.

Lorsque vous souhaitez examiner un problème de performances ou d’utilisation plus étroitement, arrêtez de collecter des informations sur les performances afin de pouvoir générer le rapport.

Pour générer et afficher le rapport d’utilisation du GPU :

  1. Dans la partie inférieure de la fenêtre de session de diagnostics, choisissez le lien Arrêter la collection , ou sélectionnez Arrêter dans le coin supérieur gauche.

    Capture d’écran d’une fenêtre de session de diagnostic dans l’outil Utilisation du GPU, montrant frames par seconde, utilisation du GPU, bouton Arrêter et lien Arrêter la collection.

  2. Dans la partie supérieure du rapport, sélectionnez une section dans l’un des graphiques qui affiche le problème que vous souhaitez examiner. Votre sélection peut prendre jusqu’à 3 secondes. Les sections plus longues sont tronquées vers le début.

    Capture d’écran d’une fenêtre de session de diagnostic dans l’outil Utilisation du GPU avec une partie de la chronologie de session de diagnostic sélectionnée.

  3. Pour afficher une chronologie détaillée de votre sélection, dans la partie inférieure du rapport, lorsque vous voyez le message ... cliquez ici pour afficher les détails de l’utilisation du GPU pour cette plage, sélectionnez afficher les détails.

    Capture d’écran de la fenêtre de session de diagnostic, avec la plage sélectionnée

Cette sélection ouvre un nouveau document à onglets qui contient le rapport. Le rapport d’utilisation du GPU vous aide à voir quand un événement graphique est démarré sur l’UC, quand il atteint le GPU et combien de temps le GPU prend pour l’exécuter. Ces informations peuvent vous aider à identifier les goulots d’étranglement et les opportunités de parallélisme accru dans votre code.

Exporter vers GPUView ou Windows Performance Analyzer

À compter de Visual Studio 2017, vous pouvez ouvrir ces données avec GPUView et Windows Performance Analyzer. Sélectionnez simplement les liens Ouvrir dans GpuView ou Ouvrir dans WPA situés dans le coin inférieur droit de la session de diagnostic.

Capture d’écran de la fenêtre de session de diagnostics, avec des liens mis en surbrillance

Utiliser le rapport d’utilisation du GPU

La partie supérieure du rapport d’utilisation du GPU affiche les chronologies pour l’activité de traitement du processeur, l’activité de rendu GPU et l’activité de copie GPU. Ces chronologies sont divisées par barres verticales gris clair qui indiquent la synchronisation verticale de l’affichage (vsync). La fréquence des barres correspond au taux d’actualisation de l’un des affichages (sélectionnés à l’aide de la liste déroulante Affichage ) à partir duquel les données d’utilisation du GPU ont été collectées.

Étant donné que l’affichage peut avoir un taux d’actualisation plus élevé que la cible de performances de votre application, il se peut qu’il n’y ait pas de relation de 1 à 1 entre vsync et la fréquence d’images à atteindre. Pour atteindre sa cible de performances, une application doit effectuer tout le traitement, effectuer le rendu et effectuer un Present() appel à la fréquence d’images ciblée. L'image rendue ne sera pas affichée avant le prochain vsync après Present().

La partie inférieure du rapport d’utilisation du GPU répertorie les événements graphiques qui se sont produits pendant la période du rapport. Lorsque vous sélectionnez un événement, un marqueur apparaît aux événements correspondants dans les chronologies appropriées. En règle générale, un événement sur un thread de processeur affiche l’appel d’API, tandis qu’un autre événement sur l’une des chronologies GPU s’affiche lorsque le GPU a terminé la tâche. De même, lorsque vous sélectionnez un événement dans une chronologie, le rapport met en surbrillance l’événement graphique correspondant dans la partie inférieure du rapport.

Lorsque vous effectuez un zoom arrière sur les chronologies dans la partie supérieure du rapport, seuls les événements les plus chronophages sont visibles. Pour afficher les événements dont la durée est plus courte, effectuez un zoom avant dans les chronologies à l’aide de Ctrl+roulette sur votre appareil pointant ou du contrôle de mise à l’échelle dans le coin inférieur gauche du panneau supérieur. Vous pouvez également faire glisser le contenu du panneau de chronologie pour parcourir les événements enregistrés.

Pour vous aider à trouver ce que vous recherchez, filtrez le rapport d’utilisation du GPU en fonction des noms de processus, des ID de thread et du nom de l’événement. En outre, vous pouvez choisir quel écran aura le taux de rafraîchissement déterminant les lignes de vsync. Vous pouvez trier les événements hiérarchiquement si votre application utilise l’interface ID3DUserDefinedAnnotation pour regrouper les commandes de rendu.

Voici plus d’informations :

Contrôle de filtre Descriptif
Processus Nom du processus qui vous intéresse. Tous les processus qui ont utilisé le GPU pendant la session de diagnostic sont inclus dans cette liste déroulante. La couleur associée au processus est la couleur de l’activité du thread dans les chronologies.
Fil ID de thread qui vous intéresse. Dans une application multithread, ces informations peuvent vous aider à isoler des threads particuliers qui appartiennent au processus qui vous intéresse. Les événements associés au thread sélectionné sont mis en surbrillance dans chaque chronologie.
Écran Nombre d’affichages dont le taux d’actualisation est affiché. Certains pilotes peuvent être configurés pour présenter plusieurs affichages physiques sous la forme d’un seul affichage virtuel volumineux. Il est possible de ne voir qu'un seul écran répertorié, même si la machine a plusieurs écrans connectés.
Filtre Mots clés qui vous intéressent. Les événements dans la partie inférieure du rapport n’incluent que ceux qui correspondent à un mot clé, entièrement ou partiellement. Vous pouvez spécifier plusieurs mots clés en les séparant par un point-virgule (;).
Tri de hiérarchie Case à cocher qui indique si les hiérarchies d’événements, définies par le biais de marqueurs utilisateur, sont conservées ou ignorées.

La liste des événements dans la partie inférieure du rapport d’utilisation du GPU affiche les détails de chaque événement.

Colonne Descriptif
Nom de l’événement Nom de l’événement graphique. Un événement correspond généralement à un événement dans une chronologie de thread de processeur et un événement de chronologie GPU. Les noms d’événements peuvent ne pas être attribués si l’utilisation du GPU n’est pas en mesure de déterminer le nom d’un événement. Pour plus d’informations, consultez la remarque suivante dans ce tableau.
Démarrage du processeur (ns) Heure à laquelle l’événement a été lancé sur le processeur en appelant une API Direct3D. Le temps est mesuré en nanosecondes, par rapport au démarrage de l’application.
Démarrage gpu (ns) Heure à laquelle l’événement a été lancé sur le GPU. Le temps est mesuré en nanosecondes, par rapport au démarrage de l’application.
Durée du GPU (ns) Temps, en nanosecondes, que l’événement a pris pour se terminer sur le GPU.
nom du processus Nom de l’application à partir de laquelle l’événement est venu.
Thread ID ID de thread à partir duquel l’événement est venu.

Important

Si votre GPU ou pilote ne prend pas en charge les fonctionnalités d’instrumentation nécessaires, tous les événements apparaissent comme non attribués. Si vous rencontrez ce problème, mettez à jour votre pilote GPU et réessayez. Pour plus d’informations, consultez La prise en charge du matériel et du pilote à la fin de ce document.

Paramètres d’utilisation du GPU

Vous pouvez configurer l’outil Utilisation du GPU pour reporter la collecte d’informations de profilage, plutôt que de commencer à collecter des informations dès que l’application démarre. Étant donné que la taille des informations de profilage peut être importante, cette action est utile lorsque vous savez que les ralentissements dans les performances de votre application ne s’afficheront pas avant plus tard.

Pour reporter le profilage à partir du début de l’application :

  1. Dans le menu principal, choisissez Déboguer>les performances et les diagnostics (ou, sur le clavier, appuyez sur Alt+F2).

  2. Dans le hub Performances et diagnostics , en regard de l’utilisation du GPU, sélectionnez le lien paramètres .

  3. Sous Configuration du profilage GPU, dans la page de propriétés Général , désactivez la case à cocher Commencer le profilage au démarrage de l’application pour reporter le profilage.

    Capture d’écran des pages de propriétés d’objet montrant les options de collection

Important

À ce stade, vous ne pouvez pas reporter le profilage pour les applications Direct3D 12.

Une fois que vous avez exécuté votre application sous l’outil Utilisation du GPU, un lien supplémentaire devient disponible dans la partie inférieure de la fenêtre de l’outil Utilisation du GPU. Pour commencer à collecter des informations de profilage, choisissez le lien Démarrer dans le message Démarrer la collecte de données d'utilisation du GPU supplémentaires et détaillées.

Prise en charge du matériel et du pilote

Le matériel et les pilotes GPU suivants sont pris en charge :

Fournisseur Description du GPU Version du pilote requise
Intel® Processeurs Intel® Core de 4e génération ('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)
(utiliser les pilotes les plus récents)
AMD® La plupart depuis la série AMD Radeon™ HD 7000 (exclut AMD Radeon™ HD 7350-7670)

GPU AMD Radeon™, GPU AMD FirePro™ et accélérateurs GPU AMD FirePro™ avec l'architecture Graphics Core Next (GCN)

AMD E-Series et AMD A-series Unités de traitement accéléré (APU) avec architecture Graphics Core Next (GCN) ('Kaveri', 'Kabini', 'Temash', 'Beema', 'Mullins')
14.7 RC3 ou version ultérieure
NVIDIA® La plupart depuis la série NVIDIA® GeForce® 400

GPU NVIDIA GeForce®, GPU NVIDIA® Quadro® et accélérateurs GPU NVIDIA® Tesla™ avec architecture Fermi™, Kepler™ ou Maxwell™
343.37 ou version ultérieure

Les configurations multi-GPU, telles que NVIDIA® SLI™ et AMD Crossfire™, ne sont pas prises en charge pour l’instant. Les configurations graphiques hybrides, telles que NVIDIA® Optimus™ et AMD Enduro™, sont prises en charge.