Deep Learning Academy · Lekcja

Dlaczego pętle są wolne w obliczeniach matematycznych

Poznać koszt pythonowych pętli wykonywanych dla każdego elementu

Lekcja 1 z 413 kroki

Dlaczego pętle są wolne w obliczeniach matematycznych to bezpłatna lekcja Deep Learning 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 Deep Learning Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.

Nawyk używania pętli

Przyzwyczajony do zwykłego Pythona, sięga Pan lub Pani po pętlę for, aby dodawać dwie listy element po elemencie. To działa, ale w przypadku obliczeń na dużą skalę jest to wolniejsza droga. 🐢

Python płaci podatek

Każdy krok pętli w Pythonie wiąże się z narzutem interpretera: sprawdzanie typów, opakowywanie obiektów i obsługa kodu bajtowego są powtarzane dla każdego elementu.

Miliony małych kroków

Sieć neuronowa przetwarza miliony liczb w jednym przebiegu. Pomnóż ten niewielki koszt dla pojedynczego elementu przez miliony, a pętla zacznie się ślimaczyć, podczas gdy właściwa praca będzie czekać.

Wektoryzacja to rozwiązanie

Wektoryzacja oznacza opisanie całej operacji naraz na tensorze, dzięki czemu ciężka praca trafia pod maską do szybkiego, skompilowanego kodu C i CUDA.

Zobacz wolniejszy sposób

Ta pętla dodaje dwa tensory element po elemencie w Pythonie. Jest poprawna, ale płaci podatek interpretera przy każdym kroku.

out = torch.empty_like(a)
for i in range(len(a)):
    out[i] = a[i] + b[i]

Zobacz szybszy sposób

Ten sam wynik w jednym zwektoryzowanym wierszu. PyTorch wykonuje pętlę w skompilowanym kodzie, a nie w wolnym interpreterze Pythona.

out = a + b

Jedno wywołanie, wiele liczb

To pojedyncze wyrażenie przekazuje całą tablicę do zoptymalizowanego kernela. Kernel wykonuje pętlę za Pana lub Panią, znacznie bliżej sprzętu i o wiele szybciej.

Pamięć ciągła pomaga

Tensory przechowują liczby w jednym zwartym, ciągłym bloku pamięci. CPU odczytuje je strumieniowo w kolejności przyjaznej dla pamięci podręcznej, czego lista Pythona nie może zagwarantować.

SIMD: wiele naraz

Nowoczesne układy używają instrukcji SIMD, które stosują jedną operację do kilku liczb w jednym cyklu zegara. Zwektoryzowany kod to umożliwia, a pętle zwykle nie.

GPU lubią pracę na dużą skalę

GPU ma tysiące rdzeni gotowych do pracy równoległej. Gdy otrzyma całe tensory, pokazuje pełnię możliwości; gdy dostaje po jednym elemencie, w większości pozostaje bezczynny.

Myśl tablicami

Zmiana sposobu myślenia wygląda tak: zamiast pytać, co dzieje się z jedną liczbą, proszę pytać, co dzieje się z całą tablicą. To pytanie jest kluczem do szybkiego kodu deep learning.

Szybkie sprawdzenie

Czy potrafi Pan lub Pani wskazać prawdziwego winowajcę wolnych pętli?

Podsumowanie: mniej pętli, więcej wektoryzacji

Pętle Pythona płacą koszt za każdy element, którego unikają zwektoryzowane operacje na tensorach, wykonywane w skompilowanym kodzie gotowym na SIMD i przyjaznym dla GPU. Proszę myśleć tablicami, a nie pojedynczymi liczbami. ✅

Bezpłatny start

Ucz się Python 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 „Dlaczego pętle są wolne w obliczeniach matematycznych” jest bezpłatna?

Tak — pełny tekst „Dlaczego pętle są wolne w obliczeniach matematycznych” 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 Deep Learning Academy, przejdź na CoddyKit PRO. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Dlaczego pętle są wolne w obliczeniach matematycznych”?

Poznać koszt pythonowych pętli wykonywanych dla każdego elementu Ćwiczysz Deep Learning 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ąć Deep Learning Academy?

Nie wymagamy żadnego doświadczenia. Deep Learning 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 „Dlaczego pętle są wolne w obliczeniach matematycznych”?

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 Deep Learning Academy?

Tak. Każda lekcja Deep Learning 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. Dlaczego pętle są wolne w obliczeniach matematycznych
  2. Operacje elementowe i redukcje
  3. Mnożenie macierzy za pomocą matmul i @
  4. Iloczyny skalarne napędzają każdą warstwę
← Powrót do Deep Learning Academy