SIMD-matematik element for element
Læg hele vektorer sammen, og multiplicér dem på én gang.
SIMD-matematik element for element er en gratis Mojo Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Mojo Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Mojo Academy-kurset indeholder 4 lektioner i alt.
Matematik på hele vektorer
Det bedste ved SIMD er, at aritmetik fungerer på hele vektoren på én gang. Én operation påvirker alle lanes samtidigt.
Addition af to vektorer
Læg to SIMD-værdier sammen, så lægges hver lane til den tilsvarende lane. Det kaldes addition element for element.
var a = SIMD[DType.int32, 4](1, 2, 3, 4)
var b = SIMD[DType.int32, 4](10, 20, 30, 40)
var c = a + bLane passer med lane
I a + b lægges lane 0 til lane 0, og lane 1 til lane 1. Lanes blandes aldrig, men forbliver justeret.
print(c[0])Multiplikation af vektorer
Multiplikation sker også element for element. Hver lane i den ene vektor multipliceres med den tilsvarende lane i den anden vektor.
var p = a * bSubtraktion og division
Subtraktion og division følger samme regel. Hver lane behandles uafhængigt og parallelt i gruppen.
var d = b - aSkalar møder vektor
Læg et enkelt tal til en vektor, så anvender Mojo det på hver lane. Skalaren fordeles på alle positioner på én gang.
var bumped = a + 100Bredderne skal passe sammen
For at kombinere to SIMD-værdier skal de have samme DType og samme bredde. Forskellige antal lanes passer ikke sammen.
Sammenligninger sker lane for lane
En sammenligning af to vektorer giver en SIMD med Bools, én True eller False pr. lane. Hver lane angiver sit eget resultat.
var mask = a > SIMD[DType.int32, 4](2)Reduktion til ét tal
Nogle gange vil du have ét enkelt svar. reduce_add summerer alle lanes til én skalar, hvilket er perfekt til totaler.
var total = a.reduce_add()
print(total)Indbyggede matematikfunktioner
Standardmatematik som sqrt fungerer også lane for lane på SIMD og beregner resultatet for hvert element i ét kald.
from math import sqrt
var roots = sqrt(a.cast[DType.float32]())Samme kode, mange resultater
At skrive a + b ligner skalar matematik, men giver mange resultater på én gang. Den læsbarhed kombineret med hastighed er Mojos løfte.
Hurtigt tjek
Du beregner a + b, hvor begge er SIMD[DType.int32, 4]. Hvordan udføres additionen?
Opsummering
SIMD-matematik element for element udfører +, -, * og / på alle lanes på én gang, skalarer fordeles på alle lanes, og reduce_add samler en vektor til ét tal. ✨
Lær Mojo med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “SIMD-matematik element for element” gratis?
Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “SIMD-matematik element for element”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Mojo Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “SIMD-matematik element for element”?
Læg hele vektorer sammen, og multiplicér dem på én gang. Du øver dig i Mojo Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Mojo Academy?
Der kræves ingen tidligere erfaring. Mojo Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “SIMD-matematik element for element”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Mojo Academy-lektion?
Ja. Alle Mojo Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Mød SIMD-typen
- SIMD-matematik element for element
- Vælg SIMD-bredde
- Vektorisér en løkke