0Pricing
CUDA Academy · Lekcja

Hierarchia wątków

Grupować wątki w bloki, a bloki w siatkę.

Hierarchia wątków 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.

Wiele wątków, jedno zadanie

Kernel CUDA działa równolegle w wielu wątkach, a każdy wątek wykonuje tę samą pracę na własnym fragmencie danych. 🧵

Wątki potrzebują struktury

Uruchomienie milionów niezorganizowanych wątków byłoby chaotyczne. CUDA porządkuje je w przejrzystą hierarchię, aby sprzęt mógł sprawnie je planować.

Wątki tworzą bloki

Wątki są grupowane w blok. Każdy wątek w bloku wykonuje ten sam kernel i może ściśle współpracować z sąsiednimi wątkami.

Bloki tworzą siatkę

Wszystkie bloki jednego uruchomienia tworzą razem siatkę. Schemat jest więc prosty: wątki znajdują się w blokach, a bloki w siatce.

Dlaczego dwa poziomy?

Dwupoziomowa konstrukcja pozwala jednemu kernelowi skalować się od małego GPU do ogromnego. Opisują Państwo pracę raz, a siatka dopasowuje się do dostępnego sprzętu.

Wybór kształtu podczas uruchamiania

Liczbę bloków i liczbę wątków na blok wybiera się bezpośrednio podczas uruchamiania, używając składni z potrójnymi nawiasami kątowymi.

myKernel<<<numBlocks, threadsPerBlock>>>(data);

Konkretny przykład

Załóżmy, że uruchamiają Państwo 4 bloki po 256 wątków. Otrzymują Państwo 4 razy 256, czyli 1024 wątki działające jednocześnie.

Bloki są niezależne

Różne bloki nie mogą zakładać żadnej kolejności ani bezpośrednio się ze sobą komunikować. Ta niezależność pozwala GPU wykonywać je w dowolnej kolejności.

Wątki w bloku współpracują

W obrębie jednego bloku wątki mogą współdzielić szybką pamięć układową i synchronizować się ze sobą. Ta współpraca jest największą zaletą bloku.

Siatki i bloki mogą być trójwymiarowe

Zarówno siatka, jak i każdy blok mogą być jedno-, dwu- lub trójwymiarowe. Typ dim3 pozwala naturalnie odwzorowywać obrazy lub wolumeny.

dim3 block(16, 16);
dim3 grid(32, 32);

Jeden wątek, jeden element

Wspólnym celem jest przypisanie każdemu wątkowi dokładnie jednego elementu danych do obsługi. Hierarchia określa tylko sposób dotarcia do tego przypisania.

Szybkie sprawdzenie

Sprawdźmy, jak poszczególne elementy zagnieżdżają się w sobie.

Podsumowanie: hierarchia

Poznałeś hierarchię CUDA: wątki tworzą blok, a bloki tworzą siatkę. Niezależne bloki umożliwiają skalowanie, natomiast wątki wewnątrz bloku współpracują ze sobą. 🎯

Często zadawane pytania

Czy lekcja „Hierarchia wątków” jest bezpłatna?

Tak — pełny tekst „Hierarchia wątków” 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 „Hierarchia wątków”?

Grupować wątki w bloki, a bloki w siatkę. Ć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 „Hierarchia wątków”?

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. Hierarchia wątków
  2. threadIdx, blockIdx, blockDim
  3. Dlaczego istnieją bloki
  4. Dobór liczby wątków w bloku
← Powrót do CUDA Academy