Mojo Academy · Lekcja

Przenoszenie danych na urządzenie i z urządzenia

Zarządzaj transferami pamięci między hostem a urządzeniem.

Lekcja 4 z 413 kroki

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. 🔁

Bezpłatny start

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

  1. Dlaczego GPU do obciążeń AI
  2. Wątki, bloki i siatki
  3. Pisanie funkcji jądra GPU
  4. Przenoszenie danych na urządzenie i z urządzenia
← Powrót do Mojo Academy