cuDNN na potrzeby deep learningu
Konwolucje i operacje na tensorach na dużą skalę
cuDNN na potrzeby deep learningu to bezpłatna lekcja CUDA Academy na CoddyKit. To lekcja 4 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.
Silnik stojący za frameworkami AI
cuDNN to biblioteka NVIDIA do uczenia głębokiego. PyTorch i TensorFlow korzystają z niej przy szybkich splotach oraz innych podstawowych operacjach sieci neuronowych. 🧠
Dlaczego sploty wymagają wsparcia
Splot przesuwa mały filtr po obrazie, wykonując ogromną liczbę obliczeń. cuDNN implementuje go znacznie szybciej niż naiwny kernel.
Zacznij od uchwytu
Podobnie jak cuBLAS, cuDNN przechowuje stan w obiekcie handle, który należy utworzyć raz, używać ponownie przy każdej operacji, a następnie zniszczyć podczas zamykania programu.
cudnnHandle_t h;
cudnnCreate(&h);Opisz swoje dane
cuDNN działa za pomocą deskryptorów. Deskryptor tensora przechowuje jego kształt, typ danych i układ, dzięki czemu biblioteka dokładnie wie, co przetwarza.
cudnnTensorDescriptor_t xDesc;
cudnnCreateTensorDescriptor(&xDesc);Układ NCHW
Wektory są zwykle zapisane w układzie NCHW: rozmiar partii, kanały, wysokość, szerokość. Prawidłowe ustawienie tego układu jest niezbędne, aby obliczenia były zgodne.
cudnnSetTensor4dDescriptor(xDesc,
CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, N, C, H, W);Filtry mają własny deskryptor
Wagi kernela splotu korzystają z osobnego deskryptora filtra, który opisuje liczbę kanałów wyjściowych i wejściowych oraz wysokość i szerokość filtra.
cudnnFilterDescriptor_t wDesc;
cudnnCreateFilterDescriptor(&wDesc);Ustawienia splotu
Deskryptor splotu przechowuje dopełnienie, krok i dylatację — parametry określające sposób przesuwania filtra po tensorze wejściowym.
Wybierz algorytm
cuDNN oferuje kilka algorytmów splotu, różniących się szybkością i zużyciem pamięci. Należy wybrać najlepszy z nich dla danych kształtów tensorów.
Zarezerwuj obszar roboczy
Szybkie algorytmy potrzebują pamięci roboczej. Należy przydzielić na urządzeniu bufor workspace, którego rozmiar cuDNN podaje z wyprzedzeniem.
size_t bytes;
cudnnGetConvolutionForwardWorkspaceSize(...,&bytes);Wykonaj przebieg w przód
cudnnConvolutionForward łączy wszystko w całość: uchwyt, deskryptory, algorytm i obszar roboczy generują mapę cech wyjściowych w jednym wywołaniu.
cudnnConvolutionForward(h, &alpha, xDesc, x,
wDesc, w, convDesc, algo, ws, bytes, &beta, yDesc, y);Nie tylko sploty
cuDNN przyspiesza także pooling, funkcje aktywacji i normalizację — pozostałe warstwy tworzące współczesną sieć neuronową.
Szybkie sprawdzenie
Przypomnij sobie, jakie operacje ma przyspieszać cuDNN.
Podsumowanie
Skonfigurowałeś handle, opisałeś tensory i filtry w układzie NCHW, wybrałeś algorytm z obszarem roboczym i wykonałeś przebieg splotu w przód. 🎓
Ucz się C++ dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „cuDNN na potrzeby deep learningu” jest bezpłatna?
Tak — pełny tekst „cuDNN na potrzeby deep learningu” 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 „cuDNN na potrzeby deep learningu”?
Konwolucje i operacje na tensorach na dużą skalę Ć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 4 z 4.
Ile czasu zajmuje lekcja „cuDNN na potrzeby deep learningu”?
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
- cuBLAS GEMM jak należy
- Wektory i transformacje Thrust
- Reduce, Scan i Sort w Thrust
- cuDNN na potrzeby deep learningu