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 vecaddDlaczego -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 ./vecaddUstaw 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 vecAddKernelWiele 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) nextSprawdź zmienną
Sprawdź, co faktycznie obliczył wątek, prosząc cuda-gdb o print lokalnej zmiennej podczas zatrzymania wewnątrz jądra.
(cuda-gdb) print iZmień 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 5Odczytaj 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.xWznów wykonanie
Gdy skończysz analizę, wpisz continue, aby wznowić program do następnego punktu przerwania lub do jego zakończenia.
(cuda-gdb) continueSzybkie 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
- Krokowe wykonywanie kernelów w cuda-gdb
- Wykrywanie wycieków za pomocą memcheck
- Wykrywanie race conditions za pomocą racecheck
- Wykrywanie błędów synchronizacji za pomocą synccheck