Przenoszenie danych na urządzenie i z urządzenia
Zarządzaj transferami pamięci między hostem a urządzeniem.
Przenoszenie danych na urządzenie i z urządzenia to bezpłatna lekcja Mojo Academy na CoddyKit. To lekcja 4 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 Mojo Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Mojo Academy zawiera 4 lekcji w sumie.
Dwie odrębne pamięci
CPU i GPU mają własne pamięci. GPU nie może odczytać tablic hosta, dopóki dane nie znajdą się na urządzeniu.
Host i urządzenie
Stronę CPU nazywamy hostem, a stronę GPU — urządzeniem. Przenoszenie danych między nimi jest podstawową częścią pracy z GPU.
Alokowanie na urządzeniu
Najpierw rezerwujesz na GPU miejsce na dane. Ten bufor urządzenia będzie przechowywać dane wejściowe i wyjściowe.
var d_a = ctx.enqueue_create_buffer[DType.float32](n)Kopiowanie danych wejściowych
Następnie kopiujesz tablice hosta do tych buforów urządzenia. To przesłanie dostarcza GPU potrzebnych liczb.
ctx.enqueue_copy(d_a, h_a)Uruchamianie kernela
Gdy dane znajdują się na urządzeniu, uruchamiasz kernel. Odczytuje on i zapisuje bufory urządzenia, nigdy bufory hosta.
ctx.enqueue_function[kernel](grid_dim=blocks, block_dim=256)Kopiowanie wyników z powrotem
Wynik pozostaje na GPU, dopóki go nie pobierzesz. Pobranie kopiuje bufor wynikowy z powrotem do pamięci hosta.
ctx.enqueue_copy(h_out, d_out)Praca jest kolejkowana, a nie natychmiastowa
Te wywołania są umieszczane w kolejce GPU, a nie wykonywane od razu. Przed zaufaniem wynikom na hoście musisz wykonać synchronizację.
ctx.synchronize()Pełna podróż tam i z powrotem
Pełny cykl obejmuje przesłanie, obliczenia i pobranie. Wyobraź sobie dane odbywające podróż w obie strony między hostem a urządzeniem.
Transfery zajmują czas
Kopiowanie przez magistralę jest wolne w porównaniu z obliczeniami. Każdy transfer może zniwelować przyspieszenie, jeśli wykonujesz go zbyt często.
Pozostaw dane na urządzeniu
Połącz kilka kerneli działających na tych samych buforach, zanim skopiujesz dane z powrotem. Ograniczenie podróży w obie strony pozwala zachować zysk z użycia GPU.
Zwalniaj zaalokowane zasoby
Pamięć urządzenia jest ograniczona, dlatego zwalniaj niepotrzebne bufory. Reguły własności Mojo pomagają zwolnić je we właściwym momencie.
Szybki test
Chcesz, aby program GPU rzeczywiście działał szybciej od początku do końca.
Podsumowanie
Prześlij dane wejściowe na urządzenie, uruchom kernel, a następnie pobierz wyniki i wykonaj synchronizację, ograniczając do minimum kosztowne transfery. 🔁
Ucz się Mojo 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 „Przenoszenie danych na urządzenie i z urządzenia” jest bezpłatna?
Tak — pełny tekst „Przenoszenie danych na urządzenie i z urządzenia” 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 Mojo Academy, przejdź na CoddyKit PRO. Kurs Mojo Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Przenoszenie danych na urządzenie i z urządzenia”?
Zarządzaj transferami pamięci między hostem a urządzeniem. Ćwiczysz Mojo 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ąć Mojo Academy?
Nie wymagamy żadnego doświadczenia. Mojo 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 4 z 4.
Ile czasu zajmuje lekcja „Przenoszenie danych na urządzenie i z urządzenia”?
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 Mojo Academy?
Tak. Każda lekcja Mojo 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
- Dlaczego GPU do obciążeń AI
- Wątki, bloki i siatki
- Pisanie funkcji jądra GPU
- Przenoszenie danych na urządzenie i z urządzenia