Mojo Academy · Lektion

Vælg SIMD-bredde

Tilpas bredden til hardwarebanerne.

Lektion 3 af 413 trin

Vælg SIMD-bredde er en gratis Mojo Academy-lektion på CoddyKit. Dette er lektion 3 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.

Bredden bestemmer gennemløbet

SIMD-bredden er antallet af lanes, du behandler pr. instruktion. Det er afgørende for den faktiske ydeevne at vælge den rigtigt.

Hardware har faste lanes

Din CPU har vektorregistre med en fast størrelse. En god SIMD-bredde passer til de lanes, som hardwaren kan køre på én gang.

For smal spilder kapacitet

En bredde på 1 ignorerer CPU'ens vektorenheder fuldstændigt. Det meste af chippen står ubrugt hen med hensyn til gennemløb.

var slow = SIMD[DType.float32, 1](2.0)

For bred løber over

Hvis en bredde er større end det, hardwaren understøtter, opdeler Mojo den i mindre stykker. Det fungerer stadig, men tilføjer ekstra omkostninger.

Lad Mojo fortælle dig det

Mojo kan via simdwidthof angive den ideelle bredde for en type på denne maskine, så du ikke behøver gætte.

from sys import simdwidthof
alias w = simdwidthof[DType.float32]()

Brug den som parameter

Fordi simdwidthof er kendt ved kompilering, kan du indsætte den direkte i en SIMD-type som dens bredde.

alias Vec = SIMD[DType.float32, simdwidthof[DType.float32]()]

Bredden afhænger af DType

Mindre elementer giver plads til flere lanes i det samme register. Derfor får float32 normalt en større naturlig bredde end float64.

Portabelt fra designets side

Ved at bruge simdwidthof tilpasser din kode sig automatisk til hver maskine. Den samme kildekode forbliver hurtig og portabel.

Multipla af bredden er nemme

Data, der kommer i præcise multipla af din vektorbredde, vektoriseres pænt uden resterende lanes, der skal håndteres som en rest.

Vær opmærksom på resterne

Når et antal ikke er et multiplum af bredden, er der nogle haleelementer tilbage. Du afslutter dem med et lille skalart trin.

Start med den naturlige bredde

En sikker standard er simdwidthof for din DType. Mål senere, men den naturlige bredde er næsten altid et godt udgangspunkt.

Hurtigt tjek

Du vil have en SIMD-bredde, der passer til denne CPUs float32-lanes, uden at hardcode et gæt. Hvad kan hjælpe?

Opsummering

Tilpas SIMD-bredden til hardwaren: simdwidthof angiver det indbyggede antal lanes pr. DType, og en skalarhale håndterer de resterende elementer. 🎯

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 “Vælg SIMD-bredde” gratis?

Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “Vælg SIMD-bredde”, 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 “Vælg SIMD-bredde”?

Tilpas bredden til hardwarebanerne. 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 3 af 4.

Hvor lang tid tager lektionen “Vælg SIMD-bredde”?

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