Ladění kódu GPU
Můžete ladit kód jazyka C++, která běží na jednotku pro zpracování grafiky (GPU).GPU ladění podpora v aplikaci Visual Studio obsahuje detekci rasy, spouštění procesů a jejich připojení, a integrace do ladění systému windows.
Podporované platformy
Debugging is supported on Windows 7, Windows 8, Windows Server 2008 R2, and Windows Server 2012.Pro ladění na serveru pro emulaci softwaru, Windows 8, nebo Windows Server 2012 je požadován.Pro ladění na hardwaru je nutné nainstalovat ovladače pro grafickou kartu.Ne všichni dodavatelé hardwaru implementaci všech funkcí ladicího programu.Omezení v dokumentaci dodavatele.
[!POZNÁMKA]
Nezávislí dodavatelé hardwaru kteří chtějí podporovat GPU ladění v aplikaci Visual Studio vytvořte knihovnu DLL, která implementuje rozhraní VSD3DDebug a cíle své vlastní ovladače.
Konfigurace ladění GPU
Ladicí program nelze přerušit na kód CPU a GPU kódu ve stejné provádění aplikace.Ve výchozím nastavení ladicí program rozdělí na kód procesoru.Ladění kódu GPU, použijte jeden z následujících dvou kroků:
V Ladění typu seznam na Standardní nástrojů, zvolte Pouze GPU.
V Průzkumníku, v místní nabídce pro projekt, zvolte Vlastnosti.V Stránky vlastností dialogové okno, vyberte laděnía potom vyberte Pouze GPU v Ladicí program typu seznamu.
Spuštění a připojení k aplikacím
Příkazy pro ladění aplikace Visual Studio můžete použít ke spuštění a zastavení ladění GPU.Další informace naleznete v tématu Spuštění, pozastavení a ukončení ladicího programu sady Visual Studio a jeho ovládání.Můžete také připojit ladicí program GPU na spuštěný proces, ale pouze v případě, že proces spustí kód GPU.Další informace naleznete v tématu Jak: připojit k procesu spuštění.
Spustit aktuální dlaždice kurzor a Run to Cursor
Jestliže ladíte na GPU, máte dvě možnosti pro spuštění až do místa kurzoru.Příkazy pro obě možnosti jsou k dispozici v místní nabídce editoru kódu.
Run to Cursor příkaz spustí vaší aplikace, dokud nedosáhne umístění kurzoru a pak rozdělí.To neznamená, že aktuální podproces spuštěn kurzor; Místo toho znamená, že spustí první podproces, který dosáhne bodu kurzor konec.Další informace naleznete v tématu [NIB] 12/13 Postupy: Provedení do pozice kurzoru.
Spustit aktuální dlaždice kurzor příkaz spustí vaší aplikace, dokud všechny podprocesy v aktuální dlaždice nedosáhnou kurzor a konce.
Ladění systému Windows
Pomocí určitých ladění systému windows můžete prozkoumat, příznak a zablokování podprocesů GPU.Více informací naleznete:
Procesů a podprocesů(Na panelu nástrojů debug umístění)
Výjimky pro synchronizaci dat
Ladicí program můžete identifikovat několik podmínek synchronizace dat během spuštění.Při zjištění podmínku ladicí program zadá stavu přerušení.Máte dvě možnosti –Konec nebo pokračovat.Při použití výjimky dialogové okno, můžete nakonfigurovat, zda ladicí program zjistí tyto podmínky a také podmínky, které ji dojde k přerušení pro.Další informace naleznete v tématu Výjimka zpracování (ladění).Můžete také použít Možnosti dialogové okno Chcete-li určit, že ladicí program je třeba ignorovat výjimky v případě, že hodnoty dat nedochází ke změně dat, který je napsán.Další informace naleznete v tématu Obecné, ladění, dialogové okno Možnosti.
Poradce při potížích
Určení akcelerátor
Zarážky v kódu GPU jsou přístupů, pouze pokud je kód spuštěn accelerator::direct3d_ref accelerator (REF).Pokud váš kód nezadávejte akcelerátor, akcelerátor REF je automaticky vybráno jako Ladění akcelerátor typu ve vlastnostech projektu.Pokud váš kód explicitně vybere akcelerátor, akcelerátor REF se nepoužije při ladění a nebude zarážce přístupů, pokud GPU hardwaru pro podporu ladění.To lze napravit napsáním kódu tak, aby používala akcelerátor REF během ladění.Další informace naleznete v tématu vlastnosti projektu a Pomocí objektů akcelerátor a accelerator_view a Nastavení konfigurace C++ Debug projektu.
Podmíněné zarážky
Jsou podporovány podmíněné zarážky v kódu GPU, ale ne každý výraz může být vyhodnocen v zařízení.Výraz nelze vyhodnotit na zařízení, se vyhodnocovala ladicí program.Ladicí program bude pravděpodobně pracovat pomaleji než zařízení.
Chyba: Není problém s konfigurací pomocí vybraného typu akcelerátor ladění.
K této chybě dochází, pokud existuje nekonzistence mezi nastavení projektu a konfiguraci počítače, který je právě laděn na.Další informace naleznete v tématu Nastavení konfigurace C++ Debug projektu.
Chyba: V cílovém počítači není nainstalován ovladač ladění pro vybraný typ akcelerátor ladění.
Tato chyba se objeví, Jestliže ladíte na vzdáleném počítači.Ladicí program nelze určit až při spuštění, zda jsou ovladače nainstalovány na vzdálený počítač.Ovladače jsou k dispozici u výrobce grafické karty.
Chyba: Časový limit detekce a obnovení (TDR) musí na vzdáleném serveru zakázán.
Je možné, že výpočty C++ AMP překročí výchozí časový interval, který nastaví časový limit vyhledávání systému Windows a procesu obnovení (TDR).Pokud se to stane, výpočtu je zrušen a data budou ztracena.Další informace naleznete v tématu TDRs zpracování v C++ AMP.
Viz také
Úkoly
Názorný postup: Ladění aplikace AMP C++
Referenční dokumentace
Nastavení konfigurace C++ Debug projektu