NVIDIA GPU Programming - Plan Szkolenia
Ten kurs obejmuje programowanie GPUs do obliczeń równoległych. Niektóre z zastosowań obejmują głębokie uczenie się, analitykę i aplikacje inżynieryjne.
Plan Szkolenia
Dzień 1 – Wprowadzenie i podstawy
- Dlaczego przetwarzanie równoległe? Potrzeba obliczeń równoległych Procesory wielordzeniowe - architektura i projektowanie Wprowadzenie do wątków, podstawy wątków i podstawowe koncepcje programowania równoległego OpenMP - standard dla równoległego opartego na dyrektywach Programming Praktyczne / Demonstracja różnych programów na maszynach wielordzeniowych
Dzień 2 – GPU Programming
- Procesory graficzne do obliczeń równoległych GPU Programming Model Praktyczny/Demonstracja różnych programów na GPU SDK, zestaw narzędzi i instalacja środowiska dla GPU Praca z różnymi bibliotekami Demonstracja GPU i narzędzi z przykładowymi programami i OpenACC
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 - Plan Szkolenia - Booking
NVIDIA GPU Programming - Plan Szkolenia - Enquiry
NVIDIA GPU Programming - Zapytanie o Konsultacje
Opinie uczestników (1)
Podczas szkolenia najbardziej spodobała mi się elastyczność trenera, jego zdolność do reagowania na niespodziewane i potencjalnie głupie pytania. Wybitny poziom wiedzy trenera na temat kart graficznych NVIDIA.
Adrian Ronowski - NARODOWE CENTRUM BEZPIECZEŃSTWA CYBERBEZPIECZEŃSTWA
Szkolenie - NVIDIA GPU Programming
Nadchodzące szkolenia
Szkolenia Powiązane
Administration of CUDA
35 godzinCUDA (Compute Unified Device Architecture) is a parallel computing platform and application programming interface model created by Nvidia.
This instructor-led, live training (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.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
GPU Programming with CUDA and Python
14 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (online lub na miejscu) jest przeznaczone dla programistów, którzy chcą używać CUDA do tworzenia Python aplikacji działających równolegle na procesorach graficznych NVIDIA.
Po zakończeniu tego szkolenia uczestnicy będą w stanie
- Używaj kompilatora Numba do akceleracji Python aplikacji działających na procesorach graficznych NVIDIA.
- Tworzyć, kompilować i uruchamiać niestandardowe jądra CUDA.
- Zarządzanie pamięcią GPU.
- Konwersja aplikacji opartej na CPU w aplikację akcelerowaną przez GPU.
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.
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.
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.
NVIDIA GPU Programming - Extended
21 godzinTen prowadzony przez instruktora kurs szkoleniowy na żywo w Polsce obejmuje sposób programowania GPUs 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 zastosowań obejmują głębokie uczenie się, analitykę, przetwarzanie obrazu i aplikacje inżynieryjne.
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.
Hardware-Accelerated Video Analytics
14 godzinTo prowadzone przez instruktora szkolenie na żywo (online lub na miejscu) jest przeznaczone dla programistów, którzy chcą tworzyć modele wykrywania i śledzenia obiektów z akceleracją sprzętową do analizy strumieniowych danych wideo.
Po zakończeniu tego szkolenia uczestnicy będą w stanie
- Instalacja i konfiguracja niezbędnego środowiska programistycznego, oprogramowania i bibliotek w celu rozpoczęcia programowania.
- Budowanie, trenowanie i wdrażanie modeli głębokiego uczenia się w celu analizowania kanałów wideo na żywo.
- Identyfikacja, śledzenie, segmentacja i przewidywanie różnych obiektów w klatkach wideo.
- Optymalizacja modeli wykrywania i śledzenia obiektów.
- Wdrożenie inteligentnej aplikacji do analizy wideo (IVA).