Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie procesorów graficznych
Tok studiów:
2019/2020
Kod:
EINF-2-204-GK-s
Wydział:
Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej
Poziom studiów:
Studia II stopnia
Specjalność:
Grafika komputerowa
Kierunek:
Informatyka
Semestr:
2
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Stacjonarne
Strona www:
 
Prowadzący moduł:
Byrski Jędrzej (jbyrski@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

W ramach zajęć student zapoznaje się praktycznie z architekturą CUDA.

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Zna architektury oraz zasady funkcjonowania sprzętowych trójwymiarowych akceleratorów graficznych. INF2A_W02, INF2A_W05, INF2A_W07 Kolokwium
M_W002 Zna zagadnienia związane z wykorzystywaniem technologii GPGPU w praktyce. INF2A_W03, INF2A_W05, INF2A_W07 Wykonanie ćwiczeń laboratoryjnych,
Kolokwium
M_W003 Zna zaawansowane zagadnienia związane z użytkowaniem oraz programowaniem biblioteki CUDA. INF2A_W04, INF2A_W03, INF2A_W05, INF2A_W07 Wykonanie ćwiczeń laboratoryjnych,
Kolokwium
M_W004 Zna podstawowe zagadnienia związane z wykorzystywaniem biblioteki OpenCL. INF2A_W03, INF2A_W05 Kolokwium
M_W005 Zna zawansowane zagadnienia związane z programowaniem CUDA. INF2A_W04, INF2A_W06, INF2A_W05, INF2A_W07 Wykonanie ćwiczeń laboratoryjnych,
Kolokwium
M_W006 Posiada wiedzę o technologiach tworzenia zaawansowanych obliczeniowo programów bazujących na architekturze CUDA. INF2A_W05 Wykonanie ćwiczeń laboratoryjnych,
Kolokwium
M_W007 Zna technologie i rozwiązania umożliwiające wykorzystanie wielordzeniowych procesorów graficznych do obliczeń inżynierskich. INF2A_W03, INF2A_W02, INF2A_W05 Kolokwium
Umiejętności: potrafi
M_U001 Potrafi wykorzystać cechy programowalnych potoków przetwarzania grafiki przy tworzeniu oprogramowania dla akceleratorów graficznych. INF2A_U08, INF2A_U06, INF2A_U05 Wykonanie ćwiczeń laboratoryjnych
M_U002 Potrafi tworzyć aplikacje zawierające kod zintegrowany GPU zgodny z popularnymi wersjami technologii Shader Model w akcelerowanych sprzętowo aplikacjach graficznych. INF2A_U08, INF2A_U01, INF2A_U06, INF2A_U04, INF2A_U05 Wykonanie ćwiczeń laboratoryjnych
M_U003 Potrafi wykorzystać zaawansowane i niskopoziomowe funkcje platformy CUDA. INF2A_U08, INF2A_U06, INF2A_U04, INF2A_U05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
M_U004 Potrafi tworzyć oprogramowanie w języku OpenCL INF2A_U08, INF2A_U02 Wykonanie ćwiczeń laboratoryjnych
M_U005 Potrafi tworzyć zaawansowane oprogramowanie z wykorzystaniem platformy CUDA. INF2A_U08, INF2A_U06, INF2A_U05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
28 0 0 28 0 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Zna architektury oraz zasady funkcjonowania sprzętowych trójwymiarowych akceleratorów graficznych. - - + - - - - - - - -
M_W002 Zna zagadnienia związane z wykorzystywaniem technologii GPGPU w praktyce. - - + - - - - - - - -
M_W003 Zna zaawansowane zagadnienia związane z użytkowaniem oraz programowaniem biblioteki CUDA. - - + - - - - - - - -
M_W004 Zna podstawowe zagadnienia związane z wykorzystywaniem biblioteki OpenCL. - - + - - - - - - - -
M_W005 Zna zawansowane zagadnienia związane z programowaniem CUDA. - - + - - - - - - - -
M_W006 Posiada wiedzę o technologiach tworzenia zaawansowanych obliczeniowo programów bazujących na architekturze CUDA. - - + - - - - - - - -
M_W007 Zna technologie i rozwiązania umożliwiające wykorzystanie wielordzeniowych procesorów graficznych do obliczeń inżynierskich. - - + - - - - - - - -
Umiejętności
M_U001 Potrafi wykorzystać cechy programowalnych potoków przetwarzania grafiki przy tworzeniu oprogramowania dla akceleratorów graficznych. - - + - - - - - - - -
M_U002 Potrafi tworzyć aplikacje zawierające kod zintegrowany GPU zgodny z popularnymi wersjami technologii Shader Model w akcelerowanych sprzętowo aplikacjach graficznych. - - + - - - - - - - -
M_U003 Potrafi wykorzystać zaawansowane i niskopoziomowe funkcje platformy CUDA. - - + - - - - - - - -
M_U004 Potrafi tworzyć oprogramowanie w języku OpenCL - - + - - - - - - - -
M_U005 Potrafi tworzyć zaawansowane oprogramowanie z wykorzystaniem platformy CUDA. - - + - - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 76 godz
Punkty ECTS za moduł 3 ECTS
Udział w zajęciach dydaktycznych/praktyka 28 godz
Przygotowanie do zajęć 14 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 20 godz
Samodzielne studiowanie tematyki zajęć 14 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Ćwiczenia laboratoryjne (28h):
Zajecia laboratoryjne

W ramach zajęć laboratoryjnych studenci realizują szereg ćwiczeń praktycznych mających na celu praktyczne zapoznanie z platformą CUDA
Wprowadzenie teoretyczne do technologii CUDA, podstawowe wiadomości o konstrukcji sprzętowych akceleratorach graficznych. Sprzęt renderujący i jego możliwości.
Technologie programowania aplikacji z bezpośrednim wykorzystaniem GPU, technologie tworzenia kerneli w praktyce. Uruchomienie kerneli w aplikacjach bazujących na CUDA i OpenCL. Profile wymiany danych.
Rozszerzenia biblioteki CUDA.
Język nVidia CG.: Składnia języka, dostępne funkcje i profile wymiany danych. Importowanie, kompilacja i uruchomienie programów.
Język OpenCL: Składnia języka. Dostępne funkcje i profile wymiany danych.
Platforma CUDA (Compute Unified Device Architecture): Konfigurowanie platformy CUDA, wersje CUDA API i ich funkcjonalność, przykłady problemów obliczeniowych i ich rozwiązywanie. Programowanie niskopoziomowe z użyciem CUDA.

Pozostałe informacje
Metody i techniki kształcenia:
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Obecność na zajęciach, realizacja ćwiczeń wykonywanych na zajęciach, kolokwium zaliczeniowe.
Aby uzyskać pozytywną ocenę z przedmiotu niezbędne jest uczestnictwo w zajęciach laboratoryjnych zrealizowanie zadawanych ćwiczeń laboratoryjnych oraz zaliczenie kolokwium zaliczeniowego.

Zasady udziału w zajęciach:
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
Sposób obliczania oceny końcowej:

Ocena końcowa jest wypadkową punktów uzyskanych z ćwiczeń laboratoryjnych (55%) oraz punktów uzyskanych z kolokwium zaliczeniowego (45%).
Warunkiem koniecznym uzyskania pozytywnej oceny końcowej jest uzyskanie minimum 30% możliwych do uzyskania punktów z kolokwium oraz minimum 30% możliwych do uzyskania punktów z ćwiczeń laboratoryjnych.

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Odrobienie zajęć w ramach innej grupy, wykonanie ćwiczeń realizowanych na opuszczonych zajęciach.

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

Posiadanie wiedzy na temat programowania imperatywnego.
Posiadanie wiedzy na temat architektur procesorów i systemów dla grafiki.
Posiadanie wiedzy na temat programowania aplikacji graficznych z użyciem OpenGL i Direct3D.
Posiadanie umiejętności programowania aplikacji graficznych z użyciem OpenGL i Direct3D.

Zalecana literatura i pomoce naukowe:

Język CG. Programowanie grafiki w czasie rzeczywistym, Randima Fernando, Mark J. Kilgard, 2003,Helion
Folie z zajęć
Wykład “Architektura procesorów i Systemów dla Grafiki”
GPUGems
CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GPU

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Finite memory non-asymptotic parameter identifier algorithm for detection of model rapid changes and faults / W. BYRSKI, J. BYRSKI / MMAR 2006
Metody i algorytmy ze skończoną pamięcią dla dokładnego odtwarzania stanu — Finite memory algorithms for exact state reconstruction / W. BYRSKI, J. BYRSKI / Automatyka : półrocznik Akademii Górniczo-Hutniczej im. Stanisława Staszica w Krakowie — 2006 t. 10 z. 3 s. 167–180
Design and implementation of a new algorithm for fast diagnosis of step changes in parameters of continuous systems / J. BYRSKI, W. BYRSKI / SAFEPROCESS 2012

Informacje dodatkowe:

Brak