Arytmetyka SIMD element po elemencie
Dodawaj i mnoż całe wektory jednocześnie.
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 + bTor 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 * bOdejmowanie 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 - aSkalar 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 + 100Szerokoś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. ✨
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
- Poznaj typ SIMD
- Arytmetyka SIMD element po elemencie
- Dobór szerokości SIMD
- Wektoryzowanie pętli