CUDA Academy · Lektion

On-demand-sideflytning

Fejl flytter data derhen, hvor de bruges.

Lektion 2 af 413 trin

On-demand-sideflytning er en gratis CUDA Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i CUDA Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. CUDA Academy-kurset indeholder 4 lektioner i alt.

Hvor befinder dataene sig?

Med administreret hukommelse har dataene ikke noget fast hjem. De flyttes ubemærket mellem CPU og GPU gennem on-demand-migrering af sider og følger det sted, hvor du bruger dem.

Hukommelse kommer i sider

Systemet holder styr på hukommelsen i faste blokke, der kaldes sider, ofte på 4 KB eller 64 KB. Migreringen sker én side ad gangen, ikke byte for byte.

En sidefejl udløser det

Når GPU'en bruger en side, der ligger på CPU'en, udløser den en sidefejl. Driveren sætter arbejdet på pause, kopierer siden over og lader derefter tråden fortsætte.

Data følger adgangen

Reglen er enkel: Data migrerer til den, der bruger dem. Skriv på CPU'en, så ligger siderne dér; læs i en kerne, så flyttes de til GPU'en.

Første adgang er den langsomme

Omkostningen opstår ved den første adgang fra en ny side. Når siden er ankommet, er senere læsninger på den samme enhed hurtige og lokale.

Pingpong gør ondt

Hvis CPU'en og GPU'en skiftevis bliver ved med at bruge de samme sider, hopper de frem og tilbage. Denne pingpong-migrering kan ubemærket ødelægge din gennemstrømning.

Fejlene løber op

Hver sidefejl har en opsætningsomkostning, så tusindvis af små fejl er dyre. Migrering i store blokke er bedre end at udløse fejl for spredte sider én efter én.

Lokalitet betyder stadig noget

Selv med automatisk migrering giver gode adgangsmønstre bedre resultater. Tråde, der læser nærliggende adresser, henter hele sider effektivt i stedet for at sprede sidefejlene.

Overtegning er tilladt

Migrering lader dig allokere mere, end GPU'en kan rumme. Sider flyttes ind efter behov, og gamle sider fortrænges, så store datasæt stadig kan køre, blot langsommere.

Du kan se sidefejlene

Profileringsværktøjer som Nsight Systems viser trafik ved migrering og antal sidefejl. Når du opdager omfattende migrering, ved du præcis, hvor du senere skal tilføje tip.

Bekvemt, men med en hage

On-demand-migrering er dejligt automatisk, men sidefejlene er ikke gratis. Når du kender omkostningen, kan du rette problemet med forhåndshentning og råd.

Hurtigt tjek

Lad os sikre os, at du ved, hvad der starter en migrering.

Opsummering: On-demand-migrering

Du så, at administrerede sider migrerer ved en sidefejl til den, der bruger dem. Første adgang er langsom, pingpong gør ondt, og flytning i store blokke vinder. Videre! 🚀

Gratis at komme i gang

Lær C++ 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 “On-demand-sideflytning” gratis?

Ja — hele teksten til “On-demand-sideflytning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af CUDA Academy-kurset, skal du opgradere til CoddyKit PRO. CUDA Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “On-demand-sideflytning”?

Fejl flytter data derhen, hvor de bruges. Du øver dig i CUDA 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å CUDA Academy?

Der kræves ingen tidligere erfaring. CUDA 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 “On-demand-sideflytning”?

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 CUDA Academy-lektion?

Ja. Alle CUDA 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. Én pointer, begge sider
  2. On-demand-sideflytning
  3. Prefetching med cudaMemPrefetchAsync
  4. Hints via cudaMemAdvise
← Tilbage til CUDA Academy