Migracja stron na żądanie
Przenosić dane w wyniku błędów stron tam, gdzie są używane.
Migracja stron na żądanie to bezpłatna lekcja CUDA Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej CUDA Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CUDA Academy zawiera 4 lekcji w sumie.
Gdzie znajdują się dane?
W przypadku pamięci zarządzanej dane nie mają stałego miejsca przechowywania. Po cichu przemieszczają się między CPU i GPU dzięki migracji stron na żądanie, podążając za miejscem, w którym są używane.
Pamięć składa się ze stron
System śledzi pamięć w stałych fragmentach nazywanych stronami, często o rozmiarze 4 KB lub 64 KB. Migracja odbywa się strona po stronie, a nie bajt po bajcie.
Wywołuje ją błąd strony
Gdy GPU uzyskuje dostęp do strony znajdującej się na CPU, generuje błąd strony. Sterownik wstrzymuje wykonanie, kopiuje tę stronę, a następnie pozwala wątkowi kontynuować pracę.
Dane podążają za dostępem
Zasada jest prosta: dane migrują do tego, kto ich używa. Zapis na CPU umieszcza strony tam, a odczyt w kernelu przenosi je do GPU.
Pierwszy dostęp jest najwolniejszy
Koszt pojawia się przy pierwszym dostępie z nowej strony. Gdy strona dotrze na urządzenie, kolejne odczyty na tym samym urządzeniu są szybkie i lokalne.
Ping-pong szkodzi
Jeśli CPU i GPU na zmianę uzyskują dostęp do tych samych stron, strony przemieszczają się tam i z powrotem. Taka migracja typu ping-pong może po cichu zrujnować przepustowość.
Błędy się sumują
Każdy błąd strony wiąże się z narzutem przygotowania, więc tysiące drobnych błędów są kosztowne. Migracja większych bloków jest lepsza niż obsługiwanie kolejno pojedynczych, rozproszonych stron.
Lokalność nadal ma znaczenie
Nawet przy automatycznej migracji dobre wzorce dostępu przynoszą korzyści. Wątki odczytujące sąsiednie adresy efektywnie pobierają całe strony zamiast generować rozproszone błędy.
Nadsubskrypcja jest dozwolona
Migracja pozwala zaalokować więcej pamięci, niż mieści GPU. Strony są doprowadzane w miarę potrzeb, a starsze są usuwane, dzięki czemu można uruchamiać nawet ogromne zbiory danych — tylko wolniej.
Możesz zobaczyć błędy
Profile, takie jak Nsight Systems, pokazują ruch migracyjny i liczbę błędów stron. Wykrycie intensywnej migracji dokładnie wskazuje, gdzie warto dodać kolejne wskazówki.
Wygoda ma swoją cenę
Migracja na żądanie jest niezwykle automatyczna, ale błędy stron nie są darmowe. Znajomość tego kosztu pozwala go ograniczyć za pomocą pobierania z wyprzedzeniem i odpowiednich wskazówek.
Szybki test
Upewnijmy się, że wiesz, co rozpoczyna migrację.
Podsumowanie: migracja na żądanie
Widziałeś, że zarządzane strony migrują po wystąpieniu błędu do tego, kto ich używa. Pierwszy dostęp jest wolny, ping-pong szkodzi, a przenoszenie większych bloków przynosi korzyści. Ruszajmy dalej! 🚀
Ucz się C++ dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Migracja stron na żądanie” jest bezpłatna?
Tak — pełny tekst „Migracja stron na żądanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu CUDA Academy, przejdź na CoddyKit PRO. Kurs CUDA Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Migracja stron na żądanie”?
Przenosić dane w wyniku błędów stron tam, gdzie są używane. Ćwiczysz CUDA Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć CUDA Academy?
Nie wymagamy żadnego doświadczenia. CUDA Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Migracja stron na żądanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji CUDA Academy?
Tak. Każda lekcja CUDA Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Jeden wskaźnik po obu stronach
- Migracja stron na żądanie
- Prefetching za pomocą cudaMemPrefetchAsync
- Wskazówki za pomocą cudaMemAdvise