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:

Screenshot of GPU Usage Report, with CPU and GPU timelines

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ý podporuje potřebnou instrumentaci č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žití nástroje 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.

Spuštění nástroje 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.

    Screenshot of the Performance Profiler, with GPU Usage selected

    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. Další šetření může být například zaručeno, pokud dojde k náhlému poklesu frekvence snímků nebo prudkému nárůstu 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 shromažďování informací.

Pokud se chcete podrobněji podívat na problém s výkonem nebo využitím, zastavte shromažďování informací o výkonu, abyste mohli sestavu vygenerovat.

Generová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 .

    Screenshot of a diagnostics session window in the GPU Usage tool, showing Frames per second, GPU utilization, the Stop button, and the Stop collection link.

  2. V horní části sestavy vyberte oddíl 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.

    Screenshot of a diagnostics session window in the GPU Usage tool with part of the diagnostic session timeline selected.

  3. Pokud chcete zobrazit podrobnou časovou osu výběru, v dolní části sestavy v ... kliknutím sem zobrazíte podrobnosti o využití GPU pro danou zprávu rozsahu, vyberte zobrazit podrobnosti.

    Screenshot of the diagnostics session window, with range selected

Tento výběr otevře nový dokument s kartami, který obsahuje sestavu. Sestava využití GPU vám pomůže zjistit, kdy se na procesoru spustí grafická událost, kdy dosáhne GPU a jak dlouho trvá jeho spuštění. 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 Analyzátor výkonu

Od sady Visual Studio 2017 můžete tato data otevřít pomocí GPUView a Windows Analyzátor výkonu. Stačí vybrat odkazy Open in GpuView nebo Open in WPA umístěné v pravém dolním rohu diagnostické relace.

Screenshot of the diagnostics session window, with links highlighted

Použití sestavy využití GPU

Horní část sestavy využití GPU zobrazuje časové osy pro aktivitu zpracování procesoru, 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ž po další vsync.Present()

Dolní část sestavy využití GPU obsahuje grafické události, ke kterým došlo během časového období sestavy. 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ž se oddálíte z časových os v horní části sestavy, zobrazí se jenom časově náročné události. Pokud chcete zobrazit události, které mají kratší dobu trvání, přibližte časovou osu pomocí ctrl+kolečka na zařízení pro bodování nebo ovládacího prvku měřítka v levém dolním rohu horního panelu. 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é.
Zobrazit Počet zobrazení, jehož frekvence aktualizace 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 se zobrazit jenom jedno zobrazení, i když má počítač připojených 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í v dolní čá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í se můžou zrušit , 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) Čas v nanosekundách, kdy událost trvala dokončení 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č nepodporuje potřebné funkce instrumentace, zobrazí se všechny události jako nepřipojené. 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.

    Screenshot of Object Property Pages, showing collection options

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:

Dodavatel 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 Amd Amd™ HD 7000-series (nezahrnuje AMD Amd Amd™ HD 7350-7670)

Akcelerátory AMD FirePro GPU, AMD 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® 400-series

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™.