Adnotowanie kodu za pomocą NVTX
Nazywać zakresy, aby osie czasu były czytelne.
Adnotowanie kodu za pomocą NVTX 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.
Osie czasu potrzebują etykiet
Surowa oś czasu jest pełna anonimowych pasków. NVTX pozwala dodać własne nazwy, dzięki czemu profiler pokazuje kod w sposób zrozumiały dla Ciebie. 🏷️
Czym jest NVTX
NVTX to NVIDIA's Tools Extension: niewielka biblioteka do oznaczania regionów i zdarzeń, które Nsight następnie rysuje na osi czasu.
Dołączanie nagłówka
Najpierw dołączasz jeden nagłówek. Od tej chwili wywołania służące do oznaczania są dostępne w dowolnym miejscu kodu hosta.
#include <nvtx3/nvToolsExt.h>Oznaczanie zakresu
Otocz fragment pracy nazwanym zakresem. Push rozpoczyna zakres, a pop go kończy, rysując jeden opisany pasek.
nvtxRangePush("load data");
// work here
nvtxRangePop();Zagnieżdżanie push i pop
Zakresy zagnieżdżają się jak nawiasy. Wewnętrzny push musi zostać zakończony przez pop przed zakończeniem zewnętrznego zakresu, dzięki czemu etykiety układają się na osi czasu.
Znaczniki chwilowe
Jeśli chcesz oznaczyć pojedynczy moment, użyj znacznika zamiast zakresu. Przypina on jedno zdarzenie, na przykład początek epoki.
nvtxMark("epoch start");Nadaj zakresom kolory
Każdemu zakresowi możesz nadać kolor, aby etapy były od razu widoczne. Ładowanie może być niebieskie, a obliczenia zielone.
Czytelne osie czasu
Dzięki NVTX widok Nsight pokazuje fazy, takie jak preprocess i inference, według ich nazwy. Nie musisz już rozszyfrowywać tajemniczych symboli kerneli.
Niemal bezkosztowe bez profilera
Gdy profiler nie jest podłączony, wywołania NVTX są niemal bezpłatne. Możesz pozostawić adnotacje w kodzie bez rzeczywistego narzutu.
Po stronie hosta
NVTX oznacza kod hosta, czyli część CPU, która koordynuje pracę. Wyznacza regiony, w których wykonywane są kernele i kopie.
Opakowania RAII
We współczesnym C++ często opakowuje się zakres w niewielki obiekt RAII. Kończy on zakres automatycznie po wyjściu z bloku, więc nie można o tym zapomnieć.
Szybkie sprawdzenie
Chcesz, aby na osi czasu Nsight pojawiły się nazwane i opisane regiony.
Podsumowanie
NVTX zamienia tajemnicze paski w nazwane zakresy i znaczniki. Kilka wywołań push i pop sprawia, że osie czasu Nsight stają się od razu czytelne. 👏
Często zadawane pytania
Czy lekcja „Adnotowanie kodu za pomocą NVTX” jest bezpłatna?
Tak — pełny tekst „Adnotowanie kodu za pomocą NVTX” 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 „Adnotowanie kodu za pomocą NVTX”?
Nazywać zakresy, aby osie czasu były czytelne. Ć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 „Adnotowanie kodu za pomocą NVTX”?
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
- Widok osi czasu w Nsight Systems
- Metryki kerneli w Nsight Compute
- Ograniczenie obliczeniami a ograniczenie pamięcią
- Adnotowanie kodu za pomocą NVTX