Sdílet prostřednictvím


Využití GPU

Poznámka:

Visual Studio Graphics Diagnostics není podporována v sadě ARM64 Visual Studio.

Pomocí nástroje Využití GPU v Profileru výkonu lépe porozumíte využití hardwaru vysoké úrovně vaší aplikace Direct3D. Pomůže vám zjistit, jestli je výkon vaší aplikace svázaný s procesorem nebo GPU, a získat přehled o tom, jak můžete hardware platformy efektivněji používat. Využití GPU podporuje aplikace, které používají Direct3D 12, Direct3D 11 a Direct3D 10. Nepodporuje jiná grafická rozhraní API, jako je Direct2D nebo OpenGL.

Okno Sestava využití GPU vypadá takto:

Snímek obrazovky se zprávou o využití GPU a časovými osami pro CPU a GPU

Požadavky

Kromě požadavků na diagnostiku grafiky se pro použití nástroje Využití GPU vyžaduje následující:

  • GPU a ovladač, které podporují potřebné zařízení pro měření časování.

    Poznámka:

    Další informace o podporovaném hardwaru a ovladačích naleznete v tématu Podpora hardwaru a ovladačů na konci tohoto dokumentu.

Další informace o požadavcích diagnostiky grafiky najdete v tématu Začínáme.

Použijte nástroj Využití GPU.

Když spustíte aplikaci v nástroji Využití GPU, Visual Studio vytvoří diagnostickou relaci. Tato relace grafuje základní informace o výkonu vykreslování a využití GPU vaší aplikace v reálném čase.

Jak spustit nástroj Využití GPU:

  1. V hlavní nabídce zvolte Ladění>výkonu a diagnostiky (nebo na klávesnici stiskněte Alt+F2).

  2. V centru Výkon a diagnostika zaškrtněte políčko vedle položky Využití GPU. Volitelně zaškrtněte políčka vedle dalších nástrojů, které vás zajímají. Souběžně můžete spustit několik nástrojů pro výkon a diagnostiku, abyste získali úplný přehled o výkonu vaší aplikace.

    Snímek obrazovky profileru výkonu s vybraným využitím GPU

    Poznámka:

    Ne všechny nástroje pro výkon a diagnostiku je možné používat současně.

  3. V dolní části centra Výkon a diagnostika vyberte Spustit a spusťte aplikaci pod vybranými nástroji.

Informace vysoké úrovně zobrazené v reálném čase zahrnují časování snímků, frekvenci snímků a využití GPU. Každý z těchto informací je grafován nezávisle, ale všechny používají společné časové měřítko, abyste snadno porozuměli vztahům.

Grafy časů snímků (ms) a snímků za sekundu (FPS) mají dvě červené vodorovné čáry, které zobrazují výkonnostní cíle 60 a 30 snímků za sekundu. V grafu časového rámce překračuje vaše aplikace cíl výkonu, když je graf pod čárou, a když je graf nad čárou, vynechá cíl. U grafu Rámců za sekundu je to opak: aplikace překračuje cíl výkonu, když je graf nad čárou, a když je graf pod čárou, vynechá cíl. Tyto grafy používáte především k získání základní představy o výkonu vaší aplikace a k identifikaci zpomalení, které byste mohli chtít prozkoumat. Například další šetření může být na místě, pokud zaznamenáte náhlý pokles snímkové frekvence nebo prudký nárůst využití GPU.

Zatímco vaše aplikace běží v nástroji Využití GPU, diagnostická relace také shromažďuje podrobné informace o grafických událostech, které byly spuštěny na GPU. Tyto informace použijete k vygenerování podrobnější sestavy o tom, jak vaše aplikace využívá hardware. Vzhledem k tomu, že generování této sestavy ze shromážděných informací nějakou dobu trvá, je k dispozici až po dokončení diagnostické relace.

Pokud se chcete podrobněji podívat na problém s výkonem nebo využitím, přestaňte shromažďovat údaje o výkonu. Tímto způsobem můžete sestavit zprávu.

Vygenerování a zobrazení sestavy využití GPU:

  1. V dolní části okna diagnostické relace zvolte odkaz Zastavit shromažďování nebo v levém horním rohu vyberte Zastavit .

    Snímek obrazovky s oknem relace diagnostiky v nástroji Využití GPU, který zobrazuje snímky za sekundu, využití GPU, tlačítko Zastavit a odkaz Zastavit sběr

  2. V horní části sestavy vyberte část z jednoho z grafů, která ukazuje problém, který chcete prozkoumat. Výběr může být dlouhý až 3 sekundy. Delší oddíly jsou zkráceny směrem k začátku.

    Snímek obrazovky okna diagnostické relace v nástroji Využití GPU, kde je vybrána část časové osy diagnostické relace.

  3. Pokud chcete zobrazit podrobnou časovou osu pro svůj výběr, v dolní části sestavy, v ... kliknutím sem zobrazíte podrobnosti o využití GPU pro ten rozsah zprávy, vyberte zobrazit podrobnosti.

    Snímek obrazovky z okna diagnostické relace, s vybraným rozsahem

Tento výběr otevře nový dokument se záložkami, který obsahuje zprávu. Sestava využití GPU vám pomůže zjistit, kdy je na procesoru spuštěna grafická událost, kdy dosáhne ke GPU, a jak dlouho trvá, než GPU událost provede. Tyto informace vám můžou pomoct identifikovat kritické body a příležitosti ke zvýšení paralelismu v kódu.

Export do GPUView nebo Windows Performance Analyzeru

Počínaje sadou Visual Studio 2017 můžete tato data otevřít pomocí GPUView a Windows Performance Analyzeru. Stačí vybrat odkazy Open in GpuView nebo Open in WPA umístěné v pravém dolním rohu diagnostické relace.

Snímek obrazovky s oknem diagnostické relace se zvýrazněnými odkazy

Použijte zprávu o využití GPU

Horní část sestavy využití GPU zobrazuje časové osy pro aktivitu zpracování CPU, aktivitu vykreslování GPU a aktivitu kopírování GPU. Tyto časové osy jsou rozděleny světle šedými svislými pruhy, které označují svislou synchronizaci zobrazení (vsync). Frekvence pruhů odpovídá obnovovací frekvenci jednoho z displejů (vybraných pomocí rozevíracího seznamu Zobrazení ), ze kterého byla shromážděna data o využití GPU.

Vzhledem k tomu, že zobrazení může mít vyšší rychlost aktualizace než cíl výkonu vaší aplikace, nemusí existovat vztah 1:1 mezi vsync a snímkovou rychlostí, kterou má vaše aplikace dosáhnout. Aby bylo dosaženo cíle výkonu, musí aplikace dokončit veškeré zpracování, provést vykreslování a provést Present() volání v cílové framerate. Vykreslený rámec se ale nezobrazí až do dalšího vsync po Present().

Dolní část zprávy o využití GPU obsahuje grafické události, které se odehrály během časového období zprávy. Když vyberete událost, zobrazí se značka na odpovídajících událostech v příslušných časových osách. Jedna událost ve vlákně procesoru obvykle zobrazuje volání rozhraní API, zatímco jiná událost na jedné z časových os GPU se zobrazí, když GPU dokončil úlohu. Podobně když vyberete událost na časové ose, sestava zvýrazní odpovídající grafickou událost v dolní části sestavy.

Když zmenšíte zobrazení časových os v horní části sestavy, zobrazí se pouze ty nejčastěji časově náročné události. Pokud chcete zobrazit události s kratší dobou trvání, přibližte časové osy pomocí Ctrl+kolečka na ukazovacím zařízení nebo ovládacího prvku měřítka na horním panelu v levém dolním rohu. Obsah panelu časové osy můžete také přetáhnout a procházet zaznamenané události.

Pokud chcete zjistit, co hledáte, vyfiltrujte sestavu využití GPU na základě názvů procesů, ID vláken a názvu události. Kromě toho můžete zvolit, která míra aktualizace zobrazení určuje řádky vysnc. Události můžete seřadit hierarchicky, pokud vaše aplikace používá rozhraní ID3DUserDefinedAnnotation k seskupení příkazů vykreslování.

Tady jsou další podrobnosti:

Ovládací prvek filtru Popis
Proces Název procesu, který vás zajímá. Do tohoto rozevíracího seznamu jsou zahrnuty všechny procesy, které používaly GPU během diagnostické relace. Barva přidružená k procesu je barva aktivity vlákna na časových osách.
Vlákno ID vlákna, které vás zajímá. V aplikaci s více vlákny vám tyto informace můžou pomoct izolovat konkrétní vlákna, která patří do procesu, který vás zajímá. Události přidružené k vybranému vláknu jsou na každé časové ose zvýrazněné.
zobrazení Číslo displeje, jehož obnovovací frekvence je zobrazena. Některé ovladače je možné nakonfigurovat tak, aby zobrazovaly více fyzických displejů jako jeden velký virtuální displej. Může být uveden jen jeden displej, i když je k počítači připojeno více displejů.
Filtr Klíčová slova, která vás zajímají. Události v dolní části sestavy budou obsahovat pouze ty, které odpovídají klíčovému slovu zcela nebo částečně. Více klíčových slov můžete zadat tak, že je oddělíte středníkem (;).
Řazení hierarchie Zaškrtávací políčko označující, jestli se hierarchie událostí definované značkami uživatelů zachovají nebo ignorují.

Seznam událostí ve spodní části sestavy využití GPU zobrazuje podrobnosti o jednotlivých událostech.

Sloupec Popis
Název události Název grafické události. Událost obvykle odpovídá události na časové ose vlákna procesoru a události časové osy GPU. Názvy událostí mohou být neurčené, pokud využití GPU nedokáže určit název události. Další informace najdete v následující tabulce.
Spuštění procesoru (ns) Čas, kdy byla událost inicializována na procesoru voláním rozhraní API Direct3D. Čas se měří v nanosekundách vzhledem k tomu, kdy se aplikace spustila.
Spuštění GPU (ns) Čas, kdy byla událost inicializována v GPU. Čas se měří v nanosekundách vzhledem k tomu, kdy se aplikace spustila.
Doba trvání GPU (ns) Doba v nanosekundách, po kterou událost trvala na GPU.
název procesu Název aplikace, ze které událost přišla.
ID vlákna ID vlákna, ze kterého událost přišla.

Důležité

Pokud GPU nebo ovladač nepodporují potřebné funkce instrumentace, zobrazí se všechny události jako neattributované. Pokud k tomuto problému dochází, aktualizujte ovladač GPU a zkuste to znovu. Další informace naleznete v tématu Podpora hardwaru a ovladačů na konci tohoto dokumentu.

Nastavení využití GPU

Nástroj Využití GPU můžete nakonfigurovat tak, aby odložil shromažďování informací o profilaci a neshromažďuje informace hned po spuštění aplikace. Vzhledem k tomu, že velikost informací o profilaci může být významná, je tato akce užitečná, když víte, že zpomalení ve výkonu vaší aplikace se nezobrazí až později.

Odložení profilace od začátku aplikace:

  1. V hlavní nabídce zvolte Ladění>výkonu a diagnostiky (nebo na klávesnici stiskněte Alt+F2).

  2. V centru výkonu a diagnostiky vedle položky Využití GPU vyberte odkaz nastavení .

  3. V části Konfigurace profilace GPU na stránce Obecné zrušte zaškrtnutí políčka Zahájit profilaci při spuštění aplikace a odložit profilaci.

    Snímek obrazovky se stránkami vlastností objektu zobrazující možnosti kolekce

Důležité

V tuto chvíli nemůžete odložit profilaci pro aplikace Direct3D 12.

Po spuštění aplikace v nástroji Využití GPU se v dolní části okna nástroje Využití GPU zpřístupní další odkaz. Chcete-li začít shromažďovat informace o profilaci, zvolte odkaz Start ve zprávě Zahájení shromažďování dalších podrobných dat o využití GPU .

Podpora hardwaru a ovladačů

Podporují se následující hardware a ovladače GPU:

Prodejce Popis GPU Požadovaná verze ovladače
Intel® 4. generace procesorů 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)
(použití nejnovějších ovladačů)
AMD® Většina od AMD Radeon™ HD 7000-řada (nezahrnuje AMD Radeon™ HD 7350-7670)

Akcelerátory GPU AMD Radeon™, AMD FirePro™ GPU a akcelerátory AMD FirePro GPU s architekturou Graphics Core Next (GCN)

AMD® E-Series a AMD A-series Accelerated Processing Units (APUs) s architekturou Grafické jádro Next (GCN) ('Kaveri', 'Kabini', 'Temash' , 'Beema', 'Mullins')
14.7 RC3 nebo novější
NVIDIA® Většina od NVIDIA® GeForce® řady 400

Grafické procesory NVIDIA® GeForce®, grafické procesory NVIDIA Quadro® a akcelerátory GPU NVIDIA® Tesla™ s architekturou Fermi™, Kepler™ nebo Maxwell™
343.37 nebo novější

Konfigurace s více GPU, jako jsou NVIDIA® SLI™ a AMD Crossfire™, se v tuto chvíli nepodporují. Podporují se hybridní grafické nastavení, jako je NVIDIA® Optimus™ a AMD Enduro™.