Programowanie GPU 1000-I2PGPU
- Wprowadzenie do programowania kart graficznych
- Przegląd podstawowych architektur sprzętowych (ATI, nVidia) wraz z implikacjami
- Przegląd języków i narzędzi do programowania kart graficznych
- Wprowadzenie do OpenCL / SYCL
- Podstawy programowana w języku CUDA
- Portowanie aplikacji z wykorzystaniem dyrektyw kompilatora - standard OpenACC
- Metody i mechanizmy optymalizacji kodu GPGPU
- Przykładowe problemy numeryczne i ich implementacja na karty graficzne
- Debugowanie, profilowanie i optymalizacja kodu.
Całkowity nakład pracy studenta
Efekty uczenia się - wiedza
Efekty uczenia się - umiejętności
Efekty uczenia się - kompetencje społeczne
Metody dydaktyczne podające
Metody dydaktyczne poszukujące
- ćwiczeniowa
Rodzaj przedmiotu
Wymagania wstępne
Koordynatorzy przedmiotu
Kryteria oceniania
Zaliczenie na podstawie obecności i przedstawienia indywidualne projektu programistycznego polegającym na implementacji wybranego algorytmu na karty graficzne: W1, W2, W3, U1, U2, K1, K2
Wykonanie na zajęciach lub indywidualnie zadań programistycznych z zakresu obliczeń GPU: W4, U1
Literatura
[1] Jason Sanders, Edward Kandrot, "CUDA w przykładach: wprowadzenie do ogólnego programowania procesorów GPU''
[2] Jason Sanders, Edward Kandrot, "CUDA by Example: An Introduction to General-Purpose GPU Programming"
[3] David B. Kirk, Wen-mei W. Hwu, "Programming Massively Parallel Processors: A Hands-on Approach"
[4] Rob Farber, "CUDA application design and development"
[5] Duane Storti, Mete Yurtoglu: "CUDA for Engineers: An Introduction to High-Performance Parallel Computing"
Materiały w sieci:
[5] NVIDIA, "CUDA Toolkit Documentation", http://docs.nvidia.com/cuda
[6] NVIDIA Developers Blog, https://developer.nvidia.com/blog/
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: