Mojo Academy · Lektion

SIMD-matematik element for element

Læg hele vektorer sammen, og multiplicér dem på én gang.

Lektion 2 af 413 trin

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 + b

Lane 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 * b

Subtraktion og division

Subtraktion og division følger samme regel. Hver lane behandles uafhængigt og parallelt i gruppen.

var d = b - a

Skalar 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 + 100

Bredderne 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. ✨

Gratis at komme i gang

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

  1. Mød SIMD-typen
  2. SIMD-matematik element for element
  3. Vælg SIMD-bredde
  4. Vektorisér en løkke
← Tilbage til Mojo Academy