NVIDIA GPU Programming - Extended - Plan Szkolenia
Ten prowadzony przez instruktora kurs szkoleniowy na żywo obejmuje sposób programowania GPU do obliczeń równoległych, jak korzystać z różnych platform, jak pracować z platformą CUDA i jej funkcjami oraz jak wykonywać różne techniki optymalizacji za pomocą CUDA. Niektóre z aplikacji obejmują głębokie uczenie się, analitykę, przetwarzanie obrazu i aplikacje inżynieryjne.
Plan Szkolenia
Wstęp
Zrozumienie podstaw heterogenicznej metodologii obliczeń
Dlaczego przetwarzanie równoległe? Zrozumienie potrzeby przetwarzania równoległego
Procesory wielordzeniowe - architektura i projektowanie
Wprowadzenie do wątków, podstaw wątków i podstawowych koncepcji równoległości Programming
Zrozumienie podstaw GPU procesów optymalizacji oprogramowania
OpenMP — standard komunikacji równoległej opartej na dyrektywach Programming
Praktyczne / demonstracja różnych programów na maszynach wielordzeniowych
Wprowadzenie do GPU Informatyki
GPU s dla obliczeń równoległych
Procesory graficzne Programming Model
Praktyczne / demonstracja różnych programów na GPU
SDK, zestaw narzędzi i instalacja środowiska dla GPU
Współpraca z różnymi bibliotekami
Demonstracja GPU i narzędzi z przykładowymi programami i OpenACC
Zrozumienie modelu CUDA Programming.
Nauka architektury CUDA
Eksplorowanie i konfigurowanie środowisk programistycznych CUDA
Praca z API Runtime CUDA
Zrozumienie modelu pamięci CUDA
Odkrywanie dodatkowych funkcji API CUDA
AccessEfektywne wykorzystanie pamięci globalnej w CUDA: Globalna optymalizacja pamięci
Optymalizacja transferu danych w CUDA przy użyciu strumieni CUDA
Korzystanie z pamięci współdzielonej w CUDA
Zrozumienie i wykorzystanie operacji i instrukcji atomowych w CUDA
Studium przypadku: Podstawowe cyfrowe przetwarzanie obrazu za pomocą CUDA
Praca z wieloma procesorami graficznymi Programming
Zaawansowane profilowanie sprzętu i próbkowanie na NVIDIA/CUDA
Używanie interfejsu API dynamicznej równoległości CUDA do dynamicznego uruchamiania jądra
Podsumowanie i wnioski
Wymagania
- C Programming
- Linux GCC
Szkolenia otwarte są realizowane w przypadku uzbierania się grupy szkoleniowej liczącej co najmniej 5 osób na dany termin.
NVIDIA GPU Programming - Extended - Plan Szkolenia - Booking
NVIDIA GPU Programming - Extended - Plan Szkolenia - Enquiry
NVIDIA GPU Programming - Extended - Zapytanie o Konsultacje
Zapytanie o Konsultacje
Opinie uczestników (7)
Podejście prowadzącego. Bardzo sympatyczny i z poczuciem humoru, jednocześnie z zachowaniem należytego profesjonalizmu. W razie pytań, odpowiedzi były zawsze wyczerpujące. Dla mnie jako osoby mało obeznaną z tematem programowania niskopoziomowego, otwartośc prowadzącego dużo pomoga.
Michal Kwiatek - Nokia Solutions and Networks Sp. z o.o.
Szkolenie - NVIDIA GPU Programming - Extended
Dynamika zajęć, poczucie że bardzo szybko zdobywam podstawową wiedzę pozwalającą mi na wydajną samodzielną naukę.
Sebastian Zientek - Nokia Solutions and Networks Sp. z o.o.
Szkolenie - NVIDIA GPU Programming - Extended
Trenerska energia i humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Szkolenie - NVIDIA GPU Programming - Extended
Przetłumaczone przez sztuczną inteligencję
personalne zaangażowanie trenera w temat
Tomasz Barabasz - Nokia
Szkolenie - NVIDIA GPU Programming - Extended
Proste, a jednak oryginalne prowadzenie zajęć. Mimo okoliczności zmuszających do formy zdalnej, prowadzący świetnie potrafił podtrzymać moje zainteresowanie, znał odpowiedź na każde pytanie i potrafił przytoczyć mnóstwo ciekawostek związanych z tematem i pracą w branży.
Lukasz Dzwoniarek - Nokia
Szkolenie - NVIDIA GPU Programming - Extended
Przykłady omawiane na żywo, dygresje, przykłady z "życia". Forma szkolenia tzn. przeplatanie wykładu z praktycznymi przykładami i omawianiem tych przykładów.
Piotr Glazor - Nokia
Szkolenie - NVIDIA GPU Programming - Extended
Spójny sposob prezentacji, duża wiedza trenera, odpowiedni poziom wejscia
Maciej Majka - Nokia
Szkolenie - NVIDIA GPU Programming - Extended
Propozycje terminów
Szkolenia Powiązane
AMD GPU Programming
28 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (na miejscu lub zdalnie) jest przeznaczone dla początkujących i średnio zaawansowanych programistów, którzy chcą używać ROCm i HIP do programowania procesorów AMD GPU i wykorzystywania ich równoległości.
Pod koniec tego szkolenia uczestnicy będą w stanie
- Skonfigurować środowisko programistyczne, które obejmuje platformę ROCm, procesor AMD GPU i Visual Studio Code.
- Stworzyć podstawowy program ROCm, który wykonuje dodawanie wektorowe na GPU i pobiera wyniki z pamięci GPU.
- Użyj interfejsu API ROCm, aby zapytać o informacje o urządzeniu, przydzielić i zwolnić pamięć urządzenia, skopiować dane między hostem a urządzeniem, uruchomić jądra i zsynchronizować wątki.
- Używanie języka HIP do pisania jąder, które wykonują się na GPU i manipulują danymi.
- Używanie wbudowanych funkcji, zmiennych i bibliotek HIP do wykonywania typowych zadań i operacji.
- Używanie przestrzeni pamięci ROCm i HIP, takich jak globalna, współdzielona, stała i lokalna, w celu optymalizacji transferu danych i dostępu do pamięci.
- Używanie modeli wykonania ROCm i HIP do kontrolowania wątków, bloków i siatek, które definiują równoległość.
- Debugowanie i testowanie programów ROCm i HIP przy użyciu narzędzi takich jak ROCm Debugger i ROCm Profiler.
- Optymalizacja programów ROCm i HIP przy użyciu technik takich jak koalescencja, buforowanie, wstępne pobieranie i profilowanie.
Administration of CUDA
35 godzinThis instructor-led, live training in Polsce (online or onsite) is aimed at beginner-level system administrators and IT professionals who wish to install, configure, manage, and troubleshoot CUDA environments.
By the end of this training, participants will be able to:
- Understand the architecture, components, and capabilities of CUDA.
- Install and configure CUDA environments.
- Manage and optimize CUDA resources.
- Debug and troubleshoot common CUDA issues.
GPU Programming with CUDA and Python
14 godzinTrening prowadzony przez instruktora na miejscu lub online (w zależności od lokalizacji) jest skierowany do programistów o średnim poziomie kwalifikacji, którzy chcą korzystać z CUDA do budowania aplikacji Python, które działają równolegle na kartach NVIDIA GPU.
Po zakończeniu tego szkolenia uczestnicy będą w stanie
- Wykorzystywać kompilator Numba do przyspieszenia aplikacji Python działających na kartach NVIDIA GPU.
- Tworzyć, kompilować i uruchamiać niestandardowe jądra CUDA.
- Zarządzać pamięcią GPU.
- Przekształcić aplikację opartą na CPU w aplikację przyspieszoną przez GPU.
Introduction to GPU Programming
21 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (na miejscu lub zdalnie) jest przeznaczone dla początkujących i średnio zaawansowanych programistów, którzy chcą nauczyć się podstaw programowania GPU oraz głównych frameworków i narzędzi do tworzenia aplikacji GPU.
- Pod koniec tego szkolenia uczestnicy będą w stanie
Zrozumieć różnicę między procesorem a GPU obliczeniowym oraz korzyści i wyzwania związane z programowaniem GPU. - Wybrać odpowiedni framework i narzędzie dla swojej aplikacji GPU.
- Stworzyć podstawowy program GPU, który wykonuje dodawanie wektorowe przy użyciu jednego lub więcej frameworków i narzędzi.
- Korzystanie z odpowiednich interfejsów API, języków i bibliotek w celu wyszukiwania informacji o urządzeniu, przydzielania i zwalniania pamięci urządzenia, kopiowania danych między hostem a urządzeniem, uruchamiania jądra i synchronizowania wątków.
- Korzystanie z odpowiednich przestrzeni pamięci, takich jak globalna, lokalna, stała i prywatna, w celu optymalizacji transferu danych i dostępu do pamięci.
- Korzystanie z odpowiednich modeli wykonania, takich jak elementy robocze, grupy robocze, wątki, bloki i siatki, w celu kontrolowania równoległości.
- Debugowanie i testowanie programów GPU przy użyciu narzędzi takich jak CodeXL, CUDA-GDB, CUDA-MEMCHECK i NVIDIA Nsight.
- Optymalizacja programów GPU przy użyciu technik takich jak koalescencja, buforowanie, prefetching i profilowanie.
GPU Programming with CUDA
28 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (online lub na miejscu) jest przeznaczone dla początkujących i średnio zaawansowanych programistów, którzy chcą używać CUDA do programowania układów NVIDIA GPU i wykorzystywania ich równoległości.
Po zakończeniu tego szkolenia uczestnicy będą w stanie
- Skonfigurować środowisko programistyczne zawierające CUDA Toolkit, układ NVIDIA GPU i Visual Studio Code.
- Stworzyć podstawowy program CUDA, który wykonuje dodawanie wektorowe na GPU i pobiera wyniki z pamięci GPU.
- Użyj interfejsu API CUDA do wyszukiwania informacji o urządzeniu, przydzielania i zwalniania pamięci urządzenia, kopiowania danych między hostem a urządzeniem, uruchamiania jądra i synchronizowania wątków.
- Używanie języka CUDA C/C++ do pisania jąder, które wykonują się na GPU i manipulują danymi.
- Używanie wbudowanych funkcji, zmiennych i bibliotek CUDA do wykonywania typowych zadań i operacji.
- Korzystanie z przestrzeni pamięci CUDA, takich jak globalna, współdzielona, stała i lokalna, w celu optymalizacji transferu danych i dostępu do pamięci.
- Używanie modelu wykonania CUDA do kontrolowania wątków, bloków i siatek, które definiują równoległość.
- Debugowanie i testowanie programów CUDA przy użyciu narzędzi takich jak CUDA-GDB, CUDA-MEMCHECK i NVIDIA Nsight.
- Optymalizować programy CUDA przy użyciu takich technik jak koalescencja, buforowanie, prefetching i profilowanie.
97% zadowolonych klientów.
GPU Programming with OpenACC
28 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (na miejscu lub zdalnie) jest przeznaczone dla początkujących i średnio zaawansowanych programistów, którzy chcą używać OpenACC do programowania heterogenicznych urządzeń i wykorzystywania ich równoległości.
Pod koniec tego szkolenia uczestnicy będą w stanie
- Skonfigurować środowisko programistyczne, które obejmuje OpenACC SDK, urządzenie obsługujące OpenACC i Visual Studio Code.
- Utworzyć podstawowy program OpenACC, który wykonuje dodawanie wektorowe na urządzeniu i pobiera wyniki z pamięci urządzenia.
- Użyj dyrektyw i klauzul OpenACC, aby dodać adnotacje do kodu i określić regiony równoległe, ruch danych i opcje optymalizacji.
- Używanie interfejsu API OpenACC do odpytywania informacji o urządzeniu, ustawiania numeru urządzenia, obsługi błędów i synchronizacji zdarzeń.
- Korzystanie z bibliotek OpenACC i funkcji interoperacyjności w celu integracji OpenACC z innymi modelami programowania, takimi jak CUDA, OpenMP i MPI.
- Używanie narzędzi OpenACC do profilowania i debugowania programów OpenACC oraz identyfikowania wąskich gardeł i możliwości związanych z wydajnością.
- Optymalizacja programów OpenACC przy użyciu technik takich jak lokalność danych, fuzja pętli, fuzja jądra i automatyczne dostrajanie.
GPU Programming with OpenCL
28 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (na miejscu lub zdalnie) jest przeznaczone dla początkujących i średnio zaawansowanych programistów, którzy chcą używać OpenCL do programowania heterogenicznych urządzeń i wykorzystywania ich równoległości.
Pod koniec tego szkolenia uczestnicy będą w stanie
- Skonfigurować środowisko programistyczne obejmujące OpenCL SDK, urządzenie obsługujące OpenCL i Visual Studio Code.
- Utworzyć podstawowy OpenCL program, który wykonuje dodawanie wektorowe na urządzeniu i pobiera wyniki z pamięci urządzenia.
- Użyj OpenCL API, aby zapytać o informacje o urządzeniu, utworzyć konteksty, kolejki poleceń, bufory, jądra i zdarzenia.
- Używanie OpenCL języka C do pisania jąder, które wykonują się na urządzeniu i manipulują danymi.
- Używanie OpenCL wbudowanych funkcji, rozszerzeń i bibliotek do wykonywania typowych zadań i operacji.
- Korzystanie z OpenCL modeli pamięci hosta i urządzenia w celu optymalizacji transferów danych i dostępu do pamięci.
- Używanie OpenCL modelu wykonania do kontrolowania elementów roboczych, grup roboczych i zakresów ND.
- Debugowanie i testowanie programów OpenCL przy użyciu narzędzi takich jak CodeXL, Intel VTune i NVIDIA Nsight.
- Optymalizacja programów OpenCL przy użyciu technik takich jak wektoryzacja, rozwijanie pętli, pamięć lokalna i profilowanie.
GPU Programming - OpenCL vs CUDA vs ROCm
28 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (na miejscu lub zdalnie) jest przeznaczone dla początkujących i średnio zaawansowanych programistów, którzy chcą korzystać z różnych frameworków do programowania GPU i porównywać ich funkcje, wydajność i kompatybilność.
Pod koniec tego szkolenia uczestnicy będą mogli
- Skonfigurować środowisko programistyczne, które obejmuje OpenCL SDK, CUDA Toolkit, platformę ROCm, urządzenie obsługujące OpenCL, CUDA lub ROCm oraz Visual Studio kod.
- Utwórz podstawowy program GPU, który wykonuje dodawanie wektorowe przy użyciu OpenCL, CUDA i ROCm oraz porównaj składnię, strukturę i wykonanie każdego z frameworków.
- Użyj odpowiednich interfejsów API do wyszukiwania informacji o urządzeniu, przydzielania i zwalniania pamięci urządzenia, kopiowania danych między hostem a urządzeniem, uruchamiania jądra i synchronizowania wątków.
- Używanie odpowiednich języków do pisania jąder, które wykonują się na urządzeniu i manipulują danymi.
- Używanie odpowiednich wbudowanych funkcji, zmiennych i bibliotek do wykonywania typowych zadań i operacji.
- Korzystanie z odpowiednich przestrzeni pamięci, takich jak globalna, lokalna, stała i prywatna, w celu optymalizacji transferu danych i dostępu do pamięci.
- Używanie odpowiednich modeli wykonania do kontrolowania wątków, bloków i siatek, które definiują równoległość.
- Debugowanie i testowanie programów GPU przy użyciu narzędzi takich jak CodeXL, CUDA-GDB, CUDA-MEMCHECK i NVIDIA Nsight.
- Optymalizować programy GPU przy użyciu technik takich jak koalescencja, buforowanie, prefetching i profilowanie.
ROCm for Windows
21 godzinSzkolenie na żywo prowadzone przez instruktora w Polsce (na miejscu lub zdalnie) jest przeznaczone dla początkujących i średnio zaawansowanych programistów, którzy chcą zainstalować i używać ROCm w systemie Windows do programowania procesorów AMD GPU i wykorzystywania ich równoległości.
Pod koniec tego szkolenia uczestnicy będą w stanie
- Skonfigurować środowisko programistyczne, które obejmuje platformę ROCm, procesor AMD GPU i Visual Studio Code w systemie Windows.
- Stworzyć podstawowy program ROCm, który wykonuje dodawanie wektorowe na GPU i pobiera wyniki z pamięci GPU.
- Użyj interfejsu API ROCm, aby uzyskać informacje o urządzeniu, przydzielić i zwolnić pamięć urządzenia, skopiować dane między hostem a urządzeniem, uruchomić jądra i zsynchronizować wątki.
- Używanie języka HIP do pisania jąder, które wykonują się na GPU i manipulują danymi.
- Używanie wbudowanych funkcji, zmiennych i bibliotek HIP do wykonywania typowych zadań i operacji.
- Używanie przestrzeni pamięci ROCm i HIP, takich jak globalna, współdzielona, stała i lokalna, w celu optymalizacji transferu danych i dostępu do pamięci.
- Używanie modeli wykonania ROCm i HIP do kontrolowania wątków, bloków i siatek, które definiują równoległość.
- Debugowanie i testowanie programów ROCm i HIP przy użyciu narzędzi takich jak ROCm Debugger i ROCm Profiler.
- Optymalizacja programów ROCm i HIP przy użyciu technik takich jak koalescencja, buforowanie, wstępne pobieranie i profilowanie.