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.