0Pricing
CUDA Academy · Lekcja

Krokowe wykonywanie kernelów w cuda-gdb

Breakpointy i inspekcja poszczególnych wątków

Krokowe wykonywanie kernelów w cuda-gdb to bezpłatna lekcja CUDA Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej CUDA Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CUDA Academy zawiera 4 lekcji w sumie.

Poznaj cuda-gdb

Gdy jądro działa nieprawidłowo, cuda-gdb pozwala je zatrzymać i zajrzeć do jego wnętrza, podobnie jak gdb w przypadku zwykłych programów CPU. 🔍

Kompiluj z informacjami debugowania

cuda-gdb potrzebuje symboli, dlatego przed rozpoczęciem debugowania skompiluj jądro z opcją -G, aby dodać pełne informacje debugowania urządzenia.

nvcc -g -G vecadd.cu -o vecadd

Dlaczego -G ma znaczenie

Flaga -G wyłącza wiele optymalizacji, dzięki czemu numery wierszy i zmienne pozostają poprawne, a przechodzenie przez kod urządzenia jest wiarygodne.

Uruchom debuger

Rozpocznij sesję, przekazując plik binarny do cuda-gdb, a następnie wpisz run, aby wykonać go pod kontrolą debugera.

cuda-gdb ./vecadd

Ustaw punkt przerwania w jądrze

Ustaw punkt przerwania bezpośrednio w jądrze, podając nazwę funkcji, aby wykonanie zatrzymało się, gdy tylko dotrze do niej wątek.

(cuda-gdb) break vecAddKernel

Wiele wątków, jedno zatrzymanie

Tysiące wątków mogą trafić na ten punkt przerwania, dlatego cuda-gdb zatrzymuje się i skupia na jednym wątku naraz, aby można było go zbadać.

Przechodź wiersz po wierszu

Użyj next, aby wykonać bieżący wiersz i zatrzymać się na następnym, analizując logikę jądra krok po kroku.

(cuda-gdb) next

Sprawdź zmienną

Sprawdź, co faktycznie obliczył wątek, prosząc cuda-gdb o print lokalnej zmiennej podczas zatrzymania wewnątrz jądra.

(cuda-gdb) print i

Zmień obserwowany wątek

Przenieś uwagę na konkretny wątek za pomocą cuda thread, wybierając dokładny blok i lane, który chcesz zbadać.

(cuda-gdb) cuda block 0 thread 5

Odczytaj wbudowane indeksy

Możesz wyświetlić threadIdx i blockIdx tak jak zwykłe zmienne, potwierdzając dokładnie, który element danych obsługuje ten wątek.

(cuda-gdb) print threadIdx.x

Wznów wykonanie

Gdy skończysz analizę, wpisz continue, aby wznowić program do następnego punktu przerwania lub do jego zakończenia.

(cuda-gdb) continue

Szybkie sprawdzenie

Która flaga kompilatora dodaje informacje debugowania urządzenia na potrzeby cuda-gdb?

Podsumowanie

Skompilowałeś program z opcją -G, ustawiłeś punkt przerwania w jądrze, przechodziłeś przez kolejne wiersze, przełączałeś wątki i wyświetlałeś indeksy. To podstawowy cykl pracy z cuda-gdb. 🎉

Często zadawane pytania

Czy lekcja „Krokowe wykonywanie kernelów w cuda-gdb” jest bezpłatna?

Tak — pełny tekst „Krokowe wykonywanie kernelów w cuda-gdb” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu CUDA Academy, przejdź na CoddyKit PRO. Kurs CUDA Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Krokowe wykonywanie kernelów w cuda-gdb”?

Breakpointy i inspekcja poszczególnych wątków Ćwiczysz CUDA Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć CUDA Academy?

Nie wymagamy żadnego doświadczenia. CUDA Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Krokowe wykonywanie kernelów w cuda-gdb”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji CUDA Academy?

Tak. Każda lekcja CUDA Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Krokowe wykonywanie kernelów w cuda-gdb
  2. Wykrywanie wycieków za pomocą memcheck
  3. Wykrywanie race conditions za pomocą racecheck
  4. Wykrywanie błędów synchronizacji za pomocą synccheck
← Powrót do CUDA Academy