Využití GPU

Pomocí nástroje Využití GPU v Profiler výkonu lépe pochopíte vysoké využití hardwaru vaší aplikace Direct3D. Pomůže vám zjistit, jestli je výkon aplikace vázaný na procesor 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á takhle:

Snímek obrazovky se sestavou využití GPU a časovou osou procesoru a GPU

Požadavky

Kromě požadavků na Diagnostika grafiky jsou pro použití nástroje Využití GPU potřeba následující:

  • GPU a ovladač, které podporují potřebnou instrumentaci časování.

    Poznámka

    Další informace o podporovaném hardwaru a ovladačích najdete v části Hardwarová podpora a podpora ovladačů na konci tohoto dokumentu.

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

Použití nástroje Využití GPU

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

Spuštění nástroje Využití GPU:

  1. V hlavní nabídce zvolte Výkon a diagnostika ladění (nebo na klávesnici stiskněte > Alt+F2).

  2. V centru Výkon a diagnostika zaškrtněte políčko vedle možnosti 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 měli lepší obrázek o výkonu vaší aplikace.

    Snímek obrazovky s Profiler výkonu a vybranou možnost Využití 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.

Mezi informace nejvyšší úrovně zobrazené v reálném čase patří časování snímků, snímková frekvence a využití GPU. Každá z těchto informací je vy grafována nezávisle, ale všechny používají společné časové měřítko, abyste mohli snadno porozumět relacím.

Grafy Frame time (ms) a Frames per second (FPS) mají dvě červené vodorovné čáry, které zobrazují výkonnostní cíle 60 až 30 snímků za sekundu. V grafu Frame time (Čas rámce) vaše aplikace překračuje cíl výkonu, když je graf pod čárou, a když je graf nad čárou, cíl mu chybí. U grafu Počet snímků za sekundu je to naopak: vaše aplikace překračuje cíl výkonu, když je graf nad čárou, a když je graf pod čárou, chybí mu cíl. Tyto grafy se používají primárně k získání nejvyšší úrovně výkonu vaší aplikace a k identifikaci zpomalení, která byste mohli chtít prozkoumat. Pokud například vidíte náhlý pokles snímkové frekvence nebo prudké zvýšení využití GPU, může být další šetření zaručované.

Zatímco vaše aplikace běží pod nástrojem Využití GPU, relace diagnostiky shromažďuje také 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 vygenerování této sestavy ze shromážděných informací nějakou dobu trvá, je dostupná až po dokončení diagnostické relace shromažďování informací.

Pokud se chcete na problém s výkonem nebo využitím podívat blíž, 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 relace diagnostiky 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 zobrazující snímky za sekundu, využití GPU, tlačítko Zastavit a odkaz Zastavit shromažďování

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

    Snímek obrazovky s oknem relace diagnostiky v nástroji Využití GPU s vybranou částí časové osy diagnostické relace

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

    Snímek obrazovky s oknem relace diagnostiky a vybraným rozsahem

Tento výběr otevře nový dokument se záložkou, který obsahuje sestavu. Sestava Využití GPU vám pomůže zobrazit, kdy se na procesoru spustí grafickou událost, kdy se dostane k GPU a jak dlouho trvá gpu, než ji spustí. Tyto informace vám můžou pomoct identifikovat kritické body a příležitosti pro zvýšení paralelismu v kódu.

Export do GPUView nebo Windows Analyzátor výkonu

Počínaje Visual Studio 2017 můžete tato data otevřít pomocí GPUView a Windows Analyzátor výkonu. Stačí vybrat odkazy Open in GpuView (Otevřít v GpuView) nebo Open in WPA (Otevřít v WPA) v pravém dolním rohu diagnostické relace.

Snímek obrazovky s oknem relace diagnostiky se zvýrazněných odkazy

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ělené světle šedými svislými pruhy, které označují svislou synchronizaci (vsync) displeje. Frekvence pruhů odpovídá obnovovací frekvenci jednoho z zobrazení (vybráno pomocí rozevíracího seznamu Zobrazení), ze kterých se shromáždila data o využití GPU.

Vzhledem k tomu, že zobrazení může mít vyšší obnovovací frekvenci než cíl výkonu vaší aplikace, nemusí mezi vsynchronizaci a snímkovou rychlostí, které má aplikace dosáhnout, vztah 1:1. Aby aplikace splňovala cíl výkonu, musí dokončit veškeré zpracování, provést vykreslování a provést volání s cílovou Present() snímkovou rychlostí. Vykreslený snímek se ale zobrazí až po dalším Present() vsynchronizaci.

Dolní část sestavy Využití GPU obsahuje seznam grafických událostí, ke kterým došlo během časového období sestavy. Když vyberete událost, zobrazí se na odpovídajících událostech na příslušných časových osách značka. Obvykle jedna událost ve vlákně procesoru ukazuje volání rozhraní API, zatímco jiná událost na jedné z časových os GPU se zobrazí, když GPU úlohu dokončil. Podobně když vyberete událost na časové ose, sestava zvýrazní odpovídající událost grafiky v dolní části sestavy.

Když se z časových os v horní části sestavy oddalíte, zobrazí se jenom ty časově nejnáročnější události. Pokud chcete zobrazit události, které mají kratší dobu trvání, přibližte časové osy stisknutím kláves Ctrl+wheel na odkazující zařízení nebo pomocí ovládacího prvku škálování v levém dolním rohu horního panelu. Můžete také přetáhnout obsah panelu časové osy 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á obnovovací frekvence zobrazení určuje řádky vysnc. Pokud vaše aplikace používá rozhraní ID3DUserDefinedAnnotation k seskupení příkazů pro vykreslování, můžete události řadit hierarchicky.

Tady jsou další podrobnosti:

Ovládací prvek filtru Popis
Proces Název procesu, který vás zajímá. Tento rozevírací seznam obsahuje všechny procesy, které používaly GPU během relace diagnostiky. 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é.
Displej Číslo zobrazení, jehož obnovovací frekvence se zobrazuje. Některé ovladače je možné nakonfigurovat tak, aby prezentovali několik fyzických zobrazení jako jeden velký virtuální displej. Může se zobrazit jenom jedno zobrazení, i když je na počítači připojeno více zobrazení.
Filtr Klíčová slova, která vás zajímají. Události v dolní části sestavy budou zahrnovat pouze ty, které odpovídají klíčovému slovu, a to 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, které určuje, jestli jsou zachovány nebo ignorovány hierarchie událostí definované prostřednictvím uživatelských značek.

V seznamu událostí v dolní části sestavy Využití GPU se zobrazí podrobnosti o každé události.

Sloupec Popis
Název události Název události grafiky. Událost obvykle odpovídá události na časové ose vlákna procesoru a události časové osy GPU. Pokud využití GPU nedokáže určit název události, nemusí být názvy událostí bez atributu. Další informace najdete v poznámce následující za touto tabulkou.
Cpu Start (ns) Čas, kdy byla událost iniciována na procesoru voláním rozhraní Api Direct3D. Čas se měří v nanosekundách, relativně ke spuštění aplikace.
Spuštění GPU (NS) Čas zahájení události v GPU Čas se měří v nanosekundách, relativně ke spuštění aplikace.
Trvání GPU (NS) Čas v nanosekundách, který trvalo dokončení události na GPU.
Název procesu Název aplikace, ze které byla událost přijata.
ID vlákna ID vlákna, ze kterého byla událost přijata.

Důležité

Pokud grafické procesory nebo ovladače nepodporují potřebné funkce instrumentace, zobrazí se všechny události jako neatributované. Pokud se setkáte s tímto problémem, aktualizujte ovladač GPU a zkuste to znovu. Další informace najdete 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 ne začít shromažďovat informace ihned po spuštění aplikace. Vzhledem k tomu, že velikost informací profilace může být významná, tato akce je užitečná, když víte, že zpomalení výkonu vaší aplikace se nezobrazí až později.

Odložení profilování od začátku aplikace:

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

  2. V centru pro výkon a diagnostiku vedle možnosti použití GPU vyberte odkaz Nastavení .

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

    Snímek stránek vlastností objektu se zobrazením možností 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 bude v dolní části okna nástroje využití GPU k dispozici další odkaz. Pokud chcete začít shromažďovat informace o profilování, klikněte na odkaz Spustit v části začít shromažďovat další podrobnou datovou zprávu o využití GPU .

Podpora hardwaru a ovladačů

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

Dodavatel Popis GPU Vyžaduje se 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žít nejnovější ovladače)
® AMD Většina od procesorů AMD Radeon™ HD 7000-Series (nezahrnuje AMD Radeon™ HD 7350-7670)

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

AMD® E-series a AMD a-Series akcelerované výpočetní jednotky (APUs) s architekturou GCN (Graphics Core Next) (Kaveri, Kabini, Temash, Beema, Mullins,)
14,7 RC3 nebo novější
® NVIDIA Většina od® NVIDIA GeForce® 400-Series

NVIDIA® GeForce® GPU, NVIDIA Quadro® GPU a NVIDIA® Tesla™ akcelerátory GPU, které nabízí Fermi™, Kepler™ nebo Maxwell™ Architecture
343,37 nebo novější

Konfigurace s více grafickými procesory, například NVIDIA® SLI™ a AMD Crossfire™, nejsou v tuto chvíli podporované. Podporují se nastavení hybridní grafiky, jako je například NVIDIA® Optimus™ a AMD Enduro™.