Løkkeutrulling ved kompilering
Utvid løkker med @parameter for.
Løkkeutrulling ved kompilering er en gratis leksjon i Mojo Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Mojo Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Mojo Academy inneholder totalt 4 leksjoner.
Sløyfer kompilatoren utvider
Sløyfeutrulling betyr at kompilatoren skriver ut hver iterasjon som sekvensiell kode, slik at sløyfens telle- og forgreningskostnad fjernes. ⚙️
@parameter for-dekoratoren
Plasser @parameter på en for-sløyfe med en rekkevidde som er kjent ved kompilering, så ruller Mojo den helt ut i stedet for å kjøre den ved kjøring.
@parameter
for i in range(4):
print(i)Grensen må være statisk
Sløyfens rekkevidde må være en verdi kjent ved kompilering, slik at kompilatoren vet nøyaktig hvor mange kopier av kroppen som skal genereres.
alias N = 8
@parameter
for i in range(N):
process(i)Indeksen blir en konstant
I en utrullet sløyfe er indeksen en ekte parameter i hver kopi, slik at De kan bruke den der bare verdier kjent ved kompilering er tillatt.
@parameter
for i in range(4):
arr[i] = i * iHvorfor rulle ut i det hele tatt?
Utrulling fjerner forgrenings- og tellerarbeidet for hver iterasjon, slik at CPU-en får en ren instruksjonssekvens den kan pipeline effektivt.
Den passer sammen med SIMD
Utrullede kropper mater ofte SIMD-operasjoner og lar hver genererte kopi håndtere én gruppe vektorlaner for maksimal gjennomstrømming.
Indeksering av SIMD-laner
En indeks kjent ved kompilering lar Dem nå individuelle laner i en SIMD-vektor, noe en sløyfevariabel ved kjøring ikke alltid kan gjøre.
@parameter
for i in range(4):
total += vec[i]Større kode, raskere kjøringer
Utrulling bytter en større binærfil mot færre utførte instruksjoner – en lønnsom avtale i små, aktive sløyfer som kjøres millioner av ganger.
Ikke rull ut alt
Reserver utrulling for små, aktive indre sløyfer. Utrulling av store rekkevidder gjør koden større og kan svekke ytelsen til instruksjonsbufferet.
Et verktøy ved kompilering
@parameter for er ren metaprogrammering: Sløyfen eksisterer aldri ved kjøring fordi kompilatoren allerede har utvidet den til flat kode. 🚀
Kombiner med konstanter
Definer grensen med et alias, slik at én navngitt konstant styrer antallet utrullinger og holder koden tydelig og enkel å optimalisere på nytt senere.
alias TILE = 4
@parameter
for i in range(TILE):
work(i)Rask kontroll
Husk hva @parameter gjør med en for-sløyfe.
Oppsummering
@parameter for ruller ut sløyfer med statiske grenser ved kompilering: Indeksen blir en konstant, kostnaden forsvinner, og aktive sløyfer kjører raskere. 🎯
Lær deg Mojo med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Løkkeutrulling ved kompilering» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Mojo Academy, inkludert «Løkkeutrulling ved kompilering», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Mojo Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Løkkeutrulling ved kompilering»?
Utvid løkker med @parameter for. Du øver på Mojo Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Mojo Academy?
Ingen tidligere erfaring er nødvendig. Mojo Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Løkkeutrulling ved kompilering»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Mojo Academy-leksjonen?
Ja. Alle Mojo Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Parametriske algoritmer
- Løkkeutrulling ved kompilering
- Betinget kompilering
- Begrensninger og statiske kontroller