0Pricing
CUDA Academy · Lekcja

Przechwytywanie pracy do grafu

Rejestrowanie strumienia w grafie CUDA

Przechwytywanie pracy do grafu to bezpłatna lekcja CUDA Academy na CoddyKit. To lekcja 3 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.

Czym jest CUDA Graph

CUDA graph rejestruje całą sekwencję kerneli i operacji kopiowania jako jedną wielokrotnego użytku jednostkę pracy, którą można przesyłać ponownie.

Uruchomienia się sumują

Każde pojedyncze uruchomienie kernela wiąże się z niewielkim narzutem po stronie CPU. Przy tysiącach uruchomień na iterację ten koszt staje się znaczący.

Zdefiniuj raz, uruchamiaj wiele razy

Graph pozwala opisać pracę raz, a następnie tanio ją odtwarzać, ponosząc koszt konfiguracji tylko jeden raz.

Tryb przechwytywania strumienia

Najłatwiejszym sposobem jego utworzenia jest stream capture: rejestruje się w strumieniu zwykłe uruchomienia, które i tak są już wykonywane.

cudaStreamBeginCapture(stream, cudaStreamCaptureModeGlobal);

Wykonuj pracę normalnie

Pomiędzy początkiem a końcem przechwytywania należy uruchamiać kernele i operacje kopiowania jak zwykle. Nic nie jest jeszcze wykonywane — operacje są rejestrowane, a nie uruchamiane.

kernelA<<<g, b, 0, stream>>>(d);
kernelB<<<g, b, 0, stream>>>(d);

Zakończ przechwytywanie

Rejestrowanie kończy się za pomocą cudaStreamEndCapture, która zwraca cudaGraph_t opisujący całą pracę.

cudaGraph_t graph;
cudaStreamEndCapture(stream, &graph);

Zależności są ustalane automatycznie

Przechwytywanie automatycznie określa zależności między operacjami na podstawie sposobu użycia strumienia.

Utwórz instancję przed uruchomieniem

Graph jest tylko opisem. Przed uruchomieniem należy skompilować go do obiektu graph exec, który można wykonywać.

cudaGraphExec_t exec;
cudaGraphInstantiate(&exec, graph, 0);

Ręczne budowanie graphów

Można także dodawać węzły jawnie za pomocą graph API, aby uzyskać pełną kontrolę nad strukturą i krawędziami.

cudaGraphAddKernelNode(&n, graph, deps, 1, &params);

Wiele strumieni, jeden graph

Przechwytywanie może obejmować kilka strumieni, dzięki czemu niezależne gałęzie wykonywane współbieżnie trafiają do tego samego grapha.

Ponowne użycie w wielu iteracjach

Po utworzeniu instancji ten sam obiekt exec jest uruchamiany wielokrotnie — właśnie wtedy graphy pokazują swoją wartość.

Szybkie sprawdzenie

Co zwraca cudaStreamEndCapture?

Podsumowanie: przechwytywanie graphów

Należy umieścić uruchomienia w ramach stream capture, aby zarejestrować cudaGraph_t, utworzyć jego instancję raz, a zależności zostaną określone automatycznie. Świetne postępy! 🎉

Często zadawane pytania

Czy lekcja „Przechwytywanie pracy do grafu” jest bezpłatna?

Tak — pełny tekst „Przechwytywanie pracy do grafu” 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 „Przechwytywanie pracy do grafu”?

Rejestrowanie strumienia w grafie CUDA Ć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 3 z 4.

Ile czasu zajmuje lekcja „Przechwytywanie pracy do grafu”?

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. Uruchamianie kernelów z poziomu kernela
  2. Kiedy opłaca się dynamic parallelism
  3. Przechwytywanie pracy do grafu
  4. Ponowne odtwarzanie grafów w celu ograniczenia narzutu
← Powrót do CUDA Academy