Udostępnij za pośrednictwem


Debugowanie kodu GPU

Można debugować kodu C++, która jest uruchomiona na jednostki przetwarzania grafiki (GPU).GPU debugowanie wsparcia w programie Visual Studio zawiera wykrywania wyścigu, uruchamiania procesów i dołączanie do nich, a włączenie do debugowania systemu windows.

Obsługiwane platformy

Debugging is supported on Windows 7, Windows 8, Windows Server 2008 z dodatkiem R2, and Windows Server 2012.Do debugowania na emulatorze software Windows 8, lub Windows Server 2012 jest wymagane.Do debugowania na sprzęcie, należy zainstalować sterowniki dla karty graficznej.Nie wszyscy dostawcy sprzętu implementować wszystkie funkcje debugera.W dokumentacji dostawcy ograniczenia.

[!UWAGA]

Niezależni dostawcy sprzętu którzy chcą obsługiwać GPU debugowania w programie Visual Studio, należy utworzyć biblioteki DLL, która implementuje interfejs VSD3DDebug i cele własnymi sterownikami.

Konfigurowanie debugowania GPU

Debuger nie może przerwać na kod GPU i CPU kody w tego samego wykonania aplikacji.Domyślnie narzędzie debugger przerwy na kod Procesora.Aby zdebugować kod GPU, należy użyć jednego z tych dwóch etapów:

  • W Typu debugowania wystawiać przedmioty w serwisie Standard paska narzędzi, wybierz polecenie GPU tylko.

  • W Solution Explorer, w menu skrótów dla projektu, wybierz polecenie Właściwości.W Stron właściwości okno dialogowe, wybierz Debugowanie, a następnie wybierz GPU tylko w Typu debugera listy.

Uruchamianie i dołączanie do aplikacji

Visual Studio polecenia debugowania umożliwiają uruchamianie i zatrzymywanie GPU debugowania.Aby uzyskać więcej informacji, zobacz Rozpoczynanie, przerywanie, wykonywanie krokowe, przechodzenie przez kod i zatrzymywanie debugowania w programie Visual Studio.Można również dołączyć debuger GPU uruchomiony proces, ale tylko wtedy, jeśli ten proces wykonuje kod GPU.Aby uzyskać więcej informacji, zobacz Dołączanie do uruchomionego procesu za pomocą debugera programu Visual Studio.

Uruchom do kursor i uruchom do kursor bieżący fragment

Podczas debugowania na GPU, masz dwie opcje uruchamiania do lokalizacji kursora.Polecenia dla obu opcji są dostępne w menu skrótów w edytorze kodu.

  1. Uruchom do kursor polecenie uruchamia Twojej aplikacji, dopóki osiągnie położenie kursora i następnie przerwy.Nie oznacza to, że bieżący wątek biegnie do kursora; oznacza, że pierwszy wątek, który osiągnie punkt kursor wyzwala przerwa.Zobacz Rozpoczynanie, przerywanie, wykonywanie krokowe, przechodzenie przez kod i zatrzymywanie debugowania w programie Visual Studio

  2. Uruchomić bieżący fragment do kursora polecenie uruchamia aplikację do czasu osiągnięcia wszystkich wątków w bieżący fragment kursor, a następnie przerwy.

Debugowania systemu Windows

Za pomocą niektórych debugowania systemu windows, można zbadać, Flaga i Zablokuj GPU wątków.Aby uzyskać więcej informacji, zobacz:

Wyjątki synchronizacji danych

Debuger może zidentyfikować kilka warunków synchronizacji danych podczas wykonywania.Po wykryciu warunek, debuger przechodzi do stanu podziału.Dostępne są dwie opcje —Break lub Kontynuuj.Za pomocą Wyjątki okno dialogowe, można określić, czy narzędzie debugger wykrywa te warunki i również jakich warunkach będzie przerwa dla.Aby uzyskać więcej informacji, zobacz Obsługa wyjątków (debugowanie).Można również użyć Opcje okno dialogowe, aby określić debugera należy zignorować wyjątki Jeśli dane, które napisano nie powoduje zmiany wartości danych.Aby uzyskać więcej informacji, zobacz Ogólne, debugowanie, okno dialogowe Opcje.

Rozwiązywanie problemów

Określanie akcelerator

Punkty przerwania w kodzie GPU są tylko hit, jeśli kod jest uruchomiony na accelerator::direct3d_ref accelerator (REF).Jeśli nie określisz akceleratora w kodzie, akcelerator REF zostanie automatycznie wybrany jako Debugowanie typu Accelerator w oknie właściwości projektu.Jeśli Twój kod jawnie wybiera akceleratora, akcelerator REF nie będzie używany podczas debugowania i punktów przerwania nie zostanie uruchomiona, chyba że ma sprzęt GPU obsługa debugowania.Można to zaradzić poprzez napisanie kodu, tak aby uzywalo akcelerator REF podczas debugowania.Aby uzyskać więcej informacji, zobacz właściwości projektu i Używanie akceleratora i obiektów accelerator_view i Ustawienia projektu dla konfiguracji debugowania w C++.

Warunkowe punkty przerwania

Warunkowe punkty przerwania w kodzie GPU są obsługiwane, ale nie każde wyrażenie może być ocenione na urządzeniu.Wyrażenie nie może być określona na urządzeniu, jest oceniane w debugerze.Narzędzie debugger będzie prawdopodobnie działać wolniej niż urządzenia.

Błąd: Ma problem z konfiguracją z wybranym typem akcelerator debugowania. 

Ten błąd ma miejsce, gdy istnieje niespójność między ustawienia projektu i konfigurację komputera, na którym debugowania na.Aby uzyskać więcej informacji, zobacz Ustawienia projektu dla konfiguracji debugowania w C++.

Błąd: Sterownik debugowania dla wybranego typu akcelerator debugowanie nie jest zainstalowany na komputerze docelowym.

Ten błąd występuje, jeśli debugowania na zdalnym komputerze.Debuger nie może określić do czasu wykonywania, czy sterowniki są zainstalowane na komputerze zdalnym.Sterowniki są dostępne u producenta karty graficznej.

Błąd: Limit czasu wykrywania i odzyskiwania (TDR) musi być wyłączona w zdalnej lokacji.

Możliwe do obliczeń C++ AMP przekracza domyślny interwał czasu jest ustawiany przez system Windows limit czasu wykrywania i proces odzyskiwania (TDR).Kiedy tak się stanie, przy obliczaniu jest anulowane, a dane zostaną utracone.Aby uzyskać więcej informacji, zobacz Obsługi TDR w języku C++ AMP.

Zobacz też

Zadania

Wskazówki: debugowanie aplikacji C++ AMP

Informacje

Ustawienia projektu dla konfiguracji debugowania w C++

Inne zasoby

Uruchamianie GPU debugowania w programie Visual Studio