Pomiar pierwszego przyspieszenia
Mierzyć GPU i CPU podczas wykonywania tego samego zadania.
Pomiar pierwszego przyspieszenia to bezpłatna lekcja CUDA 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 CUDA Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CUDA Academy zawiera 4 lekcji w sumie.
Teraz zmierz zysk
Ma Pan/Pani poprawne jądro, więc warto sprawdzić, o ile jest szybsze od CPU. Pomiar zamienia przypuszczenie w konkretną liczbę. ⏱️
Zmierz bazę CPU
Rozpocznij od uczciwej wartości bazowej: zmierz to samo dodawanie wykonywane w zwykłej pętli CPU. Potrzebujesz punktu odniesienia dla GPU.
Nie mierz czasu za pomocą niewłaściwego zegara
Unikaj pomiaru obejmującego wywołanie cudaMemcpy, na którego zakończenie nie zaczekano. Uruchomienie jest asynchroniczne, więc naiwne liczniki czasu mogą podawać bezsensowne wyniki.
Użyj zdarzeń CUDA
Właściwym narzędziem jest para obiektów cudaEvent. Rejestrują one znaczniki czasu bezpośrednio na urządzeniu, umożliwiając dokładny pomiar czasu jądra.
cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);Odmierz czas samego jądra
Zarejestruj start tuż przed uruchomieniem, a zatrzymanie tuż po nim. Zdarzenia są kolejkowane w strumieniu razem z jądrem.
cudaEventRecord(start);
vecAdd<<<blocks, threads>>>(d_A, d_B, d_C, n);
cudaEventRecord(stop);Zaczekaj, a następnie odczytaj wynik
Wywołaj cudaEventSynchronize dla zdarzenia końcowego, aby CPU zaczekało na GPU. Dopiero wtedy można odczytać czas, który upłynął.
cudaEventSynchronize(stop);
float ms = 0;
cudaEventElapsedTime(&ms, start, stop);Najpierw rozgrzej urządzenie
Pierwsze uruchomienie obejmuje jednorazowe koszty konfiguracji. Przed pomiarem wykonaj testowe uruchomienie rozgrzewające, aby koszty te nie zniekształciły wyniku.
Uśrednij kilka uruchomień
Pojedynczy pomiar jest podatny na zakłócenia, dlatego zmierz czas jądra kilka razy i oblicz średnią. Stabilne wyniki sprawiają, że deklaracje dotyczące przyspieszenia są wiarygodne.
Uwzględnij kopiowanie
Należy uczciwie określić zakres pomiaru. Sam czas działania jądra wygląda imponująco, ale rzeczywiste przyspieszenie musi obejmować również transfery PCIe.
Oblicz przyspieszenie
Przyspieszenie to po prostu czas CPU podzielony przez czas GPU. Mała tablica może być nawet wolniejsza na GPU, gdy uwzględni się kopiowanie.
float speedup = cpu_ms / gpu_ms;Większe tablice dają większy zysk
GPU pokazuje swoją przewagę, gdy jest wystarczająco dużo pracy, aby ukryć koszt transferu. Zwiększaj n i obserwuj wzrost przyspieszenia, gdy dominuje przetwarzanie równoległe. 📈
Szybka kontrola
Jakie narzędzie zapewnia dokładny pomiar czasu działania jądra GPU?
Podsumowanie
Zmierzono pierwsze przyspieszenie za pomocą zdarzeń CUDA: rozgrzej urządzenie, odmierz czas jądra, zsynchronizuj wykonanie i podziel czas CPU przez czas GPU. Większe problemy oznaczają większe zyski. 🎉
Często zadawane pytania
Czy lekcja „Pomiar pierwszego przyspieszenia” jest bezpłatna?
Tak — pełny tekst „Pomiar pierwszego przyspieszenia” 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 „Pomiar pierwszego przyspieszenia”?
Mierzyć GPU i CPU podczas wykonywania tego samego zadania. Ć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 4 z 4.
Ile czasu zajmuje lekcja „Pomiar pierwszego przyspieszenia”?
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
- Kernel dodawania wektorów
- Konfigurowanie części hosta
- Weryfikowanie wyniku na CPU
- Pomiar pierwszego przyspieszenia