Parameterisér tile og bredde
Eksponér indstillinger, der kan tunes, som parametre.
Parameterisér tile og bredde 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.
Justerbare parametre skal være parametre
Hvis automatisk optimering skal kunne variere en værdi, skal den være en parameter ved kompileringstid og ikke en almindelig variabel ved kørsel. Parametre kan specialiseres for hver kandidat.
Tile-størrelse som parameter
En tile-størrelse bestemmer, hvor stor en arbejdsblok du behandler ad gangen. Gør den til en parameter, så optimeringen kan afprøve 16, 32, 64 og flere værdier.
fn process[tile: Int]():
passBredde som parameter
SIMD-bredde bestemmer, hvor mange tal du behandler pr. instruktion. Forskellige chips foretrækker forskellige bredder, så gør også denne til en parameter.
fn run[width: Int]():
passDeklaration af parametrene
Placér justerbare værdier i funktionens liste med kantede parenteser. Hvert element bliver en parameter, som den automatiske optimering må ændre.
fn kernel[tile: Int, width: Int]():
passBrug dem internt
Inde i brødteksten skal du behandle parameteren som en konstant. Kompileren indbygger dens værdi i hver specialiseret version, den bygger.
fn step[tile: Int]() -> Int:
return tile * 2Fornuftige intervaller
Vælg kandidatværdier, der giver mening for hardwaren: potenser af to som 8, 16 og 32 for bredde samt cachevenlige blokke for tile-størrelsen.
Hold parametrene uafhængige
Hver parameter bør betyde én tydelig ting. Flettede parametre gør søgningen forvirrende og resultaterne svære at forklare.
Valider med begrænsninger
Brug en begrænsning til tidligt at afvise umulige kombinationer, så den automatiske optimering aldrig spilder tid på at bygge kandidater, der ikke kan fungere.
constrained[width > 0]()Standardværdier hjælper stadig
Giv hver parameter en fornuftig standardværdi. Koden forbliver brugbar uden optimering, og søgningen starter fra et kendt, velfungerende udgangspunkt.
fn kernel[tile: Int = 32]():
passFlere parametre, større område
Hver ekstra parameter ganger antallet af kandidater, der skal testes. Gør kun de parametre, der virkelig betyder noget, justerbare — ikke alle tal, du kan finde.
Nu kan den optimeres
Med tile-størrelse og bredde som parametre er din kerne klar: Den automatiske optimering har tydelige drejeknapper at justere, mens den søger efter den højeste gennemstrømning. 🔧
Hurtigt tjek
Bekræft, hvad der gør en værdi justerbar for den automatiske optimering.
Opsummering
Du gjorde tile-størrelse og bredde til parametre ved kompileringstid, tilføjede en begrænsning og standardværdier og gav den automatiske optimering tydelige drejeknapper at justere. 🎯
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 “Parameterisér tile og bredde” gratis?
Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “Parameterisér tile og 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 “Parameterisér tile og bredde”?
Eksponér indstillinger, der kan tunes, som parametre. 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 “Parameterisér tile og 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
- Hvilket problem løser autotuning?
- Parameterisér tile og bredde
- Søg i parameterområdet
- Fastlås den bedste konfiguration