Mojo Academy · Lekcja

Arytmetyka SIMD element po elemencie

Dodawaj i mnoż całe wektory jednocześnie.

Lekcja 2 z 413 kroki

Arytmetyka SIMD element po elemencie to bezpłatna lekcja Mojo Academy na CoddyKit. To lekcja 2 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 Mojo Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Mojo Academy zawiera 4 lekcji w sumie.

Działania matematyczne na całych wektorach

Największą zaletą SIMD jest to, że działania arytmetyczne obejmują cały wektor jednocześnie. Jedna operacja dotyczy wszystkich torów naraz.

Dodawanie dwóch wektorów

Po dodaniu dwóch wartości SIMD każdy tor jest dodawany do odpowiadającego mu toru. Nazywa się to dodawaniem element po elemencie.

var a = SIMD[DType.int32, 4](1, 2, 3, 4)
var b = SIMD[DType.int32, 4](10, 20, 30, 40)
var c = a + b

Tor pasuje do toru

W wyrażeniu a + b tor 0 jest dodawany do toru 0, a tor 1 do toru 1. Tory nigdy się nie mieszają — pozostają wyrównane.

print(c[0])

Mnożenie wektorów

Mnożenie również odbywa się element po elemencie. Każdy tor jednego wektora jest mnożony przez odpowiadający mu tor drugiego wektora.

var p = a * b

Odejmowanie i dzielenie

Odejmowanie i dzielenie działają według tej samej zasady. Każdy tor jest obsługiwany niezależnie i równolegle w całym pakiecie.

var d = b - a

Skalar spotyka wektor

Dodanie pojedynczej liczby do wektora powoduje zastosowanie jej do każdego toru. Skalar jest jednocześnie rozprowadzany na wszystkie pozycje.

var bumped = a + 100

Szerokości muszą się zgadzać

Aby połączyć dwie wartości SIMD, muszą one mieć ten sam DType i tę samą szerokość. Niezgodne liczby torów nie będą do siebie pasować.

Porównania odbywają się tor po torze

Porównanie dwóch wektorów daje SIMD wartości Bool — po jednej wartości True lub False dla każdego toru. Każdy tor przedstawia własny wynik.

var mask = a > SIMD[DType.int32, 4](2)

Redukcja do jednej liczby

Czasami potrzebna jest jedna odpowiedź. reduce_add sumuje wszystkie tory do jednego skalara, idealnego do obliczania sum.

var total = a.reduce_add()
print(total)

Wbudowane funkcje matematyczne

Standardowe funkcje matematyczne, takie jak sqrt, również działają na SIMD tor po torze, obliczając wynik dla każdego elementu w jednym wywołaniu.

from math import sqrt
var roots = sqrt(a.cast[DType.float32]())

Ten sam kod, wiele wyników

Zapis a + b wygląda jak obliczenia skalarne, ale jednocześnie daje wiele wyników. Ta czytelność połączona z szybkością to obietnica Mojo.

Szybkie sprawdzenie

Oblicza Pan/Oblicza Pani a + b, gdzie obie wartości mają typ SIMD[DType.int32, 4]. Jak wykonywane jest dodawanie?

Podsumowanie

Obliczenia SIMD element po elemencie wykonują +, -, * i / jednocześnie na każdym torze, skalary są rozprowadzane na wszystkie tory, a reduce_add sprowadza wektor do jednej liczby. ✨

Bezpłatny start

Ucz się Mojo 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 „Arytmetyka SIMD element po elemencie” jest bezpłatna?

Tak — pełny tekst „Arytmetyka SIMD element po elemencie” 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 Mojo Academy, przejdź na CoddyKit PRO. Kurs Mojo Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Arytmetyka SIMD element po elemencie”?

Dodawaj i mnoż całe wektory jednocześnie. Ćwiczysz Mojo 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ąć Mojo Academy?

Nie wymagamy żadnego doświadczenia. Mojo 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 2 z 4.

Ile czasu zajmuje lekcja „Arytmetyka SIMD element po elemencie”?

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 Mojo Academy?

Tak. Każda lekcja Mojo 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. Poznaj typ SIMD
  2. Arytmetyka SIMD element po elemencie
  3. Dobór szerokości SIMD
  4. Wektoryzowanie pętli
← Powrót do Mojo Academy